% iblechbot has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % ruoso has joined #parrot % bsb has left bsb!~bsb@sdcarl02.strategicdata.com.au % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot I tried to generate a new test language, but its Makefile wasn't generated. % Zaba_ has joined #parrot (using the tools/dev/mk_language_shell.pl) % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru Running parrot on the test PIR didn't succeed either. error:imcc:No such file or directory % Eevee has left Eevee!~eevee@c-67-160-3-54.hsd1.wa.comcast.net Tene: Try running echo 'i = 0; i.upto(5) {|j| puts j}' | parrot cardinal.pbc --target=parse -- it's freakin' HUGE. Is it supposed to be so complex? % braceta has joined #parrot cizra if that freaks you out, you better not try: echo 'my $i = 0; for $i..5 -> {say $^j}' | ../../parrot perl6.pir --target=parse % Eevee has joined #parrot % Ademan has joined #parrot % Eevee has left Eevee!~eevee@c-67-160-3-54.hsd1.wa.comcast.net % bacek__ has left bacek__!~bacek@mcas-151.usr.optusnet.com.au % Eevee has joined #parrot TiMBuS: doesn't parse ?SYNTAX ERROR .. really? Statement not terminated properly at line 1, near "5 -> {say " odd, it works for me. this is rakudo im talking about not cardinal I tried running it in languages/perl6 Dunno what rakudo is languages/perl6 is rakudo. strange that doesnt parse for you the point i was making is any large language has a pretty huge syntax tree its about the same size as the one cardinal produces OK 226 lines for cardinal, 197 for perl6. nothing to fret about. OK Is that tutorial at http://www.parrotblog.org/2008/03/episode-2-poking-in-compiler-guts.html supposed to be current and correct? cizra's url is at http://xrl.us/bhy43 The tools/dev/mk_language_shell.pl script didn't create a makefile for the new test language. i do believe so, but if theres any updates they would be in languages/squaak/docs oh, yeah the 'executable' flag isnt set on it use 'perl tools/dev/mk_language_shell.pl' nono I did that and the new language was generated, but it lacks a makefile. oh ooh yeah i had that problem did you run configure for parrot again? Think so.. wait yep, nothing well try Configure.pl --languages="yourlanguage" thats what i had to do i think works thanks kewl Ougt to update the doc. Will you commit if I make you a patch? % pjcj has joined #parrot oh, i dont have commit haha but im sure someone would commit a change to it Hey, folks! Anyone got SVN commit permissions? http://pastie.org/212876 % Eevee has left Eevee!~eevee@c-67-160-3-54.hsd1.wa.comcast.net % slightlyoff has joined #parrot % Eevee has joined #parrot % particle1 has left particle1!~particle@c-98-232-7-104.hsd1.wa.comcast.net % MagNET has left MagNET!MagNET@Hunger.hu % MagNET has joined #parrot % Eevee has left Eevee!~eevee@c-67-160-3-54.hsd1.wa.comcast.net % Eevee has joined #parrot % acmoore has left acmoore!~acm@CPE-65-26-82-45.kc.res.rr.com % braceta has left braceta!~Braceta@nc.eurotux.com % iblechbot has left iblechbot!~iblechbot@ppp-62-216-201-208.dynamic.mnet-online.de % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % tetragon has joined #parrot % allison has left allison!~chatzilla@dsl-241-96-205.telkomadsl.co.za % tetragon has left tetragon!~seneca@216.126.67.44 cizra: applied with tweaks, thanks. \o/ r28232 | coke++ | trunk: : Clarify mk_language example : cizra++ diff: http://www.parrotvm.org/svn/parrot/revision?rev=28232 For anything more serious, a patch is probably better so it doesn't get lost. =-) You mean, mailing a patch to the list? % IllvilJa has joined #parrot ya. (docs/submissions.pod); just that IRC isn't always monitored, is all. thanks for the patch. (= hmm, when you append a pmcarray to another pmcarray, is the appended array copied? hmm i think i might have to iterate the second array and copy every element or something.. TiMBuS: How are you appending it? array."append"(otherarray) but it seems like changes made to the first array apply to the second % clunker3 has left clunker3!~IRC@procura.xs4all.nl which also happens if i clone the second array and append what is supposed to be the clone. % clunker3 has joined #parrot That may work...heh...I didn't know there was an append method. ew. append should probably be reworked to use the vtable methods. (or an iterator) (solely, that is) * bacek found crash in parrot... ill just manually copy and append each element, im not fussed 1 ~~ Perl6Scalar % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk bacek: I'm not sure what that should do, I guess maybe other than returning a false value...it shouldn't segfault. Make a ticket. Or a patch. ;-) % IllvilJa has joined #parrot jonathan, probably :) But there is already few my patches in RT... heh, 1 ~~ Perl6 segfault rumour has it segfault is http://xkcd.com/371/ % jhorwitz has joined #parrot % iblechbot has joined #parrot Perl6* pmc's/whatever they are shouldnt be directly accessible from perl 6, should they? or are they considered an actual type? % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk "bacek" at 202.7.166.164 pasted "jonathan: there is a patch for crash in '1 ~~ Perl6Scalar'" (42 lines) at http://nopaste.snit.ch/13229 bacek: Looks sane - I am tied up doing $DAYJOB at the moment, so please send in patch (as Parrot one, not Rakudo) (append array): I've been using splice, myself. hmm ill give that a shot Perl6* pmc's won't generally be accessible, no -- we just haven't worked to clean up those loose edges yet. oh, gewd + "Method '%Ss' not found for non-object", meth); isn't really describing what's happening. The error should probably be "Null PMC in callmethod" % particle has joined #parrot or, better: "Null PMC access in callmethod '%Ss'" pmichaud, It's copy-pasted from existed check. But I can change it the parrot opcodes need a search function or a list i can ctrl-f over =/ but it actually is not NULL PMC, AFAIU ohhhhh you're right. % gryphon has joined #parrot (jfyi #55620) ....but every PMC has a class. or should have one. this is mathian PMC without class :) Martian are there exception objects in perl6? In this particular instance ( 1 ~~ Perl6Scalar ) I'm guessing that the problem is that the symbol Perl6Scalar doesn't exist (i.e., PMCNULL). the code then attempts to invoke .ACCEPTS on PMCNULL, and that's the segfault. so, perhaps PMCNULL doesn't have a class. But AFAICT every other PMC should respond with some value to VTABLE_get_class if PMCNULL is the only PMC w/o a class, though, it would be better to check for it directly. pmichaud, hmm. Just a sec. I can add my comments to the ticket. (if it would help.) * bacek run 'git reset HEAD~1; make' to test but I think is was NameSpace... oh, you're right there. bacek++ bacek++ # correcting my silly mistakes Zaba, theres a 'Failure' if that helps.. Zaba: yes, Perl 6 has Exception types. pmichaud, :) pmichaud: ifnull ... so, is VTABLE_get_class returning null on NameSpace objects? pmichaud, nice.. pmichaud: return PARROT_NAMESPACE(SELF)->_class; (gdb) p object->vtable->whoami->strstart $45 = 0xb7e740d3 "NameSpace" this one without ->data. And it cause crash in error report. oops. No. Its with data... % IllvilJa has joined #parrot pmichaud: looks like _class is an attribute on the namespace. (gdb) p object->vtable->get_class(object) $48 = (PMC *) 0x0 (and it's only set via a call to set_class, which isn't called elsewhere in teh pmc. DietCoke, make sense. I wonder if NameSpace needs some sort of PMC Proxy instance % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru I originally intended that everything had a PMCProxy instance that it, by default, returned from the get_class vtable method. oh, I see where bacek++ got the code from for the patch. just copied it from callmethodcc into callmethod % Zaba has joined #parrot works for me. Pay no attention to the ravings of the just-waking-up Rakudo guy. " pmichaud, It's copy-pasted from existed check. But I can change it" :) bacek: I was looking at a different "existing check" I didn't see the one you were referring to. Anyway, as I said, I'm messed up on this one. * pmichaud slinks off into a different developing cave for a while. % Whiteknight has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru finally! r28233 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] updating to trunk r28232 diff: http://www.parrotvm.org/svn/parrot/revision?rev=28233 % uniejo has left uniejo!~uniejo@langebro.adapt.dk i just ended up cloning every pmc in the array then appending it to the other. oh well function calls now work so ive pretty much written the parrot version of 'joy' awesome next time ill write an imperative language using pct since its deigned to compile, you know, imperative languages, % Zaba has joined #parrot * DietCoke should just bite the bullet and see how tcl works (without rename) using PCT. er, [rename] Latin? well, Latin is an "inflected" language. instead of using word order to denote subjects and objects like we do in english, latin puts different endings on their words. or a horrible waste of time. or not something on Babelfish's menu % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % rdice has joined #parrot r28234 | kjs++ | trunk: : [squaak] implement return statement. Not sure if it's complete now, think so. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28234 % TiMBuS has left TiMBuS!~Hurf@123-243-167-27.static.tpgi.com.au % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % sjansen has joined #parrot I've read the discussion about _class in namespace. A problem is that in zero initialized structure PMC * members are filled with NULL, not PMCNULL. Attempts to use PMCNULL can throw exceptions, with NULL usually just segfaults. r28235 | kjs++ | trunk: : [squaak] fix action method for try. Apparently, seting viviself and isdecl flags need PAST::Val nodes instead of just literal constants. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28235 % bacek has left bacek!~bacek@123-243-38-218.tpgi.com.au % davidfetter has joined #parrot % Infinoid has left Infinoid!infinoid@mad.cow.org % Infinoid has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % bacek has joined #parrot r28236 | kjs++ | trunk: : [squaak] update README a bit; return is now implemented. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28236 % particl1 has joined #parrot r28237 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] adding some basics for root-at-a-time increments and an optional threaded mode % IllvilJa has joined #parrot diff: http://www.parrotvm.org/svn/parrot/revision?rev=28237 % particle has left particle!~particle@c-98-232-7-104.hsd1.wa.comcast.net I ran it without any special commandline parametersq oops % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk % cotto_home has joined #parrot % peepsalot has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot r28238 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] some changes, mostly a lot of comments diff: http://www.parrotvm.org/svn/parrot/revision?rev=28238 % particl1 is now known as particle % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % Theory has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net % Zaba has joined #parrot % Eevee has left Eevee!~eevee@c-67-160-3-54.hsd1.wa.comcast.net % Zaba_ has joined #parrot % cotto-work is now known as cotto_work % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Eevee has joined #parrot jhorwitz: ping particle: pong did you get mod_lolcode working? i know somebody who wants to put up a monster.com ad for it :) yes, but persistence didn't work of globals, that is that seems appropriate i wanted to say "i can haz X cheezburgers?" i wonder why that's broken it was cuz you couldn't use or test the value of a variable w/o declaring it ooh, ff3 has a search bar in the download window % barney has joined #parrot i made a small fix for that, but it caused other problems. can't remember. particle is distracted by shiny things I CAN HAZ FAIL CASCADING? we do have folks kind of maintaining lolcode, feel free to submit bugs. tcl is far more important though. =-) obviously. ;-) DietCoke, are you going to get Tk working with it? So... pct is designed to work with languages with syntax. Tcl doesn't really have that, per se. I am thinking that for a first pass at implementing tcl on pct, I need to pretend that the 'if' command is really syntax. (Tk) It's not on my radar, no. okay (pct) so, once I get all that working, I can then dynamically replace the grammar if someone redefines 'if'. but that seems kind of hacky to me. :| Anyone have any better ideas? I'd like to keep something like the PGE grammar I have now, but still be able to take advantage of the ast/ost/pir chain; right now that chain is all handrolled in tcl. (I wonder if I can just work on replacing those bits rather than returning my handrolled PIR) % IllvilJa has joined #parrot Whiteknight: (tk) to do that, I think I'd need to support the C level Tcl APi as well. and I'm just going for the tcl language level stuff atm. DietCoke: you can define your own compiler chain with pct Okay, that's fair. I know the Tk lib is going to be used eventually for perl6 too, I personally would prefer to see a Gtk2 library in there, but I dont have the time or tuits to implement it well, I can already call out to parrot stuff, so if there's a wrapper in lib/ I can use the gtk2 stuff. Hurm. actually, I'm not sure I can, because all my namespace access is rooted at ['tcl'] atm. all your namespace are belong to ['tcl'] particle: so here's my thing: the first parse for tcl is always "break this into commands". Each command can start out with handrolled PIR, or something I've compiled, but I have to be able to swap it all out at runtime. lexical redefinition, or global? We have bits that actually return the PIR necessary to run some of those commands (analagous to PCT, but done differently). We also have runtime versions of most things. (so if someone calls [for ...], they're getting a runtime version written in PIR.) perl 6 does this with begin particle: global. you can redefine the grammar % Andy has left Andy!~AndyL@host3130.follett.com if you replace the main [if] sub, you replace the whole thing. but it's not really a grammar. er, a grammar change. the grammar is just "break this into commands" Like I said, I can cheat and actually flesh that out more. It does feel like cheating atm, though. hurm. you look up via arity? i mean, look forward ? There's no arity involved. dispatch to named sub in the appropriate namespace. i mean, to determine how to evaluate how many args does this sub expect so [if {$a == $b} {puts hi}] is invoking 'Tcl'; '&if' ah, ok, brackets delimit commands well, there's only one choice, if the sub name is present, dispatch to it. yes. (just a way to show I'm quoting tcl code here. You'd not write the brackets around a top level command.) Hurm. I guess it's not cheating that bad. :| % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk One other problem I have: I need to evaluate each command immediately. (which I'm not doing now, but need to fix in any major rewrite). Is there a way to do that with PCT? I know it's theoretically possible with my current setup by changing my grammar to be a single command and then looping over the input, but I would love to have that baked into the toolkit. % donaldh has left donaldh!~chatzilla@proxy-sjc-2.cisco.com % donaldh has joined #parrot sorry, phone call :( % Ivatar has joined #parrot r28239 | coke++ | trunk: : [distro] : Follow the convention of naming files consisting only of POD with .pod diff: http://www.parrotvm.org/svn/parrot/revision?rev=28239 I'm wondering whether the Perl6 object model fits PHP. '=&' in PHP seems to be the same as ':=' in Perl6 oh, wait. PCT doesn't support HLL yet, does it? % gmansi has left gmansi!~gmansi@190.55.35.246 =& in PHP is really two tokens, I think. PCT doesn't support HLL yet, no. But it shouldn't be too hard to add it. % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Eevee has left Eevee!~eevee@c-67-160-3-54.hsd1.wa.comcast.net pmichaud, yes % gmansi has joined #parrot pmichaud: I don't understand PHP semantics yet. '$a =& $b' is the same as '$a = &$b' but don't mean: Store reference to $b in $a. It feels more like a single op. $a is now an alias for $b % Zaba has joined #parrot barney, $a = & $b; means $a refers to the same thing $b refers to, afaict from the docs in this sense, yes, it's like a bind. barney: it means $a now refers to the same variable as $b, it's like a hardlink (not a reference) % Eevee has joined #parrot Yes, that's why I probably should change assignment in Plumhead for pasttype('bind') to pirop('assign') and use pasttype('bind') only for '= &' s/for/from/ % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot particle: what exactly is the deal with lolcode & monster? % grim_fandango has joined #parrot r28240 | bernhard++ | trunk: : [Plumhead] : Remove unused for src/pct/Plumhead/Grammar.pir diff: http://www.parrotvm.org/svn/parrot/revision?rev=28240 s/for/file/ % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru DietCoke: ping pong % Zaba has joined #parrot you might not be able to answer this, but ... % gryphon has joined #parrot I want to use "store_lex $S0, $P0" to create a new lexical because there's not a .lex $S0, $P0 option i.e., create a lexical at runtime instead of compile time pdd20 says this should work if the :lex flag is present (as Tcl requires), but I can't seem to get it to work any clues? Dee Dee Dee! phrased differently -- how does Tcl create lexicals at runtime? bacek: please take a look at my answer on #55620 moment. pmichaud: languages/tcl/runtime/variables.pir r28241 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] modify the arena allocator for better spacial locality. A few other misc changes diff: http://www.parrotvm.org/svn/parrot/revision?rev=28241 you are probably interested in __store_var, the lexical path. ah, stick it directly into the LexPad let's see if that does what I need. except that it looks like we're manually managing our call chain to get the lexpads; if you have a lexpad handy, that might work. barney: is =& logically distinct from just assigning to something prefixed with &? I.e. does it need to be special cased? bacek or any other interested in the "say 1 ~~ Perl6Scalar" bug. it appears that :lex forces generation of a lexpad % japhb has left japhb!~geoff@76-191-190-8.dsl.static.sonic.net % pjcj has left pjcj!~pjcj@84-73-177-217.dclient.hispeed.ch hokay. so that trick works for you, then? but I don't seem to be able to add an entry to it. odd. avar: I think it is distinct There is magic going on with the call_chain[] call there; I think mdiep did that work, I don't recall what's going on in that code path. I would think that obtaining the lexpad and then doing lexpad['symbol'] = $P0 would create the entry we do have separate paths for creating and updating. sub 'make', perhaps? oh. afaict, none of Tcl is making use of Parrot's lexical features. i.e., Tcl is mantaining its own complete stack of lexpads. Very likely because at one point nothing worked and we had to roll out our. =-) r28242 | bernhard++ | trunk: : [Plumhead] : Get rid of unused vars in Makefile. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28242 "roll our own" we don't have declared variables, so our lexicals were never using :lex okay, that answers my questions about Tcl then. Thanks for pointing me to the right places to look. we alwyas had to do it the hard way. If there's an easier hard way, I'm all for updating. =-) I had thought we were using whatever the fallback version for lexicals was. I think the answer is that Parrot's lexical support isn't supporting what you need at least, not yet. jhorwitz: feel free to harass me about lolcode. I have a standing policy of working on anything anyone finds important enough to bother me about. tene: my lawn needs mowing. get on that. tene: my lawn needs mowing. get on that. tene: my lawn needs mowing. get on that. I'm finding I want something similar but can't find the right incantation to get that working. % pjcj has joined #parrot Tene: bringing up mod_lolcode shortly. i'll know soon how much i need to harass you. :) I'll poke around the lexpad.pmc guts a bit and see what's up there. % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru ah, looks like that was left unimplemented. At the least the code doesn't match the documentation in the code. % Zaba has joined #parrot % IllvilJa has joined #parrot DietCoke: Sure, I'll do that the next time I'm in NY. % davidfetter has left davidfetter!~davidfett@start.fetter.org % davidfetter has joined #parrot r28243 | bernhard++ | trunk: : [Plumhead] : Add an empty actions.pm, : prepare for migrating PAST generation from TGE to NQP. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28243 % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot DietCoke: as long as you close >=10 tickets while I'm doing it. I've already closed that many this week. =-| crap, i have bad ram. now i have to find out which of four modules or four slots is bad I'm sure you won't need your system while running memtest86 on it for the next day, right? is this the machine that was coming to OH? memtest86 just froze OH? this is my desktop, 6GB dual quad-core xeon monster % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru you should see his laptop % smash has joined #parrot hello everyone Hi! particle: froze, eh? Maybe you've got bad ram. ;) er, IL. * DietCoke geographizes GUT % Eevee has left Eevee!~eevee@c-67-160-3-54.hsd1.wa.comcast.net r28244 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] modify the arena allocator for better spacial locality, again. Requires some voodoo pointer arithmetic, which is probably buggy. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28244 tene: :P % cjfields has joined #parrot % donaldh has left #parrot % barney has left barney!~bernhard@dslb-084-058-176-219.pools.arcor-ip.net % barney has joined #parrot % Eevee has joined #parrot 6GB dual quad core?! WANT! (with non-faulty RAM, kplzthnx) good for teing make -j s/tesing/testing/ hooray for voodoo pointer arithmetic ptr += sizeof(dead_chicken) % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk particle: mod_lolcode lives HORRAY! link? on my dev box at home right now nice link? :P hold yer lolcats sheesh, i can debug ram problems faster... kthxbye ;-) :D particle: http://www.smashing.org/sandbox/cheezburger.lol joy! yuo can haz win % Zaba has joined #parrot are you going to keep an example page up? cotto_work: yes, trying to have all that up by YAPC particle: i think everything's a lexical right now, so not much we can do w/ persistence (cheezburger counters, etc.) Tene: can you confirm? No one wants to take a look at #55620 ? I'm in discussing mood. jhorwitz: sounds right to me. Feel free to tell me what you'd prefer. crap. I missed the call again, dinnit i. Tene: either globals or file-scoped lexicals would be nice (a la perl's "our"). then i can write a cheezburger counter. NotFound: that last variant looks best. =-) DietCoke: I like both. jhorwitz: give me aproposal for how they should work and I'll implement it. % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru can do. probably not real soon though. :) I know the first gives less informative messages, but I think that when more descriptive messages are needed an explicit check is the way to go. it's the sort of patch I would normally defer to someone more comfort with parrot guts to apply. % Zaba has joined #parrot And can't be applied as is, several test must be addapted before. But the last can be applied indepedently of the decission about the first mine or the original one. The NULL _class is an open call for segfaulting bugs. % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot By the way, this code segfaults: $P0= get_root_namespace | $P1= get_class $P0 DietCoke: i think pmichaud nominated you for something in your absence :) which is what, now? summarizing list mail and irc traffic or something small like that... i'm kidding, of course. % barney has left barney!~bernhard@dslb-084-058-190-159.pools.arcor-ip.net but we did discuss the Great Need what is the Great Need? % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % peepsalot has left peepsalot!~peepsalot@bwext.kpimdp.com summarizing list mail and irc traffic or something small like that... ~8-10h/week I'll have to think about whether I'd have time to do that, since it looks like I'll be in code purgatory for a while still. % rdice has left #parrot % Zaba has joined #parrot something like http://www.perl.com/pub/a/2004/04/p6pdigest/20040425.html ? yes and there's the *possibility* for some funding, from tpf or parrot we'll definitely be talking about it at yapc funding would be a secondary concern and i know ann barcomb well, who did perl 6 summaries for a while (at least for me) she and nothingmuch developed some tools to make it easier to manage good thing to talk about at yapc ya whee, more "perl6 is going to suck" crap to wade through. I'm not sure if that beats the "perl6 is a failure" or "perl6 is vaporware" crap... * jonathan will be hacking Rakudo tomorrow. % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru I think it's harder to defend against. Though they're ranting about the initial apoc, I think. DietCoke: where? % Zaba has joined #parrot private online community I just quit that channel. perl 6 is going to be the bee's knees I'm so excited about it, I could plotz heh. If I was personally more excited about perl6, I could probably defend it. As it is, it's just a drain to talk to these guys. The proof will be in the pudding, as it were. When we get a working product and start doing amazing stuff with it, people will cut out their crap I've found some people you can have a reasonable technical discussion with. And even if you end up disagreeing, at least it was a discussion. Others, frankly, aren't going to change their mind no matter what you say and aren't worth the time to argue with. jonathan: and since I'm not a perl6 expert, I can't even have that discussion, typically. =-) I'm not a perl6 expert, but I am an enthusiast. It's perl 6 that lead me to Parrot in the first place Same. ...5 years ago. let me tell you what, my C-foo has gotten more of a workout today then it has in years doing C pointer arithmetic really makes me appreciate dynamic languages even more Hm. I could really enjoy some lolcode hacking tonight. I'm usually just a bit too tired to really get any hacking done unless I'm excited about something specific, or someone else harasses me to do it. Caffeine helps a lot, but then I have trouble sleeping for the next two to three days. I've spent the last several years building up an immunity to caffeine power. powDer I can harass you! It's not worth the trouble for me if I end up sleeping in through the start of class, and I'm in different timezones regularly, so I'm more sensitive to that than I used to be. % Zaba_ has joined #parrot I think I figured out how to solve a problem I've been having with cardinal in my sleep last night, though. % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru I'm still not sure what I'm going to do about the "no syntactic difference between variable and nullary sub" thing and the "no syntactic difference between attribute access and nullary method call" thing tene: is there a mailing list for generic LOL code stuff? DietCoke: I have no clue whatsoever. * DietCoke needs mdiep back to hack on tcl more. I just read some stuff from the spec page. There are web forums, I know. DietCoke: almost any mailing list and web forum in the world have a lot of LOL people. Happy to create a mailing list on coleda.com if you need one. NotFound: specifically looking for lolcoders, though. =-) (mailing list) probably better off to do that via google groups, though. DietCoke: why do you ask? because I assume you are having trouble resolving a spec question, not an implementation detail. Created #55640 with the segfault found when discussing #55620 I was talking about cardinal there, not lolcode. * DietCoke missed the context switch -> in ruby, "a = b + c", both b and c could be either variables or nullary subs. % Auzon has left Auzon!~ak9@24-171-76-148.dhcp.mtvr.il.charter.com Less than an hour to locate, fixing, testing and creating the ticket, not so bad :) % particle has left particle!~particle@c-98-232-7-104.hsd1.wa.comcast.net % Auzon has joined #parrot % Zaba has joined #parrot % sjansen has left sjansen!~sjansen@hq-nat2.gurulabs.com % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % cjfields has left #parrot % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net % iblechbot has left iblechbot!~iblechbot@ppp-62-216-201-54.dynamic.mnet-online.de % Limbic_Region has joined #parrot % Auzon has left Auzon!~ak9@24-171-76-148.dhcp.mtvr.il.charter.com % Auzon has joined #parrot % jhorwitz has left jhorwitz!~chatzilla@96.245.16.45 % Ivatar has left Ivatar!~graham@tu055.demon.co.uk r28245 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] more modifications, add a cardmarking function, will probably be inlined later diff: http://www.parrotvm.org/svn/parrot/revision?rev=28245 Whiteknight: I'd guess most compilers will spot it, but card = card + (hdr->index / 4); is maybe better to use ">> 2" instead of potentially slow "/ 4"? And bitwise of instead of the modulo too. % japhb has joined #parrot jonathan: if the values are unsigned, you can trust the compiler will optimize it. (and if not, the compiler is so bad that those microoptimization will not be noticeable) We already have too many attempts of premature optimization, IMO. % particle has joined #parrot % IllvilJa has joined #parrot NotFound: sure ... but given that the compiler should DTRT, the choice of /4 or >>2 should depend on what the actual *intent* of the code is. If it's an integer getting scaled, /4 is the correct code. If it's a bitmask, >>2 is the correct code. * japhb hates it when people mix /(2**n) and >>n without thinking ... premature optimization? premature optimization is the root of all evil or when you make the mistake of optimising for speed when really you should optimise for maintainability and correctness, in the first instance. or unnecessary optimization is premature by definition. or hacking with tequila in preference to wine ... but I'm also in the "code is prose" group japhb: yeah, but I haven't seen yet a / 4 used when >> 2 will be desirable. I like that last definition for premature optimization ... NotFound: sadly, I have. Someone doing a clbuttic reactionary conversion, I think Fine, fine, leave it as it is. jonathan: OH, I hadn't looked at the original patch in full, so I don't know which is correct in that instance. I was just trying to say that /4 ==> >>2 is not *necessarily* the best choice. % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk Given it's doing the cardmarking stuff, I suspect bitwise would be more natural. Fair enough. % grim_fandango has left grim_fandango!~matt@bas2-kingston08-1167934364.dsl.bell.ca Tene: So how does *ruby* resolve the 'a = b + c' syntax ambiguity? Is every variable name really syntactically a nullary accessor, that just might be optimized away? Also note, we tend to run Parrot unoptimized much of the time, and I'm guessing this is a hot code-path. Given bitwise seems clearer anyway (though I didn't mention that originally), and doesn't need an optimizer to make it run that tiny bit faster (which may add up), I thought it might be a sensible change. Well, then I can't say no more don't heave seen that ;) jonathan: nodnod parrot is optimized for development atm I may be wrong, but I think some compilers won't let you have debugging symbols *and* optimized build together. jonathan: we also tend to run parrot undertested, and bugs introduced by attempts of optimization are difficult to find. particle: I think that's the intent. I'm not sure it's truly working out that way. jonathan: Now that I would believe See all tickets non-null related, for example. japhb: msvc can't do optimized debug iirc * japhb rolls his eyes in frustration with all things Microsoft ... it's been one of those days particle: that was the compiler I was thinking of, but didn't want to say it without checking, and am too tired to be bothered to go look it up and check. :-) jonathan: i'm pretty certain, but not 100% and if you and i are both thinking it, there's greater chance that it's true, i'd like to believe :) heh * particle thinks perl 6 is cool Sometimes the problem is that people only looks at the IDE options, but the command line have more. I think mswin32.pm in hints has something to make sure we don't try and do debug and optimized. % slightlyoff has left #parrot * japhb reads through mswin32.pm, feels rather sick to his stomach :-) japhb: pretty much, yeah. japhb: optimized build on amd64 is broken, iirc Oy, and it looks like Borland's Win32 compiler *forces* -O2 ... Or rather, we force -O2 when detecting bcc ... hrmm, borland is one compiler i don't have for windows.... yet. Tene: That's one reason that I think always building with no optimization is bad. Because no one has a strong enough incentive to fix that problem, instead delaying it until much later ... when the fix may be much more painful. japhb: same can be said for jit, and alternate runcores we *need* a smoke environment and toolset a Perl 6 programmer is going to be surprised when they put in a breakpoint at infix: and don't hit it on /4 :) particle: Yep. Which I've commented similarly about. (jit and alternate runcores) Postmature optimization is the leaf of all evil... Nice. TimToady: The only time we could ever optimize that is when we can infer from the type that we actually have an int...and I'd hope in the case of lowercase int type we're not compiling down to a multi-dispatch. That's my I-need-sleep guess anyway. postmature pessimisation is the square of all evil... % smash has left smash!~smash@gil.di.uminho.pt In the C case, I think there is no debugger that allows to put a breakpoint in / operator. % ank has joined #parrot * particle wonders if the perl 6 debugger will have protobreakpoints * jonathan isn't sure whether to ask for an explanation proto? proto is probably to start at the lowest and use the first available. The client should be configurable. particle: do you mean a breakpoint that activates on any one of a multi? yep nice feature idea, that like protoregexes Oh, OK. That makes sense. i think it could be quite useful *nod* * particle can't build perl6 :( jonathan: have you built rakudo lately? All optimized build bugs have seen solved recently were caused by the non-null issues. particle: No, have been snowed under with $DAYJOB since weekend. notfound: i expect after all those are fixed, optimized build should be much more stable Tomorrow I get full day on Rakudo that $OTHER_JOB won't interupt, though. :-) ok, well the build dies during dynpmc gen particle: I start to think that the only reasonable way to solve all is to completely drop non-null parameters. .\perl6str.c(1288) : error C2275: 'PMC' : illegal use of this type as an expression NotFound: the decorators were added probably without testing optimized build they're worth having, as long as they're correct and complete particle: re: smoke environment and toolset ... I keep seeing mentions of smoke tools here and there, but always in passing. What is the current state of things? Heh. I get "error:imcc:syntax error, unexpected DOT ('.')", but I only updated my Rakudo, not my core Parrot particle: and wthout testing if the compiler can warn about misuse. notfound? there's a configure step to detect those attributes particle: On svn up, I see U lib\Parrot\Pmc2c\PMCEmitter.pm jonathan: yes, i remember reading a commit msg from chromatic about that i bet he broke it particle: detect what, if the attributed functions are called with possible null arguments? but i need to concentrate on mk_language_shell.pl particle: Yup, after getting that, my Rakudo is now hosed too. NotFound: detect whether the compiler has the ability to use those attributes NotFound: i believe only gcc can do that now % bacek_ has joined #parrot particle: when there is not such ability, there are no problems caused by it. correct particle: Will do a realclean. jonathan: doesn't help, but go ahead damm OK, then I'll go and sleep and have nightmares about the pmc2c fix I might have to do tomorrow. % IllvilJa has joined #parrot yeah. enjoy. * jonathan hopes it magically gets fixed before he wakes up And even if the compiler were able to warn about possible misuses, it will lose it in jit generated code. not everyone will run jit particle: I fixed some bugs detected with jit. So at least the people that filled the ticktes does. right the matrix of platforms and configurations under which parrot will run is huge r28246 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] add all allocated objects to the free list. Some simplifications and refactors diff: http://www.parrotvm.org/svn/parrot/revision?rev=28246 the better-defined our api is, the easier it will be to extend and maintain that matrix particle: and that's the main reason to avoid to write potentially dangerour code. if we can guarantee and document and test that certain parameters and functions allow or disallow null, it makes maintenance easier particle: yes, and the problem is that the api definitions are somewhat nebulous. To say the least. yes, that's what needs correcting Write code that meets the specification is as easy as walk over water... * particle prefers to write tests that meet the spec, then write the code You just need that both are frozen. the more of parrot we get implemented, the closer that is to happening sometimes the implementation informs the design or, using my method, the tests inform the design morning everyone... when will you get this right, bacek_, it's almost evening here! :P EVENING localtime() rumour has it localtime() is Y2K compliant, read the doco phule 10:00... $dayjob starting.. karma $dayjob $dayjob has karma of -1 A simple fact: we already have a lot of functions with non-null parameters directly called from opcodes without chekcing for nullness the registers used. karma $work $work has neutral karma Adn I did And I didn't have my coffee yet... ($dayjob)++ # It gives me enough money to do something for rakudo :) What is the 'correct' fix? Change the signature, check all usages, or add other function for the same job? So, is anyone going ot give me something HLLish to do tonight? NotFound: i think opcodes shouldn't check for nullness they should be fast and efficient, and assume correct input particle: i think there are already several that does. yes, this is true and, i don't have final say but it's how i'd design it particle: yes, but i think they must also avoid segfaulting the interpreter. so, null checking belongs outside the opcodes themselves An actually, a lot does. notfound: indeed Well, then we have only the other two solutions. And have two versions of a lot of functions looks no very desirable to me. % AndyA has left AndyA!~andy@82.152.157.85 tene: i'd like very much to start using languages/pir/ to do a pirtidy utility or, pir::critic util write the utility in pure PIR? no, use languages/pir for the parser write the actions in nqp the pir rules are simple well that makes a bit more sense .sub|.end are first column labels are two column indent all other pir is four columns all spaces, none trailing An utility that generates a lot of random opcodes, executes it, and save for revision those that segfault may be helpful. yeah, I suppose that is pretty easy of course, having options for those things is secondary notfound: indeed or something to twiddle bits in bytecode known not to segfault would be nice to have a disassembler worknig well enough for that At least it can help to show how esay is to segfault parrot in the current state. yep % AndyA has joined #parrot Look at #55640 for a recent example. % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk so, PCT doesn't support HLL, right? % Zaba_ has joined #parrot DietCoke: no, not yet % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net % particle has left particle!~particle@32.157.168.212 ok. I'm going to hold off on converting tcl until then, then. I do wonder if it makes sense to ditch my templating language and use NQP, though. meh. I'll leave it alone. :| particle, you're talking about a PASM disassembler? oh, particle left r28247 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] basics of an "add_free_item" function, allows an item to be added directly to the free list. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28247 r28248 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] implemented the "more_objects" object recycler, at least a basic version of it. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28248 % particle has joined #parrot % japhb has left japhb!~geoff@208.201.228.107 % AndyA has left AndyA!~andy@82.152.157.85 % AndyA has joined #parrot seen fperrad I haven't seen 'fperrad', cotto_home you lie! * purl would NEVER do such a thing to you, cotto_home! There! You did it again! % cotto_home has left cotto_home!~cotto@75-92-237-130.sea.clearwire-dns.net % Zaba has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % cotto_home has joined #parrot any C people in here? % ank has left ank!~ank@ppp59-167-200-77.lns1.hba1.internode.on.net define "C" #define C asm++ otoh parrot.isa(asm++) too Whiteknight: i could look I'm trying to figure out about a particular coding standard Whiteknight: which where? which is probably more recommended IO::File or FileHandle? or nice or why entourage is a complete sack of shit purl, forget which spinclad: I forgot which i'm trying to figure out about the oft-unused "register" keyword, and whether I can use it or not iirc, it's a compiler hint that may or may not be ignored there's no guarantee it will make any difference yeah, i know what it is, i want to use it and wonder if i should or not because i doubt it's used anywhere else in the codebase PDD07 Pattern not found yeah, i was about to say that it's standard C89, so i'm going to use it. Any hints I can give to the optimizer are good pdd07 is http://www.parrotcode.org/docs/pdd/pdd07_codingstd.html pdd07? pdd07 is probably there for you ;-) i've heard of compilers allowing global register decls, but they're rare no, pdd07 is http://www.parrotcode.org/docs/pdd/pdd07_codingstd.html okay, cotto_home. % japhb has joined #parrot anyway, i see no prohibition. % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net % cotto_home has left cotto_home!~cotto@75-92-237-130.sea.clearwire-dns.net % cotto_home has joined #parrot % workbench has left workbench!abuse@adsl-068-213-211-142.sip.bct.bellsouth.net % workbench has joined #parrot % tetragon has joined #parrot % TiMBuS has joined #parrot % tetragon has left tetragon!~seneca@76-10-171-48.dsl.teksavvy.com % grim_fandango has joined #parrot % Zaba_ has joined #parrot % tetragon has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru cotto_work: You're the closest arrival to me. Any interest in sharing a cab =-) % particle has left particle!~particle@c-98-232-7-104.hsd1.wa.comcast.net % dalek has left dalek!dalek@feather.perl6.nl % dalek has joined #parrot DietCoke, sure (I'm cotto_work's alter ego.) % iblechbot has joined #parrot % Eevee has left Eevee!~eevee@c-67-160-3-54.hsd1.wa.comcast.net DietCoke, confirm? % grim_fandango has left grim_fandango!~matt@bas2-kingston08-1167934364.dsl.bell.ca % Eevee has joined #parrot I guess you're asleep. I'll just sync Thurs. % iblechbot has left iblechbot!~iblechbot@ppp-62-216-200-59.dynamic.mnet-online.de % Zaba has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Eevee has left Eevee!~eevee@c-67-160-3-54.hsd1.wa.comcast.net % Zaba_ has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % barney has joined #parrot % barney has left barney!~bernhard@dslb-084-058-190-159.pools.arcor-ip.net r28249 | chromatic++ | trunk: : [lib] Made PMC emitter stick mro initialization in its own block, to avoid C89 : violation that MSVC hates. (NotFound, RT #55590, providing overnight fixes : since 2008). diff: http://www.parrotvm.org/svn/parrot/revision?rev=28249 r28250 | chromatic++ | trunk: : [src] Changed yet another const_string to CONST_STRING. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28250 % Zaba has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru r28251 | chromatic++ | trunk: : [io] Cleaned up the flipflopping C and C++ warnings related to Unix sockets : (NotFound, RT #55590). diff: http://www.parrotvm.org/svn/parrot/revision?rev=28251 % Psyche^ has joined #parrot % uniejo has joined #parrot % Patterner has left Patterner!~Psyche@e177233176.adsl.alicedsl.de % Psyche^ is now known as Patterner % grim_fandango has joined #parrot r28252 | chromatic++ | trunk: : [src] Fixed some const casting warnings (NotFound, RT #55590). diff: http://www.parrotvm.org/svn/parrot/revision?rev=28252 r28253 | chromatic++ | trunk: : [IMCC] Removed constant string to char * casting warnings in IMCC from C++. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28253 % Eevee has joined #parrot r28254 | chromatic++ | trunk: : [t] Fixed a test broken by r28252 that I didn't catch the first time. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28254