% IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk % c9s has joined #parrot % darbelo has left #parrot % IllvilJa has joined #parrot % Dave has left Dave!~dave@pool-141-150-16-73.mad.east.verizon.net % Davemon has joined #parrot % Davemon is now known as Dave % contingencyplan has left contingencyplan!~contingen@cpe-76-186-27-146.tx.res.rr.com % ruoso has joined #parrot % AndyA_ has joined #parrot % AndyA has left AndyA!~andy@062249178237.customer.alfanett.no % AndyA_ has left AndyA_!~andy@062249178237.customer.alfanett.no % iblechbot has joined #parrot % tetragon has joined #parrot % tetragon has left tetragon!~seneca@CPE0040d001f62f-CM000a736592a8.cpe.net.cable.rogers.com % mire__ has joined #parrot % skids has left skids!~bri@c-71-233-204-100.hsd1.ma.comcast.net % rdice has joined #parrot jonathan, the fpw is in the south of France, and has been decided quite late so it will be a small fpw, so they have place for any good presentation even at a lame time. The attendance may be small but there will be the same regulars who are delighted to see you and hear your talks % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk Infinoid++ thus commences the first (reported) smoke on netbsd diakopter++ I guess make -j doesn't work sorry, that wasn't helpful. make -j; outputted the syntax for calling make. says it expects [-j numJobs] or something [-j max_jobs] ok so, does "make -j 4" work on netbsd? :) it's smoking now... I did make -j ; make smoke (should've done make -j && make smoke) cognominal ~~ s/lame/late/ make -j smoke the smoke rule depends on the build rules, so it should all work out with one make there are so many undocumented dependencies when installing Test::TAP::HTMLMatrix via cpan % ambs has joined #parrot Test::TAP::Model depends on Petal and Test::Harness::Straps, neither of which is installed by cpan before it attempts to install HTMLMatrix hmm netbsd smoke: http://tinyurl.com/3vnuqf diakopter: hurm. I don't recall having that issue. :| did you report the bug? OBTW, chances are good that parrot will be getting a smolder setup. I read that on use.perl Test::Harness::Straps isn't part of the perl install? not on every vm I've set up diakopter: O RLY? YA RLY they must have split it up and expected you to install another port for it, then kinda like freebsd does with php. CPAN wouldn't have known about that :( centos5.1, debianSid, solaris10, netbsd4 because of that, the Makefile.PLs shouldn't assume the perl core is complete..? well, Test::Harness::Straps is part of the default install for perl 5.8.8 and 5.10.0 if you didn't get it, the install wasn't complete is this only happening on netbsd4, or elsewhere too? I know it happened on sol10, and I know it happened on one of the other two, but I don't recall which I could check the file times to be sure hmm sol10 came with perl 5.8.4 the linuces had 5.8.8 Test::Harness::Straps is in 5.8.4 too... http://search.cpan.org/src/NWCLARK/perl-5.8.4/lib/Test/Harness/Straps.pm Infinoid's url is at http://xrl.us/bi7v8 odd yeah oh, I have an idea; brb never mind Okie dokie purl, mind now! Infinoid: excuse me? anyway, how do I get the output of these (2) failing tests on netbsd (3) I mean oh, they're just codingstd if you run them under "prove -v", or just under "perl", you will see their full diagnostic output nopaste? nopaste is, like, 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 "diakopter" at 209.9.237.164 pasted "./t/codingstd/c_cppcomments.t" (11 lines) at http://nopaste.snit.ch/12671 diakopter: huh. that should be telling you the file that it failed on. cool, looks like the test errored out. Can you try "perl t/codingstd/c_cppcomments.t"? (and that passes for me here.) Segmentation fault (core dumped) awesome diakopter: what version of perl do you have? This is perl, v5.8.8 built for i386-netbsd-thread-multi are the other tests failing in the same way? yep. c_operator outputs 1..1 and c_parens outputs 1..3 and c_cppcomments outputs 1..1 hmm. I think it has to be a perl bug next I was going to try NetBSD4.0/amd64 we'll see how that goes I guess % skids has joined #parrot % ambs has left ambs!~ambs@siglab.di.uminho.pt someone just told me they're giving me an UltraSparc5 with Solaris10 on it diakopter: awesome. eh, I think I'll wait until Sol10 2008-05 is available April 16 to do the 64-bit one. okay, I guess I'll start on some Windows ones since those are fun, and MSFT is unlikely to want to smoke all the combinations % gryphon has joined #parrot there's 32-bit vs 64-bit, there's 2003, 2008, XP SP1,SP2,SP3, Vista SP0,SP1, there's strawberry perl, activestate perl, microsoft(!) perl, cygwin perl, where do I start (augh)? and there's MSVC, cygwin, and mingw and strawberry perl. it has been said that strawberry perl is found at http://strawberryperl.com/ (since that has a compiler built in.) % Andy has joined #parrot yeah, strawberry implies mingw hey, I mentioned cygwin and strawberry, and I figured mingw was covered under strawberry you're right :) % contingencyplan has joined #parrot now, which ones will Microsoft likely prefer to smoke I'm guessing VC++ and Microsoft perl or perhaps ASperl what is "microsoft perl" ? what used to be called Services For Unix microsoft bundles a distribution of perl with windows server 2003 it's on the second CD Server 2003 R2, I should say. for pre-R2, it was available for download looks like SFU includes ASPerl. (and some other perl, but if has asperl... hm here's the one that includes "UNIX perl": http://www.microsoft.com/downloads/details.aspx?familyid=93ff2201-325e-487f-a398-efde5758c47f&displaylang=en diakopter's url is at http://xrl.us/bi7zm Utilities and SDK for UNIX-Based Applications is an add-on to the Subsystem for UNIX-Based Applications (referred to as SUA, hence forth) component that shipped in Microsoft Windows Vista / Windows Server 2008 RTM. in the least, I could help them set up the smoking environments by preparing some install instructions and smoke scripts * diakopter installs Server 2008 and UaSfUBAforSUA it's likely perl 5.6 does parrot require perl 5.8? yes. but mainly out of laziness. (Given our long term plan to avoid having perl required at all, forcing ourselves to limit ourselves to older perl versions now is too limiting.) does that need to happen before 1.0? (I don't know where it sits on the roadmap.) % uniejo has left uniejo!~uniejo@langebro.adapt.dk the original plan was yes. the current plan doesn't require it, I think. We would need to have some kind of bootstrapping plan to replace it, and while that's theoretically possible, it's better for us to concentrate on VM features. % IllvilJa has joined #parrot yeah, it doesn't sound easy. we're going with perl 5.8 for 1.0 Unless of course someone gets very motivated. diakopter: smoking strawberry would be fabulous mmm, strawberry * pmichaud wonders what the DEA would say about "smoking strawberry" we're likely going to require icu for parrot 1.0, too ....we are? * particle installs icu (finally) yes I was hoping that we'd have the new string code in place before then i.e., the Strings PDD sure. but transcoding ops? transcoding isn't all that difficult, really I mean, what are we going to transcode between? utf8, ascii, and iso-8859-1, yes? sorry, i meant upcase/downcase particle: are these declarations the result of your private conversation with allison this weekend? and grapheme cluster equivalence grapheme cluster equivalence might take more work, yes coke: yes. she should be writing something up ... That would be handy. upcase/downcase isn't even that difficult either the tricky part is properties 'u' :umlaut :uppercase but I've already done (in PHP) upcase/downcase conversion tables for codepoints up to U+055F it's really not that bad and I don't know that there's much upper/lowercase stuff beyond U+055F ok, well, if we can get it done, great! but allison and i are ok with requiring icu for parrot 1.0 if we have to okay, if we can get it done :-) if someone can focus on getting an efficient string implementation for Parrot according to whatever the new strings pdd looks like, I can help with getting the unicode stuff to work w/o icu jonathan++ # pint % peeps[work] has joined #parrot wow, it's 10:40 already think I'll do an early lunch then come back with more pct updates :-) ooh. breakfast. good idea % AndyA has joined #parrot nearly 12 here. bother. % sjansen has joined #parrot % ambs has joined #parrot r26902 | tewk++ | trunk: : [c99] independent C pre-processor diff: http://www.parrotvm.org/svn/parrot/revision?rev=26902 r26903 | tewk++ | trunk: : [MANIFEST] diff: http://www.parrotvm.org/svn/parrot/revision?rev=26903 particle++ # comment about BEGIN blocks on p6l "cognominal" at 82.67.232.89 pasted ".perl for Bool, handling of my WHAT for classes derived from PMC" (38 lines) at http://nopaste.snit.ch/12675 can someone review and apply this patch? % AndyA has left AndyA!~andy@062249178237.customer.alfanett.no * diakopter installs Microsoft perl on Win2008 cognominal: $I0 = $P0 is wrong could perhaps use $I0 = istrue $P0 but even better is simply: if $P0 goto true yes (one cannot use numification to decide if a particular value is true/false) as for the 'WHAT' method, I think the 'Ref' type will disappear when we get the copy op conversion done ok waht is the copy op? * Coke supposes he should re-join p6l after a multi year hiatus. given two pmcs, put the guts of $2 into $1. two pmcs of the same type? no, they can be different types essentially, make $1 into a copy of $2 what makes it different from morph morph simply changes an object's type ok currently rakudo ends up doing the equivalent of morph+assign, which is what generates the Ref replacing this with 'copy' will hopefully fix that I'm checking to see what would be needed to convert hi, I'm working on TapTinder http://tt.perl6.cz/ , so no time to pct-html-dump http://mj41.cz/static/parrot/pct-html-dump/output-06/ , patch is for r24855, if anybody has free time ... :-) and sorry for my English again I speaks engrish too :) * pmichaud tries the copy op conversion pmichaud: Erm, you're going to hate me for what I did to assignment in Rakudo. ;-) jonathan: why, what did you do? But it did provide a way to try out the copy op. And a bunch of tests failed with it. :-( I just tried converting to copy op now and it seems to work pmichaud: Since we have to do a type-check on assignments, assignment isn't done through the copy past node any more. at least, it passes the basic rakudo tests A next step was to, when we can statically know there weren't any type constraints, just emit a standard copy node. Which is an optimization. I somewhat think we need/will end up with a Scalar type and that type checking would be done via the Scalar To try this out for real, you'll need to change TYPECHECKEDASSIGN. Well, we can do that route if we have two PMCs per variable - a container PMC and a value inside it. i.e., typing is a property of the container, not of the value s/typing/type checking/ Sure, but at the moment we just have one PMC that is acting kinda like both. well, if I knew how to efficiently write a Scalar PMC, I'd do it. But I don't. :-| Which means you have to check the type and pass it on over assignments. *other anyway, I did expect the assignment code to change for rakudo, yes. OK. Well, I changed it. :-) But I did in passing try the copy op in doing so. I'm not sure I planned for type checking to be this soon in development, but we'll leave it for now so, are you saying copy doesn't work with what is in rakudo now, or ... ? % Theory has joined #parrot If you replace the morph/assign in the type checked assignment routine with copy, you get some test failures. oh, assignment is doing its *own* morph/assign? I was focusing on getting the type checking stuff working rather than trying to trace down those ones. Right, it seemed the neatest implementation. we really need to get rid of morph from rakudo, though See src/builtins/guts.pir Change the morph/assign sequence to a copy in there. jonathan: that doesn't look right okay, will do thanks When I did, I got a few failures. why does the assignee always need a 'vartype' attribute? We don't have a scalar PMC to hold onto the type. Thus we need to attatch it to the value. Somehow. is the type restriction dynamic? Yes. Constraint types (declared with subset) have to be in the general case. I agree with you but don't follow the constraint types/subset example preparing to smoke i586-pc-interix3 Constraint types, declared with the subset keyword, allow any condition to be used to create a type. And trying to type-check those at compile time involves solving the halting problem. Which may delay Perl 6 a little... We may well be able to detect some easy things at compile time. with copy, WHAT indeed works without my patch But for now, fully dynamic checks get us to meet the spec, I believe. jonathan: okay. But this means we really need a Scalar type. I'm afraid if we keep trying to attach things to the values we'll really clutter up the entire implementation especially because there are large number of properties that we'll start to have to keep track of % peepsalot has left peepsalot!~peeps@cpe-67-9-161-48.austin.res.rr.com Well, we can always resolve that by a level of indirection - every value has one place to hang off all of these things. and just reassign it? yeah, that might work % peepsalot has joined #parrot * Coke whispers, "hll interop" Right, just as I'm doing with types, but generalize it to do everything. also, as a general rule I try to make sure all of my attributes have sigils (e.g., 'vartype') *but*, it doesn't win us much in memory usage. Because then we have another PMC holding the "hung off" data. Well, it does if there's no data to put there, I guess. OK, can change that. % mj41 has left mj41!chatzilla@pc-jurosz.ro.vutbr.cz I think in the long run we're going to end up effectively having that extra PMC around anyway it might not _be_ a PMC, but it'll certainly act a lot like one :) having a Scalar type would also be nicer because then we can make type and other constraint checking a part of the copy op instead of a separately called sub (constraint types) can we do this with a hook on setting the value of the pmc that invokes some method? Coke: that'd be nice to have I think having a Scalar type is the neater implementation. (that would address one of the requirements tcl has.) or, for that matter, why not just override the copy op for Perl6Object ? You can't override ops? we can't? not sfaik. Ops aren't MMD at that level. you can add a new dynamic op. Only register types. INSP I'm confused INSP? INSP is "integer, number, string, pmc" Right, the different register types. ops *can* be mmd, though see, for example, cmp_str ops definitely can be mmd they're not fun to debug that way, but they do work ... it's not the same mechanism, izzit? and is 'copy' just an op or is it also a vtable entry? No, it's just an op pity. It calls multiple (at least two) v-table entries. cmp_str isn't "an mmd op", it's "an op that invokes mmd". okay, then could copy become 'an op that invokes mmd'? sure. The copy op does 3 v-table method calls. It's quite a scary op... It doesn't actually call any kind of set_pmc or assign_pmc vtable methods. it's not supposed to. :-) Right, but I'm not seeing anywhere we can hook it. well, maybe we just need to bite-the-bullet and develop a Scalar PMC type I fear so. Wonder how hard this will be to get right... :-) unfortunately, I have no clue where to begin. There still isn't a good "here's how to create a new PMC" document that I'm aware of all of the PMCs I've created are just cargo-culted (bugs and all) from other implementations 'ack -a pmclass docs' is probably your best bet atm. i designed exporter pmc from scratch doesn't use vtable functions though a scalar pmc should really take on the vtable of its contents, except for a few special operations didn't audrey start a Scalar pmc for pugs? (audrey) yes, but I could never quite understand it or get it to work like I thought it should what is the real_self in a PMC? read pdd17_pmc fwiw, if we have a real Scalar PMC, then the operation should become 'assign' instead of 'copy' cognominal: If you have an instance of a PMC, but actually it's been subclassed by a high level object, this stores the subclass, so we can dispatch calls on the Right Thing. it seems that the copy makes a lot of stuff shared between the copy and the copeid object pmichaud: Agree. I can have a crack at it, perhaps. jonathan: I'd really appreciate that otherwise I think the rakudo code is going to get progressively messier in this area Yeah. pmclass Scalar provides scalar { ... } /* first cut */ (which is one reason why I wasn't in a rush to do it -- I wanted to take care of 'cleaner' things first :-) As per usual, my first implementation of a feature reveals the way not to do it. anti-patterns++ * jonathan has a feeling getting the Scalar PMC right is going to hurt this also tells me that what I was planning to use to test the copy opcode isn't really going to test it :-| I have a dread that we're goign to finish two different languages and then have to redo them to get HLL interop to work in any sane fashion. :| coke: I think that's a near certainty no matter what we do Coke: Scalar PMC should give us a better change of success on interop with Perl 6. can we write some tests for Scalar PMC before we write the pmc? % mj41 has joined #parrot first crack at a scalar PMC: (1) assign should cause the scalar in $1 to reference a COW version of $2 (2) all other operations should be delegated to the reference if COW isn't possible, then a copy is okay Let's do a copy first. trickier is figuring out how to do a 'bind' operation And optimize later. Well, if you bind to a value, then it's ro It's just assignment of the PMC reference, right? ah, that's the other problem darn $a[5] = 4; currently uses "copy" aw drat; interix6.0 has perl5.6.1. oh well. on to strawberry. strawberry++ * ambs licks his lips a lot of this stuff seemed more doable to me when we had setprop/getprop attributes don't work for you? sure, if we're giving every value in rakudo a set of attributes but setprop/getprop didn't really copy from one pmc to the next, iirc whereas attributes do i.e., PMC acted more like containers than values *PMCs Right, and the properties stayed the same when you changed the type/value. exactly That's exactly what I've gone and faked up. :-) But more seriously, we need to allow people to write their own container classes too. jonathan: unless you have a breakthrough idea, I'd hold off on Scalar for now my $x is Persistent; let's just give every object a %!properties attribute or something and we can store constraints in there And copy it on assign? well, reference reference is now stringified or perhaps I should say "restore" restore is the word I think I used in my comment ;-) i.e., make sure that assignment doesn't destroy the PMCs %!properties OK, so that's just taking what I did already and generalizing it. but I'd still prefer to see it handled as part of a copy operation we can generalize it with a role does rScalar I think that such an op would need to be so specific to Perl 6 it'd be a dynop. or rProperties or whatever I'd really prefer to find a way to get copy $P0, $P1 to dtrt particle: (role) does something that has to be on every PMC really need to be a role? gotta get allison involved on that sorry, I mis-stated Well, I can hack it to keep any %!properties around, but it will be a Perl 6 specific op then... I _really_ wish that assign would dtrt pmichaud: it's a matter of composition strategy % Theory has left Theory!~Theory@c-76-115-2-225.hsd1.or.comcast.net oh, hey, is assign a vtable entry? we have roles for a reason. reuse. yes oh, then let's just overload ' 'assign' and use that 'assign_string_native' and 'assign_pmc' % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt we're unlikely to use 'assign_string_native' in rakudo assign can be built in terms of the 'copy' op Hmm, interesting idea. i heard interesting idea was to put two of the bots in the same channel, from different game servers so, whenever we want to do assignment, we generate an 'assign' instruction, and our overloaded 'assign' (for all rakudo PMC values) will do a copy and check any constraints and make sure the copy retains the constraints Worth a try. other languages wanting to hll interop with rakudo also use 'assign', which dtrt Right, and PCT would not emit a morph and assign any more, just an assign? correct er, not exactly How will that impact other HLLs using assign? Rakudo would generate assignments as assignment ops i.e., it'll just do :pirop('assign') instead of :pasttype('copy') Oh, OK. So we add a third pasttype? no bind, copy, and now assign? no, assign is a PIR operation oh pirop *right* Sorry, I thought they were both pasttype Inverse typo. it doesn't affect other HLLs unless they happen to call 'assign' on a rakudo PMC In which case, it should do the Right Thing. exactly. OK. So which one of us gets to try this? :-) whoever gets to it first? ;-) I'd rather we don't both try at the same time. pmichaud: (assign, HLL), which is entirely possible, if you generate a PMC and pass it in to some other HLL. well, I'm not doing it soon. I'm happy to know that we have *a* potential solution without needing a ton of change er, to a method defined in some other HLL. if I start on the assign op version I'll let you know first otherwise feel free to do it whenever you feel like getting around to it % ruoso has left ruoso!~ruoso@195.23.92.2 including not doing it at all anytime soon I'm kinda keen to get this worked out, just because until we have a solution I'll feel uncomfortable building a load of stuff on top of it. Just feels like one of those fundemental things we should try and get right early. then feel free to start. I don't plan to be doing anything anytime soon (i.e., next seven days) that might interfere on it OK, I will see what I can do. most of what I expect to do will be code review and finding things like this that I can carp about :-) Finding Rakudo hacking vaguely addictive at the moment. and I'm very happy to be feeding that addiction :-) % barney has joined #parrot I agree, it's a fundamental thing I'd like to get right early * PerlJam hopes someone is saving this conversation. Review of what I'm doing is certainly a Good Thing. The last few lines from pmichaud and jonathan seem like they should be on a slide for someone's YASPC talk :) er, s/YAS/YA/ perljam: so, stick it in your talk! What... you didn't submit one?!?! PerlJam: which lines, exactly? I'll store them away for my talk or, even better, I'll put them in a use.perl article pmichaud: the addictive/feeding lines especially :) OK, I'm hungry. Time to go cook something. % rdice has left rdice!~richard_d@CPE0014bfafbbd5-CM0011e6ecf48a.cpe.net.cable.rogers.com (hll interop) -- yes, I think we'll end up having to do some tweaking to get hll interop to work between some of the languages % rdice has joined #parrot "diakopter" at 72.202.142.227 pasted "strawberry failures so far" (123 lines) at http://nopaste.snit.ch/12676 r26904 | bernhard++ | trunk: : #52666: [PATCH] Eclectus: implement EQ?, EQV? and EQUAL? : Courtesy of Andreas Rottmann diff: http://www.parrotvm.org/svn/parrot/revision?rev=26904 r26905 | pmichaud++ | trunk: : [pct]: : * Some documentation and code ordering cleanups. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26905 diakopter: thanks. -0.0, Inf and NaN are common failures, as we don't have a standard way of representing those yet % Theory has joined #parrot % ruoso has joined #parrot r26906 | bernhard++ | trunk: : [c99] : Set svn properties. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26906 r26907 | pmichaud++ | trunk: : [pct]: : * Refactor PAST::Var node scope handling. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26907 r26908 | bernhard++ | trunk: : #48030: [DEPRECATED] compilers/PAST-pm, Parrot/HLLCompiler.pir : Add workaround for deprecated Parrot/HLLCompiler.pir diff: http://www.parrotvm.org/svn/parrot/revision?rev=26908 % lidi20 has joined #parrot % lidi20 has left lidi20!~lidi20@d033.dhcp212-198-248.noos.fr r26909 | bernhard++ | trunk: : remove trailing whitespace diff: http://www.parrotvm.org/svn/parrot/revision?rev=26909 % Donald has joined #parrot is Andy Bach in the house? % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net r26910 | bernhard++ | trunk: : #48030: [DEPRECATED] compilers/PAST-pm, Parrot/HLLCompiler.pir : Let Perl6Grammar.pir use PCT::HLLCompiler diff: http://www.parrotvm.org/svn/parrot/revision?rev=26910 % gryphon has joined #parrot Looks like the docs to 'compreg' is incomplete something in particular lacking? Registering an object on which the method 'compile' will be called the opcode descriptions are shy. compreg is old barney: You can DO that? I thought it was just an invokable. compreg doesn't care what kind of object it's given it's basically a glorified hash I need to do that, It complained when I wanted to register a Sub whatever you stick into it is what you get out pmichaud: the expectation, though, is that when you get something out of the hash, you can simply invoke it and pass in the source as a single string arg. I see. Calling the method 'compile' then is just a convention ? coke: I think that's no longer true either nowadays we expect to have a compiler object with a 'compile' method but I don't think that's been officially specced in a PDD yet, except for... ... that's definitely not documented near the opcode. and is very likely not how tcl works. barney: opening a ticket would be good. what I really would like is to be able to have an object that is both a HLLCompiler and invokable pmichaud: and it's now how PIR and PASM compreg works. correct but that's a function of the object registered with compreg, not of compreg itself r26911 | bernhard++ | trunk: : #48030: [DEPRECATED] compilers/PAST-pm, Parrot/HLLCompiler.pir : Give 'compreg' a compiler object with a 'compile' method, : but don't use Parrot::HLLCompiler for that. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26911 right, but if you're registering something else that doesn't work like others are expecting, BOOM. allison and I had an on-list discussion about this some time back the expectation is that compilers are objects that understand certain methods -- many of which are currently documented in pdd21 can you get a link to that discussion so barney can add it to his ticket? it would be around the time of the first PAST-pm implementation and HLLCompiler implementation I think there are two tickets needed here (1) update the compreg opcode, which I think we can do immediately (i.e., update the docs) (2) define the standard interface for compiler objects * pmichaud searches his email archives I think we need to do #2 first so we know what #1 should say. #1 should say the following: compreg(out PMC, in STR) get a compiler for source type $2 and compreg(in STR, invar PMC) register $2 as a compiler for source type $1. .end without defining what "compiler" means, that's not much more helpful than the current situation. compiler is any object that can do compilation "how" the documentation for compreg doesn't need to specify that if it doesn't, then we need to delete those two opcodes. =-) because they're useless. no they aren't yes they are! they're the standard way of obtaining a handle to the compiler for a given language if I don't know how to *use* the object I'm given back, what good is it? let me argue this by way of analogy I think we should get rid of the set_p_p_ks opcode, because it doesn't tell us how to use the PMC that is retrieved from the aggregate I think your analogy is flawed. i already had it that way, Coke. mmhehehe. * Coke pats purl onna head. This is not some generic hash. It's a VERY SPECIFIC hash. so, you're saying it should enforce the types of objects that it hashes? if I don't know how to invoke a compiler object, it is of no use to me as the result of a call to compreg. oh come on That is slightly separate from "having a convention". r26912 | bernhard++ | trunk: : #48030: [DEPRECATED] compilers/PAST-pm, Parrot/HLLCompiler.pir : Remove Parrot/HLLCompiler.pir diff: http://www.parrotvm.org/svn/parrot/revision?rev=26912 are you arguing: (1) that the compreg opcode needs to document all of the methods supported by compiler objects (2) that all compilers should have the same interface as PIR and PASM do now (3) that the compreg opcode should *enforce* certain restrictions on the objects that are registered as compilers (4) something else entirely? I am saying "I want to be able to ask for an arbitrary language's compile and be able to use the same way of invoking it, regardless of the language". "language's compiler" okay, I agree with that. That is my ticket #2 above but I don't think the "how to invoke it" has to be a part of the compreg opcode, any more than "how to use it" has to be part of the documentation of any other opcode that gives us a result that's the bare minimum. I think any clarification of the documentation to compreg must include that. if it doesn't at least point to the documentation about what to expect from a compiler object, the documentation is pretty useless. well, there are two problems there then (1) we don't have a standard for compiler objects Why isn't there simple a reserved hash in the Parrot namespace ? pmichaud: (we don't) we did, which is part of where my confusion is coming from. coke: well, parts of pdd21 effectively changed that standard and yes, I was confused also when I saw that barney: (reserved hash) -- sure, we could do it all with a reserved hash as well. compreg is residual. it used to be that compilers were special NCI routines pmichaud: the compiler PMC API there doesn't list ... compile. Coke: correct, it doesn't list compile. But it does show that whatever we consider a "compiler object" needs to have methods beyond simple "invoke" But only in a throw away, unvetted example does it even mention that these compiler objects are what we expect from compreg. I still don't know exactly what it is that you want to change. (more) if you're saying that compreg is expected to give and take those objects, shouldn't the compreg docs at least point to that section of the PDD? yes, I think it's fine for the compreg docs to point to the "compilers" section of the PDD Ok. So you agree that everything that goes through compreg *should* follow whatever the api is for compiler objects? Yes, I agree with that. That would be great. I'm just also realistic that this isn't likely to happen anytime soon for the existing PIR and PASM compilers. Then, at a bare minimum, that discrepency needs to be noted in the docs. preferablly in the opcode docs, since the pdd's are supposed to represent the ideal. http://groups.google.com/group/perl.perl6.internals/browse_thread/thread/9c58722a98f731b3 but even if we do that, pdd21 still doesn't tell you how to compile anything. pmichaud's url is at http://xrl.us/bi8s4 which brings me back to my original complaint about the unfinished API. and allison wrote in that thread: % ambs has joined #parrot "Also for the record from the weekly meeting (which was actually today, just a very long today): Yes, compilers are objects and compilation is a method call. The compiler for TGE tree grammars is implemented this way, and it's a very usable interface. " also "We might want to resurrect the 'compile' opcode as an indirect syntax for making the 'compile' method call. " because it *used* to be that the only way to invoke a compiler (returned from compreg) was to use the 'compile' opcode. % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt We never got a compilers PDD, did we? no, because we went through a number of iterations about HLLCompiler and what it should look like and some of my messages asking about methods in pdd21 got warnocked * Coke trusts barney will get all this de-warnocked. =-) Coke: can you tell me anything about the "macports" step of configuration? Infinoid: ... no it's unrelated to making a parrot macport. =-) * Infinoid will bug kid51 then, thanks I b'leev the intent is to discover the install location of macports so you can find deps that it might have installed for you. pmichaud: thanks for digging up that email thread. sure thing r26910 broke TapTinder ... http://tt.perl6.cz/ ... but it's time to sleep we should probably go ahead and make an rt ticket for "compiler pdd" design items theoretically are not going into RT. oh will try to fix it tomorrow, good night where do they go? but if you open a ticket, it will be good enough and remind allison or myself to move it. I... can't... remember the name of the other website. launchpad? launchpad is, like, http://geekz.co.uk/lovesraymond/archive/cancomical-lynchpad or http://azure.humbug.org.au/~aj/blog/2005/09/04#2005-09-04-launchpad-freeness or http://launchpad.net/ or https://launchpad.net/parrot/ YES. thank you. brain freeze. r26913 | bernhard++ | trunk: : [c99] : clean up src/cpp/Makefile diff: http://www.parrotvm.org/svn/parrot/revision?rev=26913 I also want a re-review of namespaces pdd, fwiw I think it can be redone a lot smarter now that we have PCCMETHODs the previous design assumed that we were limited to existing opcode formats purl, launchpad is also Darkwing Duck's sidekick okay, diakopter. % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net blueprints? blueprints are blue because they're printed on special paper using a ammonia solution. I kid you not. blueprints are also https://blueprints.launchpad.net/parrot/ okay, Coke. btw, we probably need something that says that design discussions and todo items belong in launchpad =-) I wonder where _that_ ticket goes :-) :-) I have to go cook dinner... bbiaw docs/submissions.pod ; it's not a big deal if someone opens a ticket in RT that "belongs" in launchpad; just figured that those of us more likely to open things that require design review could skip the middle man. okay. I had forgotten the launchpad/design rt/impl distinction you can tell from my lack of URL that I'd not thought of it in some time. looks like it needs some cleanup, too. oddly, I was looking at parrot's entry in launchpad just a few days ago is there an email-interface for posting tickets to launchpad? I'm not a huge fan, but allison liked it. =-) pmichaud: no clue. I can remember an email alias much easier than a url "will@coleda.com" works for now. :| % rdice has left rdice!~richard_d@CPE0014bfafbbd5-CM0011e6ecf48a.cpe.net.cable.rogers.com r26914 | infinoid++ | trunk: : [config] add auto::macports (from r26892) to MANIFEST. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26914 Coke: Did you ever "finish" that extjs thing you were working on? PerlJam: No. I need an RT instance to play with. r26915 | bernhard++ | trunk: : [Rakudo] : Let 'make realclean' in the Parrot root, that pretty much killed my tuits. : clean up the 'languages/perl6' Makefiles as well. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26915 there is a googlecode url for the WIP. extjs? extjs is a js gui toolkit, or at http://extjs.com/ extjs is also http://code.google.com/p/rt-viewer/ okay, Coke. PerlJam: give me a google id, you can have commit bits. =-) % AndyA has joined #parrot Coke: perlpilot@gmail.com (I don't know if I'll actually do anything, but every now and then I play with ext) % Andy has left Andy!~AndyL@host3130.follett.com % barney has left barney!~bernhard@dslb-084-058-190-068.pools.arcor-ip.net % Theory has joined #parrot % Donald has left Donald!~chatzilla@host213-123-171-12.in-addr.btopenworld.com r26916 | infinoid++ | trunk: : [config] Add t/steps/auto_macports_0[1-5].t to MANIFEST. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26916 % skids has left skids!bri@charon.clarku.edu PerlJam: added. % AndyA has left AndyA!~andy@cm-84.215.55.4.getinternet.no % iblechbot has left iblechbot!~iblechbot@157.17-dial.augustakom.net % AndyA has joined #parrot ewilhelm: what format/layout do you want the socialtext wiki change notices to take? You have author (which is sometimes a full name and sometimes an email address according to socialtext), link, datetime, and title to work with. how about this: allison@perl.org | milestones link: http://www.perlfoundation.org/parrot/index.cgi?milestones anyone else have any suggestions? the rss feed in question is http://www.perlfoundation.org/feed/workspace/parrot?category=Recent%20Changes diakopter's url is at http://xrl.us/bi8xg r26917 | infinoid++ | trunk: : [Parrot::Manifest]: Only ignore "blib" and "ports" in the toplevel parrot dir. : This means it won't ignore things named "macports" any more. This fixes the : confusion that resulted in RT #52712. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26917 diakopter: that sounds good -- would an xlr get it all on one line? allison@perl.org | milestones | http://xrl.us/... % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net but what you have works fine too % AndyA has left AndyA!~andy@cm-84.215.55.4.getinternet.no % peeps[work] has left peeps[work]!~peepsalot@bwext.kpimdp.com arggggh r26910 broke the build % Limbic_Region has joined #parrot % skids has joined #parrot % wknight8111 has joined #parrot pmichaud: ObStandard: realclean? it's the realclean that exposes the breakage 26910 changes PGE to use PCT/HLLCompiler.pbc instead of Parrot/HLLCompiler.pbc, but the makefile builds pge before pct simple fix... I'm just testing it now (and make test takes a long time, aywk) pmichaud: Looks like some missing bits of Parrot need filling in before I can play with overriding assign_pmc. Mailed the list with my thoughts/questions. jonathan: excellent work, thanks Spent most of the evening trying to find a place to live from the middle of next month, so not got much more than that done. having a place to live is important, yes. :-) % kid51 has joined #parrot kid51++ # for finding the broken manifest regex You thought any on how we support people writing their own multi postcircumfix:<[ ]> to support array access and so forth? I mean, the Easy Thing is to always generate array indexing as a call do that. Thanks. As always, Andy D figured out some way to reveal an obscure design flaw in something that had passed all tests --formal and use -- for months. But it's not exaclty efficient... efficency is overrated Ooh, maybe we can a dispatch to that in a default set_pmc_keyed in Perl6Object. s/can/can put/ Infinoid: And speaking of Andys, I think I'll take a hint from Andy *L* and try to write at test for that bug. I was going to override the corresponding set_* op kid51: and while you're at it, there's a nice patch from Andy *B* (RT#52710) and I was only going to do the override for the classes that need it OK. as opposed to doing it in Perl6Object... unless we determine that Perl6Object needs it :-) Well, you don't know which classes need it, maybe? As it's declared outside of the class, as a multi... most operator overloading is going to require some special handling home & i.e., we have to adjust the parser, and a variety of other things Not to mention defining new ones, which I guess need some grammar...ah, beat me to it. operator overloading is one of those things that I've been personally saving for "much later" I mean, it's cool and all to do the more esoteric features, but at some point we need rakudo to at least be able to do as much as perl 5 does and we're not even close to that yet :-) kid51: (that is, if you're in Andy-processing mode) Sure, I'm more concenred about knowing that we will be able to do these things without huge upheavel, than doing them now. oh, I'm pretty sure we'll be able to remap things later on fairly easily as long as we stick to method and function based interfaces, it's pretty straightforward OK, sounds good. speakers so loud they blow women's clothing off! ... jonathan: responded to your email. your short term need is doable with existing syntax. Coke: Oh, cool - show me? languages/tcl/src/class/tclconst.pir : set_string_native overrides the vtable of the parent, then invokes it at the end. r26918 | pmichaud++ | trunk: : [pge]: : * Fix makefile so that pge is built after pct (since PGE now : relies on PCT::HLLCompiler as of r26910). diff: http://www.parrotvm.org/svn/parrot/revision?rev=26918 Oh, that's sick. Nice. :-) Thanks, will check that out. NOt tonight though. It's evil, pure and simple, from the 8th dimension. But that was the answer we got when we asked that question months ago. =-) If it works, I'll take it. pmichaud: Do you have a kind of "feature roadmap" with a rough ordering of things you'd like to see in Rakudo? I'm happy to just pick at random stuff as how to implement it makes sense to me, but if you have more of a roadmap/wish list I'm happy to try and work to that. r26919 | pmichaud++ | trunk: : [pct]: : * Add capability for blocks to set default 'scope' values for : symbols, removing the need for every PAST::Var node to have : a :scope attribute. Now only those that differ from the default : need it. jonathan: obra has asked for one and we're working on it diff: http://www.parrotvm.org/svn/parrot/revision?rev=26919 . o O ( pass more tests from spectest :-) obra was going to send a draft of the one that audreyt++ used for pugs, but it hasn't arrived yet so I may just build it myself maybe I can do it as a journal post tonight or tomorrow afk for a bit, yard work afk for a bit too, sleep look forward to seeing it, glad it's on the cards :-) night all * Coke ponders a "makedepend" step. :| * Coke stops that. Here's a logistics question: Suppose that I go to the GUI interface to our RT system and see that someone (in this case, Infinoid) has attached a patch to a post. http://rt.perl.org/rt3/Ticket/Attachment/384504/174160/rt52710.diff.txt Yes? Is there any way that I can paste that as an argument to some command-line utility and have it download to my box *in the .txt format*? like... wget? curl? Since wgte [thelink] downloads as html. If you referred to the public version, probably. you're probably getting the login screen? Correct, it does look like the login. % Theory has left Theory!~Theory@h-67-100-128-102.sttnwaho.dynamic.covad.net My objective is to save it to my Linux server -- which is all CLI, no GUI -- so that I can get to work on it quickly. your best bet is probably to install the rt cli. i.e., without downloading it to my laptop, then uploading it to the server. purl rt cli? kid51: i haven't a clue RT? i guess RT is just RT (http://bestpractical.com/rt) or (:rt3) or (: rt bugs) or Obra's trouble ticketing system or the first IBM RISC workstation (http://www.contrib.andrew.cmu.edu/~shadow/ibmrt.html) or the bombsquad or the Right Thing or very very capable and open-source or an application framework that bundles a ticketing system or obra's baby or SOOOO slow :-S or email mailto:perlbug-owner@perl.org for access hurm. moment. rtcli? purl rtcli? kid51: i don't know rtcli is RT CLI RT CLI is http://www.perlfoundation.org/parrot/index.cgi?how_to_use_rt_from_the_command_line Coke's url is at http://xrl.us/bi82y * kid51 looks at Coke's link. that gives you the ability to do searches from the commandline, update status from the command line, add comments, see attachments... the docs are a little sketchy, but it's come in handy for me on many occasions. this will also allow you to create tickets from the command line, even. (something only bugadmins can do.) hope this helps. Hope this hurts, KLB motherfucker. mmhehe purl's been drinking again i dont even know what KLB means :) klb? well, klb is a Known Lazy Bastard (or Bitch), that is someone who'd rather waste someone else's time than look it up for themselves. or someone whose momma didn't tell them 'Look it up in a dictionary, ya punk' often enough. or those flashing missiles that would chase you in corncob fields or #perl helps those who help themselves or Kawartha Lakes Brewery or Korean Library Book or Kangaroo Leg Barbecue stupid kangaroo leg barbeque Coke: Don't see where in RT site to set my preferences, establish API password. That's different from my Bitcard login and password? Oh, I've got it: http://rt.perl.org/rt3/User/Prefs.html purl: "RT preferences" is http://rt.perl.org/rt3/User/Prefs.html OK, kid51. purl RT preferences? kid51: no idea "rt preferences" "rt preferences" is, like, http://rt.perl.org/rt3/User/Prefs.html forget "rt preferences" Coke: I forgot "rt preferences" purl: "RT preferences" is http://rt.perl.org/rt3/User/Prefs.html OK, kid51. gah. don't use the quotes. purl: RT preferences is http://rt.perl.org/rt3/User/Prefs.html OK, kid51. danke. =-) purl RT preferences? well, RT preferences is http://rt.perl.org/rt3/User/Prefs.html RT preferences? i guess RT preferences is http://rt.perl.org/rt3/User/Prefs.html owe me a coke? pepsi ok? % tetragon has joined #parrot kid51: Last night you found t/dynpmc/gdbmhash.t would hang after test 3 on Darwin. That is not the case on my Darwin system (with a last night checkout) tetragon: That's one of the things I hope to check out tonight. But I have to have dinner first. wknight8111: ... hahahahahah NO! I got a couple of other bugs to deal with before I get to that one. You logged out right before my build finished :( * kid51 update's Coke's wiki page about RT * kid51 starts making dinner & kid51: the syntax to get that attachment, btw, is: rt show ticket/52710/attachments/174160 and leaving off the id at the end gives us an almost usable listing. * tetragon accidentally confirms that she still needs her config patch kid51: (hurm. that actually does give you a bit more than you want, but is easily processable.) "rt show -f content ticket/52710/attachments/174160" is closer. % sjansen has left sjansen!~sjansen@hq-nat2.gurulabs.com strawberry and cygwin smokers up and running. now what? I suppose MSVC is worth a try msvc compiles fine, and is easy to set up 64bit however, hates msvc particle: so which would you prefer I smoke? XPx64 or 32 we know xp x64 is broken, but it's the build, not the tests 32 would be helpful, just to have consistent, frequent smokes i'll run an xp smoke tonight. I don't think i can set up a consistent one though % mire__ has left mire__!~Frodo@178-173-222-85.adsl.verat.net r26920 | chromatic++ | trunk: : [OO] Optimized isa() vtable entry for Class. Instead of delegating most of its : work to isa_pmc(), this entry now performs its work directly. This is slightly : faster and avoids creating a temporary PMC. : The Perl 6 build process is now 19.78% faster with this patch, and all tests : still pass. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26920 % Theory has joined #parrot % mire__ has joined #parrot % mire__ has left mire__!~Frodo@61-174-222-85.adsl.verat.net We're in bad shape: I cannot complete 'make' on either Linux or Darwin. See: http://rt.perl.org/rt3/Ticket/Display.html?id=52726 See: http://rt.perl.org/rt3/Ticket/Display.html?id=52680 kid51: what svn revision are you at? 26917 hmmm r26910 introduced a bug in building PGE, but I thought I fixed it and, needless to say, I do 'make realclean' religiously. In fact, the sandbox on Parrot is brand-new. I think the Linux failure (TGE) occurred at 26896. which one is linux and which is darwin? aha I fixed the build problem in r26918... you probably need to svn up The Darwin failure occurred sometime after r26892: my last successful build attempt on Darwin. pmichaud: At 26920, 'make' completed on Linux. It will take me a while to re-test Darwin. kid51: okay, good. So we should be able to re-close 52726, yes? (since the problem you observed was unrelated to the one that originated the ticket) oh, sorry, the other one (52680) got them backwards :-) % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net % particl1 has joined #parrot % Eevee has left Eevee!~eevee@c-71-231-40-190.hsd1.or.comcast.net kid51: Make succeeded on my laptop At least svn does I'm currently on r26919 % particle has left particle!~particle@c-24-19-3-148.hsd1.mn.comcast.net All tests succeeded on Linux at 26920 So far I've only seen the usual crashes pmichaud: Can you post in http://rt.perl.org/rt3/Ticket/Display.html?id=52680 what action you just took -- and then re-close it? tetragon: What do you mean: the "usual crashes"? How are you running 'make' such that you see crashes? There are seven tests that usually end up with a segfault (One of the seven occasionally doesn't crash) % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net And as for how I am running make, I use it in the usual manner But what tells you that they segfault? The crash reporter And what is that? well, that is what he is using :) And then manual confirmation with parrot purl he is a she ...but he is Never heard of the guy.... OS X has a crash reporting daemon that grabs stack traces What is it called? Run from GUI or CL? It's run by default (Not that I would know what to do with a stack trace ...) Things that crash with my UID get a GUI window about it, things that don't are merely logged BTW 'make' succeeded on Darwin for me make succeeds for me if I apply my config patch It's just in the tests it's todo tests that fail with a segfault. neh? Some kid51: your build failure was fixed by pmichaud, wasn't it? * Coke catches up and sees this conversation happened. t/dynoplibs/myops.t test 3 is a non-todo test that both succeeds and crashes ah. presumably printing all the output it needs before doing so. * Coke needs to reboot % Coke has left Coke!~coke@cpe-72-228-52-192.nycap.res.rr.com tetragon: t/dynpmc/gdbmhash.t is still hanging for me, preventing me from completing make test kid51: That test passes without hanging for me kid51: I can only test on 10.5 (ppc) right now % particle has joined #parrot % particl1 has left particl1!~particle@c-24-19-3-148.hsd1.wa.comcast.net kid51: (close 52680) sure thing, will do % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % jenny20 has joined #parrot % wknight8111 has joined #parrot % jenny20 has left jenny20!~jenny20@d033.dhcp212-198-248.noos.fr * kid51 needs to reboot % kid51 has left kid51!~jkeen@pool-70-107-6-81.ny325.east.verizon.net r26921 | pmichaud++ | trunk: : [pct]: : * Add symbol_defaults method to PAST::Block, to simply setting : default 'scope' attribute for PAST::Var nodes. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26921 % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % Theory has joined #parrot % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.or.comcast.net % afbach has joined #parrot r26922 | pmichaud++ | trunk: : * I think r26670 was a little over-eager in adding an 'elems' method : to ResizablePMCArray (along with shift/push/pop/unshift), as : 'elems' is fairly Perl 6 specific. So, I'm removing that : method. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26922 % konobi has joined #parrot r26923 | pmichaud++ | trunk: : * Forgot to commit the test change as well. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26923 r26924 | pmichaud++ | trunk: : * Eliminate trailing space in source. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26924 r26925 | rgrjr++ | trunk: : * examples/pir/hanoi.pir: : + Improve tower representation, add symbolic names, use lexical : scoping more fully, update doc. This now serves as an example of : stack ops, and is the only (so far) example of lexical scoping. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26925 r26926 | rgrjr++ | trunk: : + Oops; forgot to check for trailing whitespace. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26926 whats available to do for novices? build it, play around, write a simple perl6 program perhaps well... i terms of contributing i suppose konobi: tests, documentation (checking,writing,etc.), coding (what languages do you know?) perl, c, c++, plenty inbetween you could check the rt queue and see what piques your interest what platform are you on? OSX well, one thing you could do is help to make the Parrot sources c++-compilable there are several places where g++ barfs on it, at present. could have a quick jookie... git++ 4 minutes to clone all of parrot :) git++ indeed to attempt a build with g++: perl Configure.pl --cc=g++ --link=g++ % Theory has joined #parrot % tetragon has left tetragon!~seneca@CPE0040d001f62f-CM000a736592a8.cpe.net.cable.rogers.com % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.or.comcast.net meh... parrot's currently using a bunch of deprecated dynamic loader functions on OSX, so that seems to be a reasonable stumbling block % afbach has left afbach!~afbach@h66-222-50-127.mdsnwi.broadband.dynamic.tds.net % Psyche^ has joined #parrot % Patterner has left Patterner!~Psyche@e177229106.adsl.alicedsl.de % Psyche^ is now known as Patterner % Psyche^ has joined #parrot % Patterner has left Patterner!~Psyche@e177238172.adsl.alicedsl.de % Psyche^ is now known as Patterner % iblechbot has joined #parrot % UltraDM has joined #parrot % uniejo has joined #parrot % iblechbot has left iblechbot!~iblechbot@ppp-62-216-201-85.dynamic.mnet-online.de