% davidfetter has left davidfetter!~davidfett@start.fetter.org % uniejo has joined #parrot % marmic has left marmic!~chatzilla@89-253-66-101.customers.ownit.se % kj has joined #parrot % marmic has joined #parrot % jrt4 has left jrt4!~bojangles@c-24-18-106-126.hsd1.mn.comcast.net % jrt4 has joined #parrot r26531 | fperrad++ | trunk: : [pct] : update doc r26532 | fperrad++ | trunk: : [Lua] : minor refactor diff: http://parrotvm.org/svn/parrot/revision/?rev=26532 % iblechbot has joined #parrot % contingencyplan has left contingencyplan!~contingen@76.186.27.146 % ruoso has joined #parrot % wknight8111 has joined #parrot % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % IllvilJa has joined #parrot % skids has left skids!~bri@c-71-233-204-100.hsd1.ma.comcast.net % rdice has joined #parrot % rdice has left rdice!~richarddi@CPE001217e365c7-CM00159a01d44c.cpe.net.cable.rogers.com % marmic has left marmic!~chatzilla@89-253-66-101.customers.ownit.se % marmic has joined #parrot Coke: ah, I thought you were, sorry :) I'll mail soon then (at school now) % iblechbot has left iblechbot!~iblechbot@ppp-62-216-201-147.dynamic.mnet-online.de % skids has joined #parrot % particl1 has joined #parrot % gryphon has joined #parrot % jq has left jq!~jquelin@merlin.mongueurs.net % jq has joined #parrot % wknight8111 has joined #parrot % iblechbot has joined #parrot % rdice has joined #parrot % Andy has joined #parrot % lathos has left lathos!~simon@morison.arjam.net % davidfetter has joined #parrot % avar has left avar!avar@u.nix.is % avar has joined #parrot % lathos has joined #parrot % uniejo has left uniejo!~uniejo@langebro.adapt.dk lathos: hio. Any feedback on the feedback, or is that in allison's court now? Allison is editing it all up. ok. r26533 | kjs++ | trunk: : [pct] Fix some NQP in the comments, to make it actually work, if needed. So, no changes are made to executable code, only to the NQP in the comments that is implemented in PIR. This as a preparation of a possible bootstrap of NQP. diff: http://parrotvm.org/svn/parrot/revision/?rev=26533 kjs++ oh hi patrick. Congrats on your marriage! thanks! we're very happy :-) % sjansen has joined #parrot that's good to hear :-) and good to see you back on #parrot :-) I tried to bootstrap NQP this afternoon. I got it working mostly, but I couldn't use this version to compile my tutorial language. glad to be back there are some parts that must be fixed before it can work. http://groups.google.com/group/perl.cpan.testers/msg/3173bc9642dfc981?hl=en&&q=parrot+-site%3Aperl.org+-site%3Aparrotcode.org+-site%3Acpan.org+-perl.perl6+-perl.cvs :: fail report on parrot 0.6.0 Coke's url is at http://xrl.us/bh8k6 kj: care to share your attempts in the form of a branch? just make it a subdir of compilers/nqp as opposed to a branch I'm not in a great hurry to have self-hosted nqp as the primary implementation, but it would be very useful to have it in compilers/nqp for testing and comparison lathos: can you remove the very old version of parrot you have on CPAN? (0.0.4) (I see cpan testers are still dutifully testing it.) pmichaud: I made languages/nqp; that's easier to set up hmmm that might confuse people but maybe a subdir of nqp is easier yea s/easier/more clear/ they should of course continue to use the same grammar -- only the actions implementation is different it's pretty much the same; except for some operators: I implemented them as PIR subs instead of the inline stuff that won't work though the operators need to be inline because NQP assumes there's no runtime ah ok well, I had trouble getting it to work i.e., when rakudo uses NQP to compile its actions methods, those methods can't assume that NQP runtime operators are available mm right I see ok, so that should be fixed then. anyway, I think a 'selfhost' version of NQP in compilers/nqp would be useful it could use the same test suite How should I add it? for now, a 'selfhost' subdir of compilers/nqp would seem to be okay or even an actions.nqp file instead of actions.pir and within that, a directory structure as generated by tools/dev/mk_language_shell? or just all files in that selfhost dir no, I wouldn't recreate the directory structure actions.pl right? again, the only difference between a self-hosted nqp and the current version of NQP is the source of the actions so I think we'd only need a separate actions file, and perhaps a different nqp.pir or make it an option to pass to nqp.pir (that included the compiled form of actions instead of the pir version that is included now) (option to pass) that sounds tricky because we'd have to know which set of action methods to load could have two action objects, I suspect one that uses the PIR-generated action methods, one that has the nqp-generated ones and then the option to nqp simply says which object to use in the HLLCompiler i see but for now I'd do it as two separate executables where the only difference is the source of the actions, and possibly a separate nqp.pir I have to run errands -- bbl parrotsketch in 85, yes? oh, wait. 18:30 UTC, yes? so that would be 145 okay, that gives me plenty of time bbiab % Theory has joined #parrot i'll be missing parrotsketch today report posted. wknight8111: ping hello que tal, wknight8111. que tal, purl bonjour, wknight8111. hi! what do you think we should do about RT #51988? ...let me look it up its the _dup thing I'm not really sure what the motivation is... the patch breaks on linux, but does it fix warnings on win32? if so, we might want to do something conditional there Win32 warns that "dup" is deprecated and we should use "_dup" instead it's a small matter, and just because it's deprecated doesnt mean it's an error, yet but it probably will be, someday fair enough. what do you think about putting the #define in an #ifdef WIN32, or the like? r26534 | kjs++ | trunk: : [nqp] add initial actions file for NQP, written in NQP. Update MANIFEST. diff: http://parrotvm.org/svn/parrot/revision/?rev=26534 #define Parrot_dup we could make a simple macro, #ifdef _WSV_CRT #define DUPLICATE _dup .... right, something like that * Infinoid will test with mingw, to see whether the warning is msvc-specific or not i should have done it with mingw too, before I submitted. I thought the patch was going to be mostly harmless don't worry about that. it got us thinking about it, which is a very good thing :) so far, it sounds like... Parrot_dup is defined to dup() on most platforms, and _dup() on MSVC that will make everyone happy. right? makes me happy smoke testing will bear that out sounds good, though sounds like a good start, then "Infinoid" at 75.5.247.241 pasted "rt51988-try1.diff" (49 lines) at http://nopaste.snit.ch/12570 wknight8111: any chance you can try that on msvc and see if it warns? (that define probably isn't in the right place, but first things first) wknight8111: hi, you asked for my squaak implementation, no? r26535 | kjs++ | trunk: : [nqp] update the TODO file to add some notes about the bootstrap version, so I don't forget these. diff: http://parrotvm.org/svn/parrot/revision/?rev=26535 kj, you sent it to me. thanks Sure, i'll try building now % jrt4 has left jrt4!~bojangles@c-24-18-106-126.hsd1.mn.comcast.net % chromatic has joined #parrot % kid51 has joined #parrot /usr/bin/ld: crt1.o: No such file: No such file or directory collect2: ld returned 1 exit status what's that mean i'm missing? either gcc or glibc :) i have gcc what's the debian pkg name for glibc? probably libc6-dev is what you're after do other C programs compile successfully? debian has a nice "build-essential" package that covers all that stuff sudo apt-get install build-essential Infinoid++ darn, it didn't work. I must have messed up the macro. What should I test for, _MSV_CRT? Parrot Sketch is about 1 hour away, right? Damn, I forgot that it's localtime changed when we went to DST. jonathan: believe so, yes. so how does one get ops in a discussion where no one has ops? 1830 GMT correct? Yes. Coke: I think you have to know one of the #perl ops. Crap. YA week of "didn't really do anything." % particl1 has left particl1!~JGay@32.138.59.170 wknight8111: no idea. _MSC_VER seems to be used elsewhere Infinoid, that's what I was thinking about. That's probably it ...building again... chromatic: didn't you run some of the SDL stuff recently? I had it working with PDD 15. % kj has left kj!~IceChat7@ip565fd420.direct-adsl.nl http://rt.perl.org/rt3//Ticket/Display.html?id=48727 :: remove classoffset opcode :: except that SDL is using it. Which file? well, Which file is that error in though I think that classoffset already throws an exception, so the examples *can't* work. jonathan, thx for reviewing my patch. I am studying STD.pm to steer in the right direction % kid51 has left kid51!~jkeen@toronto-hs-216-138-231-37.s-ip.magma.ca in examples/sdl/{minesweeper,tetris} Those should be easy to fix. I'll work on them. danke. (one more deprecation gone.) % kj has joined #parrot cognominal: Welcome. :-) I'm going to try and sort out some of the remaining colonpair bits. :-) also, :a is :a(0) not :a(Bool::True) I don't know if you have corrected % barney has joined #parrot wknight8111: *sigh*. my winxp installation is broken, not going to be able to test mingw for a while, sorry I am trying to understand namespaces too cuz HLLCompiler currently compiles in the global namespace cognominal: :a is equivalent to :a(1), you mean? yes Yup, just saw the bit of S02 that says that, you're completely right. you did it equivalent to :a(True) and I followed suit which was wrong easy mistake [18:45:32] t/postconfigure/03-revision....................1/8 has been sitting there for some time on feather (svn checkout) (local mods) ... ah session died. whoops) whoa! no, not dead, ^C started it going again. cognominal: Fixing it now. But got some other patches locally related to colonpairs that are halfway through too. :_) Yes, that fix killed the warning on cl.exe i actually don't have mingw here, so I can't test it now jonathan, will you be able to make it to Albi may 30 and 31? http://conferences.mongueurs.net/fpw2008/ or anyone here who wants to talk anything related to parrot cognominal: 'fraid not - I've already had vacation planned for those dates since before FPW was announced. Shame, because FPW is a good time. wknight8111: thanks, I'll sort this out and check it in, and test mingw later on when I have the chance say (:a).perl :a say (:!a).perl :!a my $a = 'foo'; say (:$a).perl I don't think this will break mingw, I'm mainly just curious if the warning shows up there too. :a Woo. :-) cool The .perl method is thanks to you. Plus a couple of little tweaks. :-) and :a(2) ? Not implemented yet. I don't think parens are necessary in (:a).perl r26536 | chromatic++ | trunk: : [examples] Rewrote away classoffset indexed attribute access in Mines::Field. r26537 | coke++ | trunk: : [deprecated] : Remove deprecated vtable entry "subtype". No tests fail. : Resolves RT#48569 r26538 | jonathan++ | trunk: : [rakudo] Add .perl method for Pair class. Patch courtesy of cognominal++, with some tweaks from moi. diff: http://parrotvm.org/svn/parrot/revision/?rev=26538 cognominal: Yep, it works without too. in fact, I did not realize that test were working in parrot , I bundled them but commented them out in my patch btw it seems that in perl6 the left side of a => must be a bareword if I trust STD.pm jonathan, I don't know if that affect your last patch r26539 | jonathan++ | trunk: : [rakudo] Add missing desigilname token to the grammar. diff: http://parrotvm.org/svn/parrot/revision/?rev=26539 jonathan, .return is supported as long it is not buried in a block? cognominal: My reading of STD.pm is the same, yes, it's an there. .return in what context? it would not work in inner block in code generated by rakudo? Not if you actually want to return from the outer block, no. We haven't got support for return like that yet. the code generated should trhow and catch an appropriate exception? yes. jonathan, in the .perl, it seems that the fatarrow is not necessarily a naked string? I mean the string in the left of => Yeah. That could do with a fix. Guess in that case you have to instantiate a Pair object. r26540 | jonathan++ | trunk: : [rakudo] Fix :a and :!a to meet S02. diff: http://parrotvm.org/svn/parrot/revision/?rev=26540 Oh, fatarrow is already implemented. * jonathan may have done it, but he sure doesn't remember doing it (whoeverdidit)++ you did it I think oops, self-karma. :-) % marmic has left marmic!~chatzilla@89-253-66-101.customers.ownit.se I think that when heredoc will be implemented, rakudo will be able to compile itself w.r.t. the returning of subroutines and exceptions: It seems to me that it doesn't work with the current infrastructure, does it? r26541 | jonathan++ | trunk: : [rakudo] Implement simple varname case for colonpairs, e.g. :$foo. diff: http://parrotvm.org/svn/parrot/revision/?rev=26541 kj: I believe not, no. I mean the PCC and flags like :flat and :slurpy. Whenver you "throw" something, it is converted into an Exception object I forgot that so that should be adjusted % cotto_work has left cotto_work!~cotto@tide503.microsoft.com why is Parrot_exit defined in both embed.h and exit.h ? cognominal: (heredoc) -- do we need full heredocs, or just the limited form that NQP is currently using? % cotto_work has joined #parrot that depends if you want to aim toward perl6 or toward self-bootstrapping % kid51 has joined #parrot Coke, silly duplication I suspect. well, I've already commented that self-bootstrapping isn't my highest priority at the moment :-) r26542 | chromatic++ | trunk: : [examples] Removed deprecated classoffset opcode from Tetris example. diff: http://parrotvm.org/svn/parrot/revision/?rev=26542 chromatic: so I'm guessing remove it from embed.h and see if anything breaks? won't embedders want to exit cleanly too? % purl has left purl!purl@sentient.life % purl has joined #parrot I'm getting build warnings from it being re-declared, so something is including both embed.h and exit.h is the problem with the thing doing the including? embed.h seems right to me. #ps in one pmichaud, can you see a better way to patch the problem described in http://rt.perl.org/rt3/Public/Bug/Display.html?id=49758 r26543 | rblasch++ | trunk: : Updated PLATFORMS for GNU/OpenSolaris (NexentaOS). diff: http://parrotvm.org/svn/parrot/revision/?rev=26543 cognominal: I think the patch avoids the problem but doesn't actually fix the underlying problem the underlying problem probably has something to do with the way that subs are being generated or managed otoh, Parrot really should never produce a "Bus error" I've been slowly removing buses from Parrot over the past year. we're going to a complete mass transit system. :) I didn't see in the ticket itself, but does the problem persist if parrot is invoked with -G ? better than a complete mess never tried -G * Coke wolf whistles at pmichaud's honeymoon comment. I think as I said in the thread of the bug report, that the rakudo shell should not wraps a block as part of the eval but that a separate issue even if related If someone can reproduce the problem in simple PIR, I'll fix the seggie. * Coke wolf whistles at pmichaud's pictures comment. right now PCT only knows how to create subs the problem is that the interpreter should not do a bus error on a missing outer block what I did is to avoid generating the reference to the missing outer block well, PCT should certainly not generate an :outer flag on a block that doesn't have an outer so that's very easy to reproduce with simple pir Throw a test case my way and that'll be one fewer segfault. pmichaud, I agree but the interpetor should to better than a bus error correct er, correct if you mean that Parrot should do better than a bus error what is the way to die in pmc code? Throw an exception object. Andy: ping sir hi! do you know what the difference between PARROT_HAS_SNPRINTF and PARROT_HAS_C99_SNPRINTF is? no. For a piece of candy would you figure it out? how about a Scooby Snack? Rank roo, pmichaud! wknight8111 reported RT #51980 to consolidate the two, but I'm not sure whether we want to. (His win32 platform defines the first but not the second; my linux platform defines both.) never discount the possibility that i'm stupid and sleep-deprived wknight8111: it would be nice to know what the difference is and whether it's important, your solution might be spot-on :) % Psyche^ has joined #parrot ok. since noone admits to having anything to do with snprintf, its fair game to rip it apart and see who complains. :) % Patterner has left Patterner!~Psyche@d121052.adsl.hansenet.de % Psyche^ is now known as Patterner That's why we have the tests. And may I add, you who are about to die, the rest of us salute you. * Infinoid cracks up What, varargs, memory management, and IO all smooshed together don't worry you? if snprintf does any IO, I've really broken it I'm thinking of sfnprintf perhaps. kid51: have you tried re-installing the developer tools from apple? (on the chance that the custom gcc 4 overwrote some system file somewhere?) r26544 | jonathan++ | trunk: : [rakudo] Implement pairs of the form :a(...) (postcircumfix:()). diff: http://parrotvm.org/svn/parrot/revision/?rev=26544 Coke: If I get time I will try that. I also wonder if that particular config step is ignoring your explicit settings you've passed to configure. % mire has joined #parrot If it's the shell script I just looked at, the MACOS_INSTALLATION_TARGET environment variable isn't getting set correctly. It persists through the Configuration process, but it's not present for the make process (and the linking process). Coke: I'm pretty sure it's not. I can track those with Parrot::Configure::Trace chromatic: The problem is in the configuration process. I can build and test successfully (though perhaps the resulting parrot executable is different). what does the warning mean "Null PMC acces in invoke()"? You tried to invoke something that's not a Sub. that it tries to find a routine and fails chromatic: Besides: What allison had me set was this: [trad] 516 $ echo $MACOSX_DEPLOYMENT_TARGET 10.3 In your .bashrc or .tcshrc or .profile? .bashrc ... so you get a null PMC on subsequent invoking okay thanks. now i need to debug and figure out what i'm doing wrong anybody know when yapc::na's going to announce which talks made it? barney: Does my patch in http://rt.perl.org/rt3/Ticket/Display.html?id=51860 work for you re manifest tests? davidfetter: IIRC Josh extended deadline to Mar 31, so decisions should be made soon after. thanks :) So far, only kid51 has updated that wiki page (so says my RSS feed) * davidfetter can most easily make travel plans when he knows he'll be speaking (regarding talks) % contingencyplan has joined #parrot kid51: Yes, I've closed that ticket. Thanks. Yes, and I would like some co-leaders to bring off that session. barney: Thanks. kid51: depending on when that session is, I will of course be there. % contingencyplan has left contingencyplan!~contingen@cpe-76-186-27-146.tx.res.rr.com * PerlJam makes a(nother) mental note to read kjs' PCT tutorial PerlJam: You're editor for the perl review right? not I that's bdf oh sorry I thought that was you ;-) kj: Are there no back links to the other episodes (I just glanced at #9) ? no. that's a good point. not sure how to do that ... something with http....#episode8 I think, right? beats me :) oh. I'm not really into html % peeps[work] has joined #parrot % contingencyplan has joined #parrot kj, when someone's looking at individual episodes, there are links to the next/prev episodes at the bottom normally imcc trips when compiling a sub with a fake outer: compilers/imcc/pbc.c:969: IMCC_fatal(interp, 1, "Undefined :outer sub '%s'.\n", but apparently that's different within an eval % barney has left barney!~bernhard@dslb-084-058-189-173.pools.arcor-ip.net cotto_work: you mean newer and older post? eys s/ey/ye/ that works kinda, but it's not ideal i mean, it's not clear what those posts are but it's not a big deal I think imcc gets called differently from within parrot than as parrot for example, try compiling a string using the object that comes back from $P0 = compreg 'PIR' I had a post (perhaps a ticket) that illustrated this -- just a sec % marmic has joined #parrot * Coke needs a tagline description of parrotblog.org It's a blog. For parrots. ... right. committing... https://rt.perl.org/rt3/Ticket/Display.html?id=47956 shows an example where invoking imcc as "parrot" and using the internal compreg "PIR" compiler produces different results Coke: apropos parrotblog.org. Couple of weeks ago, I posted on list re difference between that site and planetparrot. Didn't get any replies. pmichaud: interesting difference between planetparrot and parrotblog: planetparrot is an aggregation of feeds/blogs that are related to parrot (could come from multiple sources) parrotblog is a place where people can blog about parrot that isn't use.perl (i.e., some parrot news might not be appropriate for a perl-only forum, or perhaps should have a larger reach) * jonathan really should get around to writing a Rakudo-related blog post sometime soon. kid51: I have that request starred to entice me to reply once my waiting for allison times out. =-) planet parrot is an aggregate of any parrot-related blogs. parrotblog is, er, for, um, parrot related bloggin? * Coke seems pmichaud has already opined on this. % ruoso has left ruoso!~ruoso@195.23.92.2 It would be good to get that distinction added to the Resources page at parrotcode.org A blog dedicated to Parrot news, tutorials, and more vs. An aggregator of select Parrot-related blogs that ok? NO, it isn't for the second "An aggregator of blogs from Parrot-related contributors" t/postconfigure/03-revision seems to be hanging pretty regularly now on feather. since planetparrot doesn't seem to distinguish non-parrot posts from parrot posts or better "An aggregator of blogs from selected Parrot contributors" +1 1 +1 1 and 04-revision. any other feedback before i commit this version? pmichaud's version. r26545 | coke++ | trunk: : [icc] : RT #52028 ([PATCH] Do not split macro invocations that use CONST_STRING into multiple lines) : Matt Kraai++ diff: http://parrotvm.org/svn/parrot/revision/?rev=26545 % kid51 has left kid51!~jkeen@toronto-hs-216-138-231-37.s-ip.magma.ca pmichaud: Got a moment to give me hints on a parsing bug? sure This works: my $x = <-> $a { say $a; }; $x(42); 42 But this doesn't: my $x = -> $a { say $a; }; $x(42); Statement not terminated properly at line 1, near "= -> $a { " I am pretty sure, it's trying to parse that as prefix:- or something. But can't confirm that in any way (not sure how). it's undoubtedly seeing that as prefix:- isn't -> a prefix op too? no, it's part of the rule the best workaround I can come up with for now would be to create a prefix:-> that "fails" Issue with longest token rule and bottom-up parsing is my guess? yes I don't understand PGE anything close to enough to know where to start fixing that. well, PGE is likely going to need some massive redesign for longest token rule, and for that I need to look at TimToady's work on his parser I'm not blocking on it as such, so if you can see it being fixed on the scale of weeks then it's fair enough. Ah, OK. I can see us being able to create a prefix:-> workaround fairly quickly Maybe a workaround is the way to go. Ugh. So we now have stuff on the web in the wiki, combust, the repository, and the blog. I don't have a good time estimate for longest token rule. Sure, it looks to me like a *serious* amount of work. well, fortunately TimToady has one working (at least to some degree) already, so if I have a template/design to follow I'm hoping it won't be too onerous Here's hoping. :-) if I had to come up with it myself, I'd be a lot more pessimistic about it What are you thinking of working on next Rakudo wise, beyond catching up on what @other have been doing? refactoring classes and protoobjects, with an eye towards .HLL other items would be regex/rule/token, and getting 'return' to work (since 'return' is needed for PCT completion) OK, cool. They are things I'm less comfortable working on, so I'm happy to not have to worry about them. :-) anything you'd particularly like to see me work on ? ;-) I do take requests :-) Actually, the above list is pretty much what I would have asked for. i think the control stuff like break/continue/return is interesting, but needs better parrot support it would be on My Wishlist ;-) I think parrot is pretty close, it's just PCT that needs to support it simply being able to throw exceptions is all that I need parrot to do (throw exceptions with a payload, that is) I take requests too, if there's anything in Rakudo you want me to look at. ok. I don't really see how it would work frankly, as you have to wrap stuff in exceptions not very efficient anyway however, it would be very nice if Parrot had something equivalent to Perl's "Capture" object that can package up positional and named arguments into a single PMC My plans for next stuff is to get fatarrow and colonpair passing named parameters. Hmm, a capture PMC. it has been said that a capture pmc is quite useful, similar to a DOM tree there's already a Capture pmc in Parrot, but it's broken. It needs to be re-done with the new pdd17 model in mind and the Capture object that PGE/PCT uses is written entirely in PIR, so it's a bit slow Does the one that PAG and PCT use have the correct semantics? control-flow-exceptions: we should standardize on how we do this for HLL interop. s/PAG/PGE/ Coke: that's what I'm intending for PCT, yes jonathan: there are a few minor changes to be made, but essentially the semantics are correct, yes. right now tcl is just throwing exceptions and using one of the slots to store the control-flow type. (corresponding to the values at: http://www.tcl.tk/man/tcl8.5/TclCmd/return.htm) -> it'd be nice if under the hood, so in PIR, return statements are still return statements, and not exceptions. Even if they're using the exception mechanism pmichaud: Where can I find the PIR version? the PIR version is gone i think jonathan: runtime/parrot/library/Parrot/Capture_PIR.pir kj: that's my intent "cognominal" at 82.67.232.89 pasted "unsucessful fix" (21 lines) at http://nopaste.snit.ch/12571 kj: there will likely be a 'return' op node in PCT right. but what I meant is, that there's also PIR syntax hiding the exception stuff I try that but it still fails :( pmichaud: Thanks, will keep that in mind as something to work on soon. oh, I don't think the PIR version of 'return' needs to be exception-based we already have 'throw' for that :-) on phone Where's the Capture PMC? the Capture PMC is probably quite useful, similar to a DOM tree src/pmc/capture.pmc, I think Hm, I updated it if it's there. oh, perhaps I need to re-test it then It may still be broken, but it should at least compile correctly. well, it may work, but I was under the impression that the new PMC implementation would allow us to be more efficient in implementing stuff like this (i.e., a capture needs a separate Hash and Array component) previously it was somewhat complex because there was really only one data slot Yeah, that's doable. % cotto_work has left cotto_work!~cotto@tide535.microsoft.com % skids has left skids!bri@charon.clarku.edu % Limbic_Region has joined #parrot Wheee.. class Foo { has $.a; } my $x = Foo.new(a => 42); say $x.a; 42 jonathan++ seems like rakudo is nearing completion :-P I have no clue how much more must be implemented... You haven't seen the Perl 6 spec, have you? :-P :) I scrolled through it and thought: too much for me :-) % cotto_work has joined #parrot then again, pure size doesn't say anything jonathan, what is the perl6 incantation to ask to use registers for lexical variables? cuz lexpads are costly there must be a way otherwise why native types kj: There's still a *lot* to do in Rakudo. cognominal: I doubt any such mechanism is specced. cognominal: my int $x; # should, one day, be a Parrot int register The lowercase types are the native ones. jonathan: yeah i didn't expect otherwise; but it's very difficult to get any clue about which parts. At least for outsiders like myself However, that's not implemented at the moment. I know that :) oh. /me was thinking of registers as in the C sense. Silly me. but some day someone will want to do fibonacci with radkudo % rdice has left rdice!~richard_d@CPE0014bfafbbd5-CM0011e6ecf48a.cpe.net.cable.rogers.com r26546 | jonathan++ | trunk: : [rakudo] Treat pairs in parameter lists as named arguments. r26547 | jonathan++ | trunk: : [rakudo] Fix new method for Object. diff: http://parrotvm.org/svn/parrot/revision/?rev=26547 kj: At the moment, it'd probably be easier to point out the bits that are implemented, than the bits that aren't. ;-) But a version of the spec that had the bits that Rakudo implements highlighted green or something, or that it partially implements that are buggy in yello, would be cool to have. % jrt4 has joined #parrot jonathan: yeah, that'd be cool. When selecting grammar bits to implement, do you look at the spec? I mean, how do you decide what to do jonathan: I've thought it would be cool if you could somehow do that with STD.pm vs. grammar.pm (but that's just parsed, not implemented) I'm going for a breadth-first approach at the moment, which basically means I'm trying to get little bits of all sorts implemented. Part of it is certainly driven, by, which bits of the spec do I look at and have a good idea of how to implement. I'm also trying to get a lot of the common cases covered, though. kj: When ever I attempt to hack on rakudo, I look at STD.pm and I try to make grammer.pm look more like STD.pm :) mm I don't even know how to get at the STD.pm So when I give Perl 6 talks, I can say "and you can run this in Rakudo today". :-) kj: invariably though, I run into problems hacking the corresponding actions.pm part as I don't do it enough for it to be comfortable. kj: it's in the pugs repo kj: http://svn.pugscode.org/pugs/src/perl6/STD.pm r26548 | infinoid++ | trunk: : [io] Apply patch similar in spirit to RT #51988 : Hopefully this will resolve warnings on win32/msvc. I'm pretty sure it won't : affect any other platform. diff: http://parrotvm.org/svn/parrot/revision/?rev=26548 is it me, or is this a very complex spec? :-P It's not just you. kj: This is "perl 6", not "python 3000" :-D ha ha ;-) You mean Python 2.7? whatever they're calling it these days i think it's "3" these days... it seems to me that the spec contains executable code to parse this... Am i right in that? kj: read the comments Happily, someone++ already did named params. So this works now too... sub foo (:$bar) { say $bar; } foo(bar => 42); 42 And foo(:bar(42)) of course. :bar(42) is same as bar=>42? Yes. just as in PIR, kinda % mire has left mire!~Frodo@139-174-222-85.adsl.verat.net a Perl 6 specification tutorial wouldn't be useless ;-) (hint, hint) kj: What would you want it to cover? jonathan : default_statement should be $=[default| '*'] jonathan: well I guess it's just a bit confusing how this stuff works. It's not just anohter grammar specification, like any other language. This is way more complex. and I don't understand why all this complexity... why should default_statement include '*' ? * cognominal searches the relevant synopsis pmichaud: I don't think it should. But when * is equivalent to default But that waits until we implement Worreva. jonathan: yes, in which case it's a when_statement :-) Right. And I don't think it's a special case either. Just that the Whatever type has a very simple ACCEPTS method. :-) correct token whatever { '*' {*} } Hmm, should that just instantiate the Whatever class? seems reasonable enough for now. Either that or return the Whatever protoobject, or a singleton instance of Whatever oops it reads default { ... } is exactly equivalent to when * {...} The protoobject makes sense. right... but 'when * { ... }' is an example of a when_statement, not a default statement yes, I was wrong well, I don't know what sort of definedness we need for '*' Well, I'll stub it in enough to make when * work... :-) sounds great :-) I can't remember every synopsis :( neither can I, which is why I had to look it up also :) cognominal: If you could, I'd be terrified of you. I have seen you arenot omniscient either :) % mire has joined #parrot Oh, hmm. While whatever is defined in STD.pm, it's not mentioned nearly anywhere else in the grammar. % skids has joined #parrot * means many different things in many place, that's the ultimate joker Well, I'm not implementing all of it's meanings before I go to bed. :-P I think the concept of 'whatever' is often more context-sensitive than syntax That's my impression from S02. I remember seeing Whatever for the first time at some YAPC::EU in a Larry keynote and thinking "wow, that's nice...but I wouldn't want to be implementing that". Ah well... jonathan: http://www.perlfoundation.org/perl6/index.cgi?witch_star variables with a + twigil are dynamically scoped? I see them in many places in STD.pm? they're contextual variables which means we look up the call stack to find the scope in which it's defined ok, that's what I call dynamical scope % spez has joined #parrot some lisp did that too so we do both lexical and dynamic the variable in the outer caller scope also has to be defined with the 'context' trait yes, we do both lexical and dynamic I haven't thought much about how to implement those just yet. :-) oh, it's easy -- PCT is going to implement dynamic scope essentially we just use getinterp and traverse the caller stack looking for a matching lexical Oh, wow. It's easy. :-) skids: Thanks. :-) (we'll have to do some trickery to handle the 'context' trait and skip over entries that aren't 'context'... but we can work that out) Hmm, getting PCT to do that neatly could be fun. As in, in a language-independent way. I'm thinking it's just a PAST::Var of :scope('context') Or we could just replace its 'dynamic' with our own by fiddling the namespace. :-) Or that. Oh, fiddling the namespace breaks other languages we want to compile. Forget that. and PCT will convert that to call a subroutine that handles the callstack note that it's not really namespace related or, for that matter, I could just leave it up to the HLL to define its own method for grabbing a context var I was referring to putting a new Sub into the namespace entry for 'dynamic' in the PCT namespace. ;-) But it's wrong, wrong wrong. ohhhh no, the way to do that is to subclass PAST::Var (or whatever) and add a new method okay, pmichaud. :-) Oh yes, I know how to do OOP. * jonathan shouldn't try and think about anything much when he's this tired afk for a while say *.WHAT; Whatever woo % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net in PIR, i would use the 'exit' keyword to exit the program, right? because i'm calling exit, and nothing happens wknight8111: Try end instead like "end 0"? Just end ok % peeps[work] has left peeps[work]!~peepsalot@bwext.kpimdp.com wknight8111: it's "exit 1" and "end" that works like a charm. Thanks so exit takes an integer arg i was doing exit, nothing happened exit 1 didnt' work? no mmm. i don't remember whether i used that.. prob not then it doesnt error either, it just ignores the command % iblechbot has left iblechbot!~iblechbot@ppp-62-216-198-176.dynamic.mnet-online.de There's an end op and an exit I op i'll stick with "end", but the exit thing should probably be fixed Okay, I can't find the exit op, just its documentation. there's a test for it t/pmc/exception.t i found the exit command in the perl6 builtins/control.pir, so that might be worth testing * jonathan remembered to update MANIFEST, for once. looks like it's in core.ops Ah, there it is. Somehow I couldn't find it. wknight8111: could you nopaste the code you were using to test exit? or else file a ticket for it? it's rediculously simple: .sub 'exit' exit 1 .end so how do you know it's not working? because when I call that function, it doesnt exit when i switch the "exit 1" to "end", it exits oh Does exit just set the exit code? And end actually ends the program? according to core.ops, it throws an exception Ah. inline op exit(in INT) { do_exception(interp, EXCEPT_exit, $1); } so if there's something catching exceptions, then it would be caught/handled in rakudo's case, that means that the interactive mode wouldn't "exit" (or in anything using PCT's interactive mode) r26549 | jonathan++ | trunk: : [rakudo] Add the Whatever class and * syntax for it, and give it an ACCEPTS method so when * { ... } always runs. diff: http://parrotvm.org/svn/parrot/revision/?rev=26549 okay, so that must be the problem then. I was testing it interactively % rdice has joined #parrot % sjansen has left sjansen!~sjansen@hq-nat2.gurulabs.com right. PCT's interactive mode catches exceptions so that a syntax error or floating point error doesn't exit Parrot but it's not smart enough yet to distinguish an "exit" exception from others (although I thought it was smart enough to do that...) is there a flag we can test to determine if we are running interactively? not really fair enough wknight8111 - implement -T I just double-checked -- HLLCompiler just catches all exceptions in interactive mode, but doesn't check the type of exception to decide if it should be rethrown er, -t hum, how STD.pm does hash composers? block { a => 3, b => 4 } is just a block OK, now Whatever's stubbed in, I'll get some sleep. :-) jonathan++ but, it is executed immediately night all g'night jonathan it's not executed immediately when used as an rvalue my %a = { a => 3, b => 4 } information about hash composers is in S04, starting with "Anywhere a term is expected, a block is taken ... " but it seems that it is a hash composer only if the first expression is pair or hash like correct. If the closure contains only a comma-separated list starting with a pair or hash, the closure is treated as a hash composer (or if the closure is empty) either way, it parses as a closure (which is what STD.pm is all about) immediatly meaning at affection time affectation! it's up to something outside of STD.pm to decide if the closure is a hash composer or a closure (in rakudo, this will be the action methods of noun or term, probably) hum what is the english word for affectation? assignment! well, assignment is different in scalar contexts than in array context % kj has left kj!~IceChat7@ip565fd420.direct-adsl.nl I suppose that actions.pm should look into the block content currently > my %a = { a => b }; gives Statement not terminated properly at line 1, near "=> b };\n" hum that the fat comma actions.pm will look into the block content when the block is being used as a term/noun, probably btw STD.pm says an ident at the left of a => but the example in S04 contain "a" => 1 it should allow ident or term. but fatcomma in std.pm might be handling only barewords on the lhs, leaving infix:=> to handle the other cases (I haven't looked) I think it can be legitimate to assign a block to a scalar ha, ok. I get it. this business of expressions handled outside the "main grammar trick me I just figured out how the assignment gets a different precedence according to the list or scalar context % kid51 has joined #parrot should follow jonathan's example and go to bed... bed is for the weak I wish some of the PCT error messages were a little more descriptive. This debugging is an uphill battle I am past the age when I feel I have to prove somehow my manhood. I agree, i'm headed to bed before too long myself :) * kid51 muses, "Let me see; where is my manhood? I think I left it around here somewhere." * Infinoid doesn't help kid51 with that urg. I'm getting the error "Lexical '0' not found" for every single statement. is it looking for a lexical variable of that name? most of the statements don't have any variables at all "5+4" -> "Lexical '0' not found" that's in raduko? no, in an octave port that I'm working on I am going to find some spare time this week and hack in some better error messages into PCT is --target=past implemented on the perl6 layer, or on the parrot layer? 'coz it sounds really useful here. i think i fixed that last error. I'm getting a new error now new = good heh :) it is either progress or congress, depending on whether you've moved on to the next one or introduced an earlier one :) right. either way i've narrowed it down (exit getting caught) see languages/tclsh/src/tclsh.pir line 181 for how to handle that. okay, thanks (Those macros are defined in .../src/macros.pir) Infinoid, it's in HLLCompiler. % slightlyoff has joined #parrot % spez has left #parrot is INTVAL_SIZE a good way to check if I'm on a 64-bit system (in C code)? cotto_home: looks good to me, it's defined to 8 on my x86-64 linux box thanks % petdance has joined #parrot % particl1 has joined #parrot % slightlyoff_ has joined #parrot % slightlyoff has left slightlyoff!~slightlyo@204.14.154.209 % grim_fandango has joined #parrot % petdance has left petdance!~Andy@64.81.227.163 % petdance has joined #parrot Anyone here have a comment as to whether or not languages should be adhere to parrot's "try not to use non-core/bundled" modules credo? Seems like they should be able to set more requirements (and have) than parrot itself. (RT #51916) my own priority would be to maximize code reuse and minimize developer work, therefore, anything on CPAN is fair game. But I am neither a core developer, nor a languages guy. I think they'll have to go into Bundle::Parrot ... which I actually know little about. % peepsalot has left peepsalot!~peeps@cpe-67-9-161-48.austin.res.rr.com Coke - get p5 on parrot working and then it is all fair game :-D % peepsalot has joined #parrot But who exactly is working on "p5 on parrot"? well, the ponie project is dead as a door nail AFAIK but nicholas still seems to make p5 core changes that seem to be in preparation for p5 on parrot mostly, I was speaking tongue in cheek (note the smiley) and on that note, I am out - TTFN % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net kid51: I have commit privs on Bundle::Parrot : it's just a Bundle. Bundle? hmmm... Bundle is just a directory. bundle is also a special kind of CPAN thingee that just says "install these other modules" okay, Coke. Someone with some C-fu could probably apply #46597 Then could you add Parse::Yapp to Bundle::Parrot? % particl2 has joined #parrot I could. I hesitate to add stuff that parrot itself doesn't require. I'm not refusing, just hesitating. =-) * Infinoid looks at #46597 Well, then do we need a Bundle::Parrot::Languages ? Iunno. I suspect I should just give up and add it to B:P; can you respond to the ticket to the list and ask for feedback? See if anyone other than I has any concerns? % particl1 has left particl1!~JGay@32.139.203.156 * Coke triages a bunch of the new tickets and adds [TAG]s % particl2 has left particl2!~JGay@32.136.102.218 % rdice has left rdice!~richarddi@CPE001217e365c7-CM00159a01d44c.cpe.net.cable.rogers.com % grim_fandango has left grim_fandango!~matt@bas2-kingston08-1167929772.dsl.bell.ca * Coke wonders if rt.perl.org just fell off the map works great here * Infinoid resolves RT#46597 r26550 | infinoid++ | trunk: : [raduko] reformat slightly to pass t/codingstd/cuddled_else.t r26551 | infinoid++ | trunk: : [src] "indexes" argument to Parrot_init_arg_indexes_and_sig_pmc should be NULLOK. : This patch inspired by RT #46597. bgeron++ % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % contingencyplan has left contingencyplan!~contingen@76.186.27.146 % contingencyplan has joined #parrot % kid51 has left kid51!~jkeen@toronto-hs-216-138-231-37.s-ip.magma.ca Infinoid: danke. r26552 | coke++ | trunk: : [docs] : Fix typo & remove "This section intentionally left blank." diff: http://parrotvm.org/svn/parrot/revision/?rev=26552 % mire has left mire!~Frodo@37-174-222-85.adsl.verat.net r26553 | coke++ | trunk: : [DEPRECATED] : The pmc_namespace vtable was deprecated, the get_namespace vtable was : its replacement: Here's a rename which resolves both tickets : (now merged into RT#48144). diff: http://parrotvm.org/svn/parrot/revision/?rev=26553 Hey Coke, want to profile some PIR? Sure. Okay, let me mail my patch and instructions to the list. % svnbotl has left svnbotl!diakopter@feather.perl6.nl % Auzon has joined #parrot There you go. % svnbotl has joined #parrot % slightlyoff_ has left slightlyoff_!~slightlyo@204.14.154.209 % AndyA has left AndyA!~andy@82.152.157.85 chromatic: not seeing it. will probably have to wait until tomorrow anyway. * Coke has fun ripping things out. % AndyA has joined #parrot % ewilhelm has left #parrot r26559 | coke++ | trunk: : [DEPRECATED] : remote int variants of getattribute/setattribute opcodes that were already : throwing exceptions anyway. (RT #48729) diff: http://parrotvm.org/svn/parrot/revision/?rev=26559 It should be in the list archives now. % Ozama has joined #parrot alguem ae tem bd ? r26560 | coke++ | trunk: : [DEPRECATED] : use less qw(.); diff: http://parrotvm.org/svn/parrot/revision/?rev=26560 Ozama: I'm sorry, I don't recognize that language. * Coke guesses portuguese, and we do have a native speaker, but I'm not sure he's about. -> r26561 | coke++ | trunk: : [DEPRECATED] [pynie] : use less qw(.); diff: http://parrotvm.org/svn/parrot/revision/?rev=26561 % Ademan has left Ademan!~dan@h-68-164-168-66.snfccasy.dynamic.covad.net % petdance has left petdance!~Andy@64.81.227.163 % skv_ has joined #parrot % skv has left skv!~skv_@87.242.97.68 % skv_ is now known as skv % Ozama has left Ozama!~Ozama@81.193.133.245