aha allison++ is working on that in a branch return() will make some things much simpler cizra: since I actually don't use ruby, the most helpful thing you could do for me would be to complain about things not working as you'd like, provide tests, open tickets, whatever medium you prefer. Of course, patches are always nice too. *nod* Waah. I ought to be working on the work work. 0.upto(5) {|i| puts i} Syntax error at line 1, near "0.upto(5) " there's something weird about line endings required in places they shouldn't be. I need to track it down. also... % bacek has left bacek!~bacek@123-243-38-218.tpgi.com.au % iblechbot has joined #parrot r28194 | tene++ | trunk: : [cardinal] : * upto() builtin for Ints (cizra++) diff: http://www.parrotvm.org/svn/parrot/revision?rev=28194 0.upto(5) Syntax error at line 1, near "0.upto(5)\n" Hm. Try assigning to a variable and calling upto() on that. Oh, right, I know why that's happening. There's some issues in the grammar there that I haven't worked out yet, so I restricted it to only allow method calls on variables for now to work around it. % baest has joined #parrot Wow, I should have tested that. I forgot to switch decrement to increment. irb(main):001:0>i = 5 irb(main):001:0>i.upto(10) Lexical 'i' not found Also, that irb prompt has a space after it. Should have, that is Right now, the interactive interpreter makes a new lexical environment for each line it compiles. pmichaud has plans to fix that, but has been too busy on other things to do it yet. OK, so how do I interpret whole files? just use a filename as an argument OK parrot cardinal.pbc file.rb Syntax error at line 2, near "i.upto(5) " a = 1; a.upto(5) { |i| puts i; } works for me That ; shouldn't be necessary. I'm trying to see if I can get it to parse without that required terminator right the second one Muhaha, upto counds downwards Another easy thing would be adding builtins. What are those? Almost as easy would be reworking the class hierarchy like upto() Hmm.. Are you aware that Ruby treats 5 as a full-blown object of the Fixnum class? Also, who's pmichaud? He's the main developer of the grammar engine and much of the compiler tools. OK. Who else is involved in this Ruby compiler? (Carrot would have been a nicer name) kjs wrote the first draft of the grammar, but that's it. OK Uh. Sure seems complicated. What seems complicated? r28195 | tene++ | trunk: : [cardinal] : * upto() should increment, not decrement (tene--) the compiler code : * allow a statement to lack a trailing terminator at the end of a block diff: http://www.parrotvm.org/svn/parrot/revision?rev=28195 The grammar? It is. I've cleaned it up a bit, but ruby's grammar is complicated in general. alias carrot='parrot cardinal.pbc' why 'carrot'? It sounds fine and rhymes with parrot. 'kay Umm.. Do I need the SVN access yet? r28196 | fperrad++ | trunk: : [Lua] : - more robust diff: http://www.parrotvm.org/svn/parrot/revision?rev=28196 Ruby's initialize methods don't need that "self" in 08-class-t % cosimo has joined #parrot Huh. I wasn't sure whether they did or not. I was just copying from the examples I could find on my system. Is the return value of initialize used for anything ever? I don't think so. Okay, I'll fix that. Also, why is running make test so damn slow? first make it run, then make it right, then make it fast ;) Parsing. The grammar engine hasn't been optimized much at all yet. Well, 10 lines of Ruby code shouldn't take like 10 seconds to run. By the way, the 08-class-t runs without the self. r28197 | tene++ | trunk: : [cardinal] : * The return value of initialize() isn't used. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28197 cizra++ cizra: Parrot is a bit strict about commit access to their svn repo. If you want in, send in a few patches, then you'll have to sign a licensing agreement. Gosh. I'd also be open to the idea of moving cardinal to a separate repository, if you have objections to that paperwork and plan to pay a lot of attention to working on cardinal. It has to do with their sponsorhip by the perl foundation and other legal issues. The license agreement basically says "You give the perl foundation the right to release all code you commit under an open source license, it's actually your code so you can give us copyright of it, you're not under any other weird legal agreements, etc." Time for me to sleep now. g'night. ciao % Zero_Yao has left Zero_Yao!~Zero_Yao@221.221.157.5 % jisom has left jisom!~jisom@c-98-212-164-35.hsd1.il.comcast.net % Zero_Yao has joined #parrot % ruoso has joined #parrot % Zero_Yao has left Zero_Yao!~Zero_Yao@123.112.114.207 Weird stuff. I replied by mail to my bug report AGES ago, but it hasn't shown up in the tracker. Does Parrot optimize away tail recursion? % ^conner has left ^conner!~dog@cpe-66-91-57-54.hawaii.res.rr.com I think it's trivial with cps What's cps? continuation passing style actually not 100% correct but sub calls are done through continuations, not stack so to do tail recursion optimatzion, you just have to re-use the current continuation OK Sounds like I'll learn a bunch. Is there any difference between using registers or local variables? (performance, I meant) Yay! I just wrote my very own Fibonacci numbers calculator, using only registers and register operations! \o/ re performance, dunno YaY, exam passed. 2/4 done. Mine are all done :-p * moritz envies cizra % ank has joined #parrot % cognominal has left cognominal!~cognomina@82.67.232.89 % nopaste has joined #parrot % iblechbot has left iblechbot!~iblechbot@ppp-62-216-200-102.dynamic.mnet-online.de % tetragon has joined #parrot % TonyC has joined #parrot % skv has left skv!~skv__@87.242.97.68 % AndyA has left AndyA!~andy@82.152.157.85 % tetragon has left tetragon!~seneca@216.126.67.44 % AndyA has joined #parrot % ank has left ank!~ank@ppp59-167-200-77.lns1.hba1.internode.on.net % bacek has joined #parrot is there any reason why i cant seem to pass a 'package' declared pmcarray to a function? ...package declared pmcarray? in PIR or ... ? i get "Null PMC access in find_method()" yes, pir mmd-- # For referencing NULL PMC in dispatch for dereferencing. I'm not sure what a 'package declared pmcarray' is. get_global $P12, "funstack" unless_null $P12, vivify_10 new $P12, "ResizablePMCArray" that okay, got that. Where is it being used? im just pushing a pmc onto it get_global $P14, "funstack" $P14."push"($P13) the first set of lines didn't actually create funstack as a ResizablePMCArray oh.. it did a lookup for funstack, and if no value was found it uses a (temporary) ResizablePMCArray in its place. im using the compiler toolkit here so you may need to set 'isdecl' somewhere =/ its set works when i change it to lexical can I see the code that is creating the past structure? A friend asked me: how could parrot be as fast as for instance ruby, if it needs to translate the ruby source into pir and then/or directly into parrot assembler and run that then? What's a good answer? ruby does that as well? ruby does translation also, just not into PIR no cizra: tell him that compile time normally doesn't really matter compared to run time Well, we were talking about Ruby-on-Parrot unless you had a 'ruby machine' heh at some point I hope/expect that we'll be translating PAST to bytecode and skipping the PIR intermediate step. I know a Haskell machine was build at some point. lisp machine as well cizra: and that once parrot does very good optimizations all high level languages will profit from it, so there's more incentive to do it how long till we have a parrot machine? :D TiMBuS: That was one-of-a-kind fun project. moritz: sounds fun oh, pmichaud % iblechbot has joined #parrot the code creating the stack is just: PAST::Var.new( :name('funstack'), :viviself('ResizablePMCArray'), :scope('package'), :isdecl(1), ), i bet im missing something arent i D: :isdecl(1) its there.. or is the comma a problem? :isdecl(1) isn't in what you just pasted... did it mispaste =/ What are "stack machines" and "register machines"? Are stack machines just with the stack like Forth, without any registers? Is a stack available in register machines? im no expert but i would think a stack machine would have registers, probably less registers though. the intel arch would be a stack machine, right? oh no, intel is definitely a register machine. really? % tetragon has joined #parrot http://en.wikipedia.org/wiki/Stack_machine # reasonable explanation in a stack machine, there's not really an 'add dest, src1, src2' instruction instead, it would be push s1 push s2 add like forth does and postscript and the result of the 'add' would be left on the top of the stack well there you go. OK So the main difference lies in the opcode arguments. in the way operations obtain their arguments and store results, yes. Thanks pmichaud, heres the code again, on one line so it isnt cut off: PAST::Var.new(:name('funstack'),:viviself('ResizablePMCArray'),:scope('package'),:isdecl(1)) see im not crazy its totally there the code for that should be get_global $P12, "funstack" unless_null vivify_10 $P12 = new "ResizablePMCArray" set_global "funstack", $P12 vivify_10: is it not generating the set_global? nope sounds like a bug then. :-| checking... oh, try :lvalue(1) that does it wait what. % Zaba has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Whiteknight has joined #parrot % Whiteknight has left Whiteknight!~nobody@c-71-230-33-251.hsd1.pa.comcast.net summon pmichaud % Whiteknight has joined #parrot yapc:eu is looking less and less likely. pong pmichaud, #55506. I'm very tired of NULL pmc access in type()... patching Parrot to ignore NULL probably isn't the answer, though. pmichaud, ok. I'll try to find more info what happens... the problem here is that the assignment is returning a NULL value. wait, that's not quite it. $a=' % gryphon has joined #parrot $a='foo'; generates an exception which try {...} catches ...so then what's the return value of C? Non initialised $P $P60 = 'foo'() pop_eh: ... 'is'($P60,...) what should the value of try { ... } be if an exception occurs? * bacek reading spec % acmoore has joined #parrot % tetragon has left tetragon!~seneca@69-196-141-26.dsl.teksavvy.com pmichaud, probably 'undef' I can't find it in spec. But in S02-builtin_data_types/type.t: is((try{$foo = 'xyz'}), undef, 'Int restricts to integers'); Is has $.a, $.b even valid? I guess syntax error... Anyway, returning NULL is bad idea for me. BTW, is I have sub foo(_) and sub foo(_,_) I should able to call it with NULL or two NULLs... Getting type of argument not always required for MMD As I recall, there was at one point a dispatch problem with NULL and _ s/is/if % paco has joined #parrot % Andy has joined #parrot I'm guessing that has $.a, $.b should generate something like "$.b not found in scope" % jhorwitz has joined #parrot % cognominal has joined #parrot % cognominal has left cognominal!~cognomina@82.67.232.89 % cognominal has joined #parrot Does C89 allow bitfields? I mean, I assume it does, bitfields were even present in K&R I dont think I've seen any bitfields in use so far in Parrot pmichaud: ran into a repeated zero-length match last night with: rule stmts { [ + ]+ }; token term { ';' | \n | > } % Limbic_Region has joined #parrot pmichaud: I found a workaround, but you asked me to let you know whenever I see it. % rdice has joined #parrot Tene: got it, thanks! % Zero_Yao has joined #parrot my $b = try { die 'xyz'; }; say $b; wrong chan, sorry hi, guys, I want to set break point at static funtion such as 'compile_to_bytecode' in IMCC, but I got: ''compile_to_bytecode has no debugger info'. What is wrong? I have '-g' option to CC. does gdb normally allow breakpoints to static functions? pmichaud, I use dbx on solaris, and I can set break point at static funciton before. i don't remember ever having a problem with that with gdb then I don't know. :-) Zero_Yao: what options did you use for Configure.pl ? DietCoke, I tried both 'perl Configure.pl' and 'perl Configure.pl --inline' and I just write a simple test function, and dbx can stop at static function correctly. % uniejo has left uniejo!~uniejo@langebro.adapt.dk % TiMBuS has left TiMBuS!~Hurf@123-243-167-27.static.tpgi.com.au % davidfetter has joined #parrot % masak has left masak!~user@130.238.45.242 % Zero_Yao has left Zero_Yao!~Zero_Yao@123.112.114.207 % jjore is now known as zz_jjore % zz_jjore is now known as jjore odd I'd throw it at the list and see if anyone can help. * davidfetter missed the context % sjansen has joined #parrot ... check the logs, man. =-) logs? parrot logs? irc log? purl? parrot logs are at http://irclog.perlgeek.de/parrot/today * moritz acts as dipspurl * DietCoke yawns * davidfetter peeks at /topic and blushes % Zaba_ has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % obra is now known as SmokyTheBear % SmokyTheBear is now known as obra Jeff Horwitz | mod_parrot: link: http://www.perlfoundation.org/parrot/index.cgi?mod_parrot % Limbic_Region has left Limbic_Region!www-data@feather.perl6.nl % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % pdcawley has joined #parrot % cosimo has left cosimo!~cosimo@pat-tdc.opera.com % cosimo has joined #parrot % clunker3 has joined #parrot % jjore is now known as zz_jjore % zz_jjore is now known as jjore r28198 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] adding some details about flags, both internal and external diff: http://www.parrotvm.org/svn/parrot/revision?rev=28198 % bacek has left bacek!~bacek@123-243-38-218.tpgi.com.au % Theory has joined #parrot % IllvilJa has joined #parrot * davidfetter wonders whether oracle's using parrot somewhere IllvilJa, any hints? Not AFAIK, but that does not necessary mean "no" :-). heh * davidfetter hoping to make parrot part of postgres at some point well, get pg to use parrot in some intelligent way % kj has joined #parrot r28199 | kjs++ | trunk: : [tutorial] add solution to exercise in ep 5 diff: http://www.parrotvm.org/svn/parrot/revision?rev=28199 % purl has joined #parrot I've worked with oracle-the-company a few times, and I'm very confident saying "no chance at all". I know of one place that ever used parrot in production, and we pretty much broke it with backwards incompatible changes (not unsurprising given our version #s) r28200 | kjs++ | trunk: : [tutorial] add solution to ex in ep 5 diff: http://www.parrotvm.org/svn/parrot/revision?rev=28200 r28201 | kjs++ | trunk: : [tutorial] add solution to ex in ep 7. (and whoops: previous commit should have said 'ep 6' , not 'ep 5') diff: http://www.parrotvm.org/svn/parrot/revision?rev=28201 r28202 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] changes to structure diff: http://www.parrotvm.org/svn/parrot/revision?rev=28202 r28203 | kjs++ | trunk: : [tutorial] add solution to ex in ep 8 diff: http://www.parrotvm.org/svn/parrot/revision?rev=28203 % kj has left kj!~IceChat7@193.1.100.109 (was dan's workplace, btw.) % particle has joined #parrot % barney has joined #parrot r28204 | chromatic++ | trunk: : [PMC] Changed isa_str member of the vtable to a hash. This allows more reuse : of constant strings within the system and simplifies isa checks to a hash : lookup, not repeated string manipulation. MRO setup has changed slightly too, : and there's an opportunity for refactoring here by calling a new function to : initialize MRO and the isa hash from the PMC class initializer. : Note that you need to reconfigure Parrot and probably make realclean after : applying this patch. If you see segfaults in dynpmcs (especially in : languages/), you didn't make realclean. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28204 % rdice has left rdice!~richard_d@CPE0014bfafbbd5-CM0011e6ecf48a.cpe.net.cable.rogers.com r28205 | chromatic++ | trunk: : [src] Copied some logic from string_equal into STRING_compare; the latter can : make a few assumptions that the former cannot, and this plus the isa_hash : commit speed up the Rakudo-building benchmark by 4.89%. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28205 the latest build for perl6 explodes, even with make realclean looks like a fakecutable issue barney, ping hi cotto do you know of a good example of a language spec that I could use as a basis for the PHP spec I'm writing? Not really. Perl 6 ? heh perl6 is a whole different class of language there's a spec for lolcode... is that the same class as php? ;) I can haz languidge spek? In spirit, HQ9+ might be closer. are you thinking of a syntax spec, or full language including semantics? for syntax, i'd use ebnf a full spec, although there are a lot of places where "do the obvious thing" would be sufficient You could ask Whiteknight whether he can recomment a Wikibook as a template vim + POD seems to be working I meant as a template for content Funny. In PHP $ref1 = &$var; seems to be the same as $ref1 =& $var; The more I read the code, the more I find wacky stuff like that. I'm not quite desensitized yet, though. Do you mean that this might not have been a sound a design decision? =:) Funny. In Perl $ref1 =- $var; seems to be the same as $ref1 = -$var; what about wikibooks? wouldn' it wouldn't hurt I've only got about 7KB of documentation written, so reformatting it wouldn't be too painful. % grim_fandango has joined #parrot jonathan: I just thought of a potential lazy-list blocker -- it will be difficult to overload set_pmc_keyed from ResizablePMCArray. Our alternative would be that List has an RPA attribute instead of inheriting from RPA. and we'd have to get the various RPAs that occur to magically morph themselves into Lists at every opportunity. I guess that's not too bad, all things considered. % rdice has joined #parrot % sjansen has left sjansen!~sjansen@hq-nat2.gurulabs.com pmichaud: that's what HLL mapping is for, neh? well, to avoid RPAs from occuring the first place. does HLL mapping also map :slurpy's ? ISTR it used to, at least. if it doesn't, it should. at any rate, we still end up with RPA's coming from PGE and/or PCT. any place where parrot is creating a PMC for you, you can expect it to use the right mapping. ;(if it doesn't it's a bug) PCT/PGE, perhaps you can have them do a lookup on the HLL mapping before instantiating. that sounds a bit tricker. We have to know who the hll caller actually is. *trickier anyway, while I think we can get most RPAs to HLL map to List, I'm not convinced we can reliably get all of them. and if we want to call Parrot libraries, we probably need to be able to handle RPAs anyway. (parrot libraries) that is a whole missing parrot of parrot HLL interop, I think. "missing part" based on what was done with P6object I don't think getting RPA to work will be a bit issue -- it's just something we have to be aware of. s/bit/big/ # can't type anymore :-( pmichaud: I was pondering that lists would separately maintain an evaluated an unevaluated portion, as separate arrays. So it's cheaper if you have an iterator of some kind in there. Otherwise you have to splice all of the time. Which is probably costly. I didn't think we needed to separately maintain it, though unless you're thinking that push would be a lot faster than splice I think so; isn't a splice a case of, copy the iterator and all after it along some elements? I was thinking that it can just be a list of mixed evaluated and unevaluated portions, where we keep track of the initial evaluated portion but having it as separate lists makes sense, I guess We can do. But splicing just feels a tad expensive. Unless we work out a way to make splicing cheat under the hood and be fast. I think I'll go with the two list approach first one nice thing about the single list approach is that adding/removing generators is still a simple pop/push and I think that we build lists far more often than we index them Hmm, true. Well, maybe. :-) also, we get the right semantics from :slurpy for "free" and I'm pretty sure we'll have a lot of :slurpy % Ivatar has joined #parrot True. Hmmm. Will think on it some. :-) well, once we have the basics in place we can try different models and see what works. Wouldn't surprise me if we ultimately end up with PMCs for a lot of these :-) I think having an implementation that *works* is more a priority than one that's fast. exactly. And I guess benchmarks are the way to work out what is fast. can always throw someone at the conversion of PIR to PMC later. There's a few too many factors, to be able to just guess what will be fastest. :-) OK, going to grab some food. r28206 | fperrad++ | trunk: : [configure] : fix on Windows : patch of kid51++ diff: http://www.parrotvm.org/svn/parrot/revision?rev=28206 r28207 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] moving stuff around, fixing my big mess. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28207 % jan has left jan!~chatzilla@89-253-66-101.customers.ownit.se % jisom has joined #parrot % jan has joined #parrot % grim_fandango has left grim_fandango!~matt@bas2-kingston08-1167934364.dsl.bell.ca % NotFound has joined #parrot Hello. r28208 | bernhard++ | trunk: : [Plumhead] : Mention --run-nqp in the synopsis. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28208 Jeff Horwitz | Parrot: link: http://www.perlfoundation.org/parrot/index.cgi?parrot Jeff Horwitz | Articles of Incorporation: link: http://www.perlfoundation.org/parrot/index.cgi?articles_of_incorporation dalek's url is at http://xrl.us/bkyfj will@coleda.com | Articles of Incorporation: link: http://www.perlfoundation.org/parrot/index.cgi?articles_of_incorporation dalek's url is at http://xrl.us/bkyfj r28209 | bernhard++ | trunk: : [Plumhead PHC] : Try to add variable name binding, but not succeeding. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28209 % purl has left purl!purl@sentient.life % purl has joined #parrot hi purl! % jisom has left jisom!~jisom@c-98-212-164-35.hsd1.il.comcast.net % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot % AndyA has left AndyA!~andy@82.152.157.85 % AndyA has joined #parrot % davidfetter has left davidfetter!~chatzilla@start.fetter.org % barney has left barney!~bernhard@dslb-084-058-167-186.pools.arcor-ip.net pmichaud: inside a pge closure {{ }} is there any way to print the current match object for debug reasons? _dumper(match) (assuming dumper is loaded.) so I need to load dumper inside the closuer {{ }} oh, it can be loaded outside of the closure, too. and match will be a lexical in the closure. (e.g.,as part of the HLLCompiler initialization) yes, 'match' is a pmc register pointing to the current match object in the closure Would you happen to have a file:line reference to a HLLCompiler initialization example? what are you invoking the match from? the best examples for HLLCompiler initialization are probably in languages/abc, languages/lolcode, compilers/nqp, etc. but if you're just wanting to get to "I can dump a match object" and aren't already doing HLLCompiler stuff, then you don't need HLLCompiler the load_bytecode '_dumper.pbc' can be done from, e.g., main I'm putting {{ print "HERE1" }} statements into my grammar.pg file as debug statments. that works too :-) But I'm going to add {{ _dumper(match) }} in a couple of places % grim_fandango has joined #parrot why the glossary is missing from http://www.parrotcode.org/docs/? who stole it? t/pmc/orderedhash test is failing in --optimize build. NotFound: Might be a known issue. NotFound: don't know if there's an RT ticket for it yet. % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % Zaba has joined #parrot NotFound, I think you forgot to attach your patch for #44499 Ooopppsss. Again! Done now, thanks. np the glossary is available here: http://www.parrotcode.org/glossary.html * DietCoke will update the docs index. % rdice has left rdice!~richard_d@CPE0014bfafbbd5-CM0011e6ecf48a.cpe.net.cable.rogers.com done. I'm curious about the Parrot/Perl6 workshop at yapc::na It doesn't seem like it'll take 2h to get people set up with a working rakudo build it's not just about getting them to a build. -> Do you take into account the time required to install cpan, a lot of modules, and several fails while building some of these? I think we want to do a build, but also give an orientation as to where things are e.g., for those who want to extend it i.e. encourage budding hackers exactly. I can definitely see the value in that. I guess that means that by the workshop I should make sure rakudo has the ability to accept code written in p6 :-) might be good to make sure the fakecutable works by that time that's somewhat out of my hands, unfortunately. I think we can say "the fakecutable works sometimes, but if not, use ./parrot perl6.pbc" most people don't have trouble with that. % donaldh has joined #parrot True. It's nice to assume that we'll have smart users. % bacek has joined #parrot % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net * moritz has a shellscript for that, just calls ../../parrot perl6.pbc "$@" % donaldh_ has joined #parrot % sjansen has joined #parrot What fails in the executable perl6? hello world hello world is, like, http://www.roesler-ac.de/wolfram/hello.htm NotFound: *** glibc detected *** ./perl6: double free or corruption (!prev): 0x00000000008cc470 *** % donaldh_ has left donaldh_!~chatzilla@proxy-sjc-2.cisco.com % donaldh has left donaldh!~chatzilla@proxy-sjc-1.cisco.com Works for me. r28205 fails for me on amd64 * Infinoid updates Mmmmm.... I was testing in a build with my last patch, looks like a cleaner version fails. % Limbic_Region has joined #parrot r28209 fails too % grim_fandango has left grim_fandango!~matt@bas2-kingston08-1167934364.dsl.bell.ca I'm starting to agree with the "woks sometimes" % jhorwitz has left jhorwitz!~chatzilla@96.245.16.45 % iblechbot has left iblechbot!~iblechbot@218.17-dial.augustakom.net oooh, making perl6.exe in Cygwin errors out while core dumping now that's a new one ;-) anyone interested in the output? % bacek has left bacek!~bacek@123-243-38-218.tpgi.com.au Limbic_Region: sounds like probably the same error we're seeing on linux ok then over here the C library barfs saying something about double free what's it look like over there? :) running it again now to see the crash occurs while trying to do the "hello world" bit 312 [main] parrot 192 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack) apparently, it can't dump core to even tell me what the error might be awesome * Limbic_Region will check back in after the linux issue is resolved to see if the cygwin is still there ../../parrot.exe -o perl6.pbc perl6.pir that's the line right before the failed core dump % jjore is now known as zz_jjore % zz_jjore is now known as jjore % sjansen has left sjansen!~sjansen@hq-nat2.gurulabs.com r28210 | Whiteknight++ | gsoc_pdd09: : [gsoc_pdd09] some fixes and a placeholder for GC-related tomfoolery diff: http://www.parrotvm.org/svn/parrot/revision?rev=28210 % kid51 has joined #parrot % pdcawley has left pdcawley!~pdcawley@ip-217.146.110.1.merula.net r28211 | jkeenan++ | trunk: : Correct error in call to File::Temp. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28211 % ank has joined #parrot % Ivatar has left Ivatar!~graham@tu055.demon.co.uk % gmansi has left gmansi!~gmansi@190.55.35.246 % AndyA has left AndyA!~andy@82.152.157.85 % AndyA has joined #parrot % davidfetter has joined #parrot % gmansi has joined #parrot % bacek has joined #parrot % particle has left particle!~particle@c-98-232-7-104.hsd1.wa.comcast.net % bsb has joined #parrot % particle has joined #parrot % silug has left silug!~steve@ppp-70-225-32-179.dsl.covlil.ameritech.net % nopaste has left nopaste!~opaste@202-154-105-237.people.net.au morning... % davidfetter has left davidfetter!~chatzilla@start.fetter.org good morning bacek Very quiet here this (for me) evening. Most of USA still in heat wave; slows down both computers and programmers. kid51: it's winter in Australia :) So it's little bit cold here % nopaste has joined #parrot % silug has joined #parrot Are you still in severe drought there? kid51: officially - yes... r28212 | chromatic++ | trunk: : [src] Allowed PMCNULL as a value for all PMC-containing hashes. Now cloning : these hashes doesn't produce a segfault when trying to clone PMCNULL. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28212 seen pmichaud pmichaud was last seen on #parrot 2 hours, 57 minutes and 59 seconds ago, saying: most people don't have trouble with that. pmichaud was last seen on #parrot 2 hours and 58 minutes ago, saying: most people don't have trouble with that. % Eevee has joined #parrot % particle has left particle!~particle@c-98-232-7-104.hsd1.wa.comcast.net r28213 | chromatic++ | trunk: : [lib] Made the PMC emitter store PMCNULL in the vtable isa_hash member. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28213 yak.. pmichaud rejected my patch for handling PMC NULL in MMD, cause we shouldn't pass NULLs in MMD... Chromatic adds support for NULLs in other parts... r28214 | chromatic++ | trunk: : [src] Made vtable cloning clone isa_hash member, only after global : initialization has finished (that is, when isa_hash is not NULL in the source : vtable). This gives all PIR-declared classes their own isa_hash. : Also made vtable deleting delete isa_hash member, when appropriate. This : version looks tricky, but this is to respect that PIR-declared classes have : separate isa_hash memory between their RW and RO variants. (That's fixable in : the Class PMC, but only if you want to violate encapsulation.) : Note that this fixes the double-free error showing up in the Perl 6 fakecutable. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28214 % japhb has joined #parrot % TiMBuS has joined #parrot r28215 | chromatic++ | trunk: : [PMC] Tidied Class PMC. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28215 r28216 | pmichaud++ | trunk: : [core]: : * Backport some CONTROL_* exception constants from the pdd25cx branch. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28216 % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net r28217 | pmichaud++ | trunk: : [pct]: Initial control exception capabilities. : * PAST::Block 'control' attribute allows catching exceptions in blocks. : The special value 'return_pir' generates inline code for catching : CONTROL_RETURN exceptions and returning the payload. : * PAST::Op pasttype 'return' generates CONTROL_RETURN exceptions. : * These only work with a single return value for now; we may generalize : this to multiple values in PCT, or just leave that for HLLs to : provide their own return throwers/catchers. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28217 r28218 | pmichaud++ | trunk: : [nqp]: : * Add 'return' statement. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28218 Ho! pmichaud++! % Zaba_ has joined #parrot % cjfields has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru when is pdd25cx getting merged back in to trunk? or is that happening nowish? Whiteknight: summon pmichaud and ask him :) i dont need to summon people to ask stupid questions I'm just happy to watch him work! * bacek opens next bag with pop-corn :) % kid51 has left kid51!~jkeen@68.237.13.104 % tetragon_ has joined #parrot * tetragon_ wonders when tetragon will fall over % tetragon_ is now known as tetragon allison is working on pdd25cx. I'm guessing it'll get finalized this weekend. I don't have much to do with pdd25cx, other than tremble about the merge. since the release is a week from tomorrow, I'm guessing the merge would be post-YAPC? (assuming it's finalized this weekend) % particle has joined #parrot r28219 | chromatic++ | trunk: : [src] Fixed the STRING_compare signature to signify that the bucket key may be : NULL. This fixes a segfault in the optimized build. All tests pass. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28219 yah. presuming things go well at the hackathon. % particle has left particle!~particle@c-98-232-7-104.hsd1.wa.comcast.net % particle has joined #parrot % cjfields has left cjfields!~cjfields@adsl-99-147-13-186.dsl.chmpil.sbcglobal.net % particle has left particle!~particle@c-98-232-7-104.hsd1.wa.comcast.net r28220 | pmichaud++ | trunk: : [cardinal]: : * Fix properties on src/builtins/guts.pir . diff: http://www.parrotvm.org/svn/parrot/revision?rev=28220 % cjfields has joined #parrot % ank has left ank!~ank@ppp59-167-200-77.lns1.hba1.internode.on.net % TonyC has left TonyC!~tony@202-154-105-237.people.net.au % confound has left confound!hdp@floe.aq % confound has joined #parrot % confound has left confound!~hdp@glaive.weftsoar.net % confound has joined #parrot % cjfields has left cjfields!~cjfields@adsl-99-147-13-186.dsl.chmpil.sbcglobal.net % particle has joined #parrot % TonyC has joined #parrot r28221 | pmichaud++ | trunk: : [rakudo]: : * Add 'return'. Only works for single-element values at the moment -- : returning lists and named elements will be available shortly. : diff: http://www.parrotvm.org/svn/parrot/revision?rev=28221 returning multiple values should be as easy as returning a ResizablePMCArray that contains those values ...not quite. :-) really? what snags are there? given return(@a,@b) i see, said the blind man if called with $a = foo() then $a should not become an Arrayref to the ResizablePMCArray PCT couldn't handle the translation to/from the array? yes, it probably will at some point. I just wanted to do the baby step first. in reality, we have to return both positional and named values and that doesn't fit into a ResizablePMCArray * Whiteknight is guilty of oversimplifying i.e., return($foo, @bar, :xyz(1)) % cognominal has left cognominal!~cognomina@82.67.232.89 which means that the positional and named arguments have to be rolled up into a single pmc (a Capture) that can be carried as the payload of the exception. is that what a capture is, a combined array/hash? and then whatever catches that exception has to know how to unpack the Capture back into positional and named arguments essentially, yes. there is so much going on in this whole project, it's hard to keep everything straight but on the other hand, we'd like to _not_ create an array and hash every time we're returning a single element. :-) because that's a bit overkill. yeah, I know. Of all people I should be weary of creating new garbage and, of course, other non-Perl 6 HLLs might have their own ideas about how return values work, so PCT should be flexible enough to support those also. (anyway, you get the point. :-) thank you and yes, it's hard to keep it all straight. I don't know that anyone has the full picture. :-) Certainly I don't. japhb: ping % TonyC has left TonyC!~tony@202-154-105-237.people.net.au % TonyC has joined #parrot * DietCoke spends his evening merging his various email accounts into a giant googlesink. is 'googlehole' a naughty word? as in, "that meme went down the googlehole" % tetragon has left tetragon!~seneca@76-10-171-48.dsl.teksavvy.com more like, "if google gains too much mass it will collapse into a singularity, and the entire Bay area will fall into the googlehole" pmichaud: ping r28222 | chromatic++ | trunk: : [src] Fixed C90 violation in Parrot_destroy_vtable (my fault in r28221). diff: http://www.parrotvm.org/svn/parrot/revision?rev=28222 % particle1 has joined #parrot % particle has left particle!~particle@c-98-232-7-104.hsd1.wa.comcast.net r28223 | chromatic++ | trunk: : [src] Really fixed src/vtables.c (as r28222 couldn't compile anywhere). diff: http://www.parrotvm.org/svn/parrot/revision?rev=28223 % rafl has left rafl!~rafl@62.75.161.67 % tetragon has joined #parrot % rafl has joined #parrot tewk: pong % slightlyoff has joined #parrot I have an optable bug. If i use tigheter exclusively it works, if I use equals it doesn't. paste coming equals? or equiv? "tewk" at 155.97.237.62 pasted "proto changes" (31 lines) at http://nopaste.snit.ch/13221 Infinoid: pong equal, this is old code from c99 % ank has joined #parrot I guess it should be equiv afaik it's always been 'equiv' maybe its just a bug never exposed. Like I said it is really old code. Thanks. c99 was never really heavily exercised. pmichaud++ I've seen kjs use equals() in cardinal, too. didn't he work on c99? % ank has left ank!~ank@ppp59-167-200-77.lns1.hba1.internode.on.net Yeah after I wrote the intial code. pmichaud: ping bacek: pong pmichaud: did you have any chance to take a look on my 'LazyList sketch' at http://nopaste.snit.ch/13208? yes, I did. But I don't think it should be a separate class. I think it should just be List. yes, but I don't want to hack List at the moment. sure, that makes sense. It's just idea of how it can be implemented. And I think, that List no 'is-a' RPA, but 'has-a' RPA. % sheriff_p has left #parrot we'll probably do something like that. jonathan and I were discussing earlier that we'll likely have two RPAs to start with Because all access to 'get_pmc_*' and 'set_pmc_*' will be wrapped one for already generated items and one for items yet-to-be-generated hmm... Why we need second RPA? that will make indexed access a bit quicker, and it avoids a lot of splicing But it's not RPA... (second one). It's Iterator. but on each indexed access you have to check that element already generated how would @a = (1, 2, 5..10, 15, 20..100) be stored? pmichaud: list of [1, 2, (Range(5..10), 15, Range(20..100)] ...extra paren, there? oops. Yes jonathan and I think that better would be [1, 2] and [Range(5..10), 15, Range(20.100)] after asking for element [4], we would have % tetragon has left tetragon!~seneca@gw-312-705.somanetworks.com [1,2,5,6,7] and [Range(8..10), 15, Range(20..100)] so, second RPA is 'RPA of Generators'. Makes sense right. shifting a value simply removes it from the generated list (generating one if needed) % Whiteknight has left Whiteknight!~nobody@c-71-230-33-251.hsd1.pa.comcast.net It's almost same way, how it implemented in my code. right, but I don't think we need a '$!next_item' japhb: r27975 caused a bunch of warnings for me. should I send you a tarball of my GL headers, or something? nor do we need a separate $!iterator we need 'next_item'. What about get_boo/shift combo? ...? * purl quietly listens while the crickets chirp 'separate $!iterator' should be 'RPA of generators' okay, I'd go for that then. Infinoid: that's never a bad idea. But I just got back from a trip; I need to find out what r27975 *was*. ;-) essentially they're things that understand 'shift' when we check get_bool we can prefetch next item fromgenerator all that means is that we make sure there's at least one element in the 'generated' list. japhb: [OpenGL] First cut of parsing OpenGL headers get bool is the same thing as exists [0] japhb: warning text available on RT #55530 Infinoid: hmmm. Has DietCoke not committed my patch from last week? so, we require, that generator implements 'get_bool' as well no. how that? japhb: I don't know. I do know that every version since has emitted a bunch of warnings. I'll send you my headers in an email oh, on second thought yes. but most generators do. Range does. List does. Infinoid: thank you. pmichaud: ok. Anyway, we can create generic proxy class for generators that don't right. But also, can you apply the latest patch on #55228 and see if it fixes your problem? Infinoid: what platform was this? % tetragon has joined #parrot Right now I'm writing 'fail'. and then we can get try and $! fixed. pmichaud: excellent. pmichaud: I tried to figure out, how to handle '$a=try{die}'... Unsuccessfully... It require more knowledge about PCT that I have... japhb: Linux/amd64 (gentoo) with some fresh git checkout of mesa Infinoid: gotcha. Did the latest patch on #55228 help? I will check now Infinoid: thanks. I'd asked DietCoke to test and commit that patch while I was gone (since it vastly reduced warnings for several people) but it looks like he did not. Might have been nervous about committing if I wasn't there to pick up the pieces if things broke .... % tetragon has left tetragon!~seneca@gw-312-705.somanetworks.com japhb: yes, it does help. the number of warnings is greatly reduced... only 8 left without the patch, I get pages and pages of them. great. paste the remainder? pmichaud: BTW, #55482 and #55484 more improvements of the List. (min/max/uniq) "Infinoid" at 75.5.240.108 pasted "japhb: Here's what's left over." (9 lines) at http://nopaste.snit.ch/13222 foomesa?!? WTF is foomesa? Sheesh. OK, I know what to do. hell if I know :) http://webcvs.freedesktop.org/mesa/Mesa/include/GL/foomesa.h?revision=1.2&view=markup looks a lot like mine. Infinoid's url is at http://xrl.us/bmr6j Infinoid: Ah. Example on how to write Mesa drivers. how ... useful for it to install that on production machines. NODNOD r28224 | chromatic++ | trunk: : [src] Refactored Continuation PMC's invoke vtable entry, extracting three : functions into src/sub.c. This allows the RetContinuation PMC to use two of : those functions directly, rather than forcing Continuation to check if it's : really a RetContinuation. diff: http://www.parrotvm.org/svn/parrot/revision?rev=28224 Infinoid: OK, I've attached an updated patch to your ticket (I'll point the old tickets to this one). Give it a try. Looks good, you devious git user you. Generating OpenGL bindings............................................done. Infinoid: heh awesome no idea if it builds yet, but it configures nicely % cognominal has joined #parrot Infinoid: give the build a try. IF it works, I'll commit and risk not having gotten Win32 signoff, because this is the third ticket filed on this same warnings issue from various other platforms. Configures, builds and runs just fine. the triangle.pir did emit a message about "Failed to initialize TTM buffer manager. Falling back to classic." otherwise, I didn't notice any noise at all. is the triangle bigger than it used to be? Erm ... shouldn't be. it's late, I'm probably just remembering it wrong. * japhb wonders what the "TTM buffer manager" is ... some Mesa thing, mayhaps? window_width = display_width * parrot_version; heh goodnight g'night committed The chicken is involved, but the pig is *committed*. r28225 | japhb++ | trunk: : Merge branch 'cognominal-ivan-fix' diff: http://www.parrotvm.org/svn/parrot/revision?rev=28225 % bacek_ has joined #parrot % TiMBuS has left TiMBuS!~Hurf@123-243-167-27.static.tpgi.com.au % bacek has left bacek!~bacek@mcas-151.usr.optusnet.com.au % Zaba has joined #parrot % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Psyche^ has joined #parrot % iblechbot has joined #parrot % Patterner has left Patterner!~Psyche@e177239249.adsl.alicedsl.de % Psyche^ is now known as Patterner % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru % uniejo has joined #parrot % Zaba has joined #parrot % iblechbot has left iblechbot!~iblechbot@47.16-dial.augustakom.net