% masak has joined #parrot r27571 | bernhard++ | trunk: : Add NEWS from Geoffrey Broadwell diff: http://www.parrotvm.org/svn/parrot/revision?rev=27571 r27572 | pmichaud++ | p6object: : [p6object]: : * First code draft. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27572 % Andy has left Andy!~Andy@64.81.227.163 allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy japhb: sorry, today was crazy. you still up? % TimToady has left TimToady!~larry@209.9.237.164 % TimToady has joined #parrot % aa2 has joined #parrot % iblechbot has joined #parrot r27573 | pmichaud++ | p6object: : [p6object]: : * Add 'new_class' method, more tests. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27573 % contingencyplan has left contingencyplan!~contingen@cpe-76-186-27-146.tx.res.rr.com r27574 | bernhard++ | trunk: : [Plumhead antlr] : Start with generating NQP, instead of PIR, : for setting up PAST. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27574 r27575 | bernhard++ | trunk: : [Plumhead phc] : More consistent formating of generated NQP diff: http://www.parrotvm.org/svn/parrot/revision?rev=27575 r27576 | bernhard++ | trunk: : [Plumhead PHC] : Use the regular template for the toplevel past:stmts. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27576 allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy r27577 | bernhard++ | trunk: : [Plumhead antlr3] : Add a STMTS below PROGRAM and emit dummy PAST diff: http://www.parrotvm.org/svn/parrot/revision?rev=27577 % masak has left masak!~user@130.238.45.242 % Ademan has joined #parrot r27578 | bernhard++ | trunk: : [Plumhead antlr] : Remove dummy code, bring back support for printing positive integers. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27578 % aa2 has left aa2!~a@bzq-84-108-247-75.cablep.bezeqint.net % ambs has joined #parrot DietCoke, new guys are lazy % Ivatar has joined #parrot r27579 | ambs++ | trunk: : [plumhead] : svn properties to languages/plumhead/src/antlr3/GenPastNqp.java diff: http://www.parrotvm.org/svn/parrot/revision?rev=27579 % rdice has joined #parrot % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt r27580 | bernhard++ | trunk: : [Plumhead antlr] : Convert some more production from emitting PIR : to emitting NQP. A lot of failures. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27580 % tetragon has joined #parrot Write-up from yesterday: http://use.perl.org/~JonathanWorthington/journal/36451 % ambs has joined #parrot % NotFound has joined #parrot Hello. Hellows. % andyc has joined #parrot NotFound: good morning :) For some values of "morning" ;) the sun never sets on the parrot empire r27581 | fperrad++ | trunk: : [Lua] : - bytecode translation : some improvements (vivification, ...) diff: http://www.parrotvm.org/svn/parrot/revision?rev=27581 * jonathan only saw the first couple of hours of the morning...the ones before 2am. % Limbic_Region has joined #parrot % mire_ has joined #parrot r27582 | fperrad++ | trunk: : [Lua] : - bytecode translation : remove .const generation diff: http://www.parrotvm.org/svn/parrot/revision?rev=27582 % mire_ has left mire_!~Frodo@156-175-222-85.adsl.verat.net % rdice has left rdice!~richarddi@CPE001ff33cb98b-CM00159a01d44c.cpe.net.cable.rogers.com % mire_ has joined #parrot % mire_ has left mire_!~Frodo@156-175-222-85.adsl.verat.net % Andy has joined #parrot % Andy has left Andy!~Andy@64.81.227.163 % b2gills has joined #parrot % Ron has joined #parrot % wknight8111 has joined #parrot r27583 | bernhard++ | trunk: : [Plumhead antlr3] : Fix infix ops. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27583 % Ivatar has left Ivatar!~graham@tu055.demon.co.uk % AndyA has left AndyA!~andy@c-68-33-170-161.hsd1.md.comcast.net % Zaba_ has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru r27584 | bernhard++ | trunk: : [Plumhead antlr] : Add 'prefix:-' :multi(PMC) : Fix '+^'. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27584 % wknight8111 has left wknight8111!~Whiteknig@pool-72-78-159-125.phlapa.east.verizon.net [plumhead] All tests successful. r27585 | bernhard++ | trunk: : [Plumhead antlr] : Add nodes for IF back in. : Fix NOQUOTESTRING. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27585 % braceta has joined #parrot ambs: Plumhead has three variants. Using PCT is the default. Currently I'm fiddling with the variant that uses ANTLR for parsing barney, and what is the approach to test it? if there is interest in doing it :) set CLASSPATH according to docs/antlr3.pod make build-antlr3 make test-antlr3 but you need java and the antlr3 runtime libs A Perl6 Backend for ANTLR3 is on my mental TODO-List, as I'm not very attached to Java java? argh ok, forget it :D ambs, I didn't have anything matching it :d purl, seen dietcoke dietcoke was last seen on #parrot 9 hours and 43 minutes ago, saying: resurrects his ancient osx/ppc laptop % Ivatar has joined #parrot Tene: I *was* still up, just hangin' with the better half % tetragon has left tetragon!~seneca@CPE0040d001f62f-CM000a736592a8.cpe.net.cable.rogers.com % particle has left particle!~particle@c-24-19-3-148.hsd1.wa.comcast.net % particle has joined #parrot OK, I ran 'make fulltest', but I don't get any summary of the results, just pages and pages of terminal scrollback. Is it normal to have no test summary for fulltest? r27586 | bernhard++ | trunk: : [Plumhead antlr] : Bring back SCALAR and ARRAY. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27586 japhb: That's the way it currently is. But I wouldn't call it normal. % ilbot2 has left ilbot2!moritz@faui2k3.org barney: it makes it far less useful to do an overnight run, that's for sure. yes % Theory has joined #parrot r27587 | bernhard++ | trunk: : [Plumhead antlr] : GenPastPir.g was replaced by GenPastPir.g diff: http://www.parrotvm.org/svn/parrot/revision?rev=27587 There were, or are, plans to do saner testing with Test::Harness 3.0 and Smolder % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net % teknomunk has joined #parrot % kid51 has joined #parrot ../../parrot perl6.pbc -e 'say -123456789' gives me -1.23457e+08 afaict, PIR doesn't work well with large number literals It's a conversion to float in line 80 of languages/perl6/src/builtins/op.pir s/It's/It might be/ Even if it ends up in an Integer or Rational, it gets truncated at the parrot level first. Argh, I have no clue what I was planning on working on today. Anyone have any HLL-ish requests? find a ruby test suite? Is it too late for a 666 tickets challenge ? Or find a scheme test suite r27588 | bernhard++ | trunk: : [Plumhead] : Add option --run-nqp to plumhead.pbc diff: http://www.parrotvm.org/svn/parrot/revision?rev=27588 ruby test suite http://headius.blogspot.com/2008/05/rubyspec-bringing-ruby-test-suites.html tewk's url is at http://xrl.us/bkone * jonathan implements an RPN calculator in Perl 6 to use for his talks * particle wanders off into the world... & r27589 | tewk++ | trunk: : [c99 CPP] gramar updates diff: http://www.parrotvm.org/svn/parrot/revision?rev=27589 cd languages/c99/; make; cd src/cpp; ../../../../parrot cpp.pbc --targe=parse t/comment_01.t * tewk needs grammar help, can't get grammar to pick up comments as whitespace % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy % ilbot2 has joined #parrot r27590 | allison++ | pdd25cx: : [pdd25cx] Code refactor, moving functions for better maintainability. Put error : functions under a different header than exception functions. Move runloop jump : point functions to the interpreter's source files. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27590 tewk: lemme take a look... do you have a minimal test case? allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy tewk: notice that it's failing in TOP allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy r27591 | bernhard++ | trunk: : [Plumhead] : Merge driver_nqp.pir into plumhead.pir. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27591 % sjansen has joined #parrot Tene: I fixed it, ws contents need to be wrapped with [ ]*, duh. Tene: I'm here again. You were looking for me? r27592 | chromatic++ | trunk: : NEWS updated through 01 May; language updates are skimpy since previous release. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27592 r27593 | allison++ | pdd25cx: : [pdd25cx] Delete 'throwcc' opcode, replace with 'throw' in one- and two-argument forms. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27593 allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy % barney has left barney!~bernhard@dslb-084-058-121-201.pools.arcor-ip.net r27594 | pmichaud++ | p6object: : [p6object]: : * Refactored tests, more tests for subclasses. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27594 % davidfetter has joined #parrot pmichaud: A couple of grammar questions. My rule is composed of subrules, but I'm only intereted in captureing the as a whole, is that possible? % tetragon has joined #parrot % kid51 has left kid51!~jkeen@pool-68-237-16-164.ny325.east.verizon.net japhb: I'm here again. I think that I thought you were looking for me, but I don't recall why. tewk: explain more. tewk: probably just use the <.rule> non-capturing form inside of Tene: you were going to commit my OpenGL patch, last we spoke Oh, sure. Is it available online somewhere, or do I need to pull it from email? It's attached to 54238 (So you should be able to download it from RT, I mean) "tewk" at 155.97.237.62 pasted "<.rule> issue" (27 lines) at http://nopaste.snit.ch/13003 Tene: got to run for now; ping if you need me, and I'll check back later Hm. I can't make any new outgoing connections, but I'm somehow still connected to IRC? Weird. tewk: want to talk about what's going on? Tene: sure do you know? But are you sure you're sure? r27595 | tene++ | trunk: : OpenGL updates from japhb++ diff: http://www.parrotvm.org/svn/parrot/revision?rev=27595 % lichtkind has joined #parrot % iblechbot has left iblechbot!~iblechbot@ppp-62-216-200-112.dynamic.mnet-online.de tewk: what is it that you want? % braceta has left braceta!~Braceta@78.130.65.59 % itz_ has joined #parrot % ambs has joined #parrot purl, seen coke coke was last seen on #parrot 3 days and 15 hours ago, saying: (the script for manifest should work if you svn add first!) [May 13 21:42:37 2008] purl, seen dietcoke dietcoke was last seen on #parrot 14 hours ago, saying: resurrects his ancient osx/ppc laptop r27596 | fperrad++ | trunk: : [Lua] : - fix ipairs when bytecode translation diff: http://www.parrotvm.org/svn/parrot/revision?rev=27596 r27597 | fperrad++ | trunk: : [Lua] : - update NEWS diff: http://www.parrotvm.org/svn/parrot/revision?rev=27597 r27598 | allison++ | pdd25cx: : [pdd25cx] Change the name of 'Parrot_ex_throw_from_c' adding '_args', to make : room for a 'Parrot_ex_throw_from_c' that throws an exception object. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27598 allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy * DietCoke yawns. yes, ambs? ambs is, like, Alberto Simoes, one of the organizers of YAPC::EU::2005 and available at mailto:ambs@cpan.org DietCoke, can you please send your votes before Monday night? yup, planning on doing so tomorrow morning local time. DietCoke, thanks % andyc has left #parrot r27599 | allison++ | pdd25cx: : [pdd25cx] Remove 'do_exception' function. Split 'Parrot_ex_throw_from_c' into : two functions, one that takes C args to build an exception, and one that just : takes an exception object argument. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27599 allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy % Mat1 has joined #parrot allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy allison@perl.org | Concurrency Tasks: link: http://www.perlfoundation.org/parrot/index.cgi?concurrency_tasks dalek's url is at http://xrl.us/bjqpy r27600 | ambs++ | trunk: : runtime/parrot/library/OpenGL.pir - removed a white space diff: http://www.parrotvm.org/svn/parrot/revision?rev=27600 O:-) % iblechbot has joined #parrot % contingencyplan has joined #parrot ambs++ spinclad, lol, I think I need to remove more spaces :-P r27601 | pmichaud++ | p6object: : [p6object]: : * Allow mapping classes (esp. PMC classes) to specific protoobjects. : * Any class 'new' method overrides P6protoobject::new . diff: http://www.parrotvm.org/svn/parrot/revision?rev=27601 % wonko has joined #parrot hi folks i just tried http://www.parrotblog.org/2008/03/targeting-parrot-vm.html however, i ran in an error hello, wonko konstantin@dell-desktop:~/Workspace/parrot/languages/squaak$ make test ../../parrot /home/konstantin/Workspace/parrot/runtime/parrot/library/PGE/Perl6Grammar.pbc \ --output=src/gen_grammar.pir \ src/parser/grammar.pg unable to parse regex at line 186, near "{\n \\\" <" the source in question is: token string_constant { \" \" {*} } yes, the syntax changed a bit. try \" \" we should probably fix this in the repo. too. works, thx ...or not /usr/bin/perl t/harness t/00-sanity....PAST::Compiler can't compile node of type Integer current instr.: 'parrot;PCT::HLLCompiler;panic' pc 158 (src/PCT/HLLCompiler.pir:103) yes, it seems to lead to another error. I'm not sure what that one is -- I'd have to dig a bit further. kjs isn't around or I'd ping him. essentially it means that somewhere in the PAST there's an integer being stored where a PAST node should be r27602 | pmichaud++ | trunk: : [squaak]: : * and subrules need to quote : their arguments. (Reported by wonko++) diff: http://www.parrotvm.org/svn/parrot/revision?rev=27602 i'm not realy that into parrot, yet. but the error seems do be somewhat raised by "$P1 = $P0.'command_line'(args)" well, that's a fairly high-level call. the error would need to be somewhere lower. it's bound to be inside of one of the action methods in src/parser/action.pm er, actions.pm need me to go fix it, or can it wait for kj to take care of it? Tene: if you're up for fixing it that might be good. I don't know how long it will be for kj I'm still planning to write up a languages/abc tutorial (w/particle) purl, nopaste nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://paste.husk.org/ or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or don't bother me while I'm eating yeah, sorry % rgrjr has joined #parrot % braceta has joined #parrot "ambs" at 77.54.92.255 pasted "Make testj under x86/MacOS-X" (475 lines) at http://nopaste.snit.ch/13004 ^^ is that expected? ambs: I don't know. It may be expected -- I don't know that the jit core runs under MacOS yet. % Zaba has joined #parrot r27603 | pmichaud++ | p6object: : [p6object]: : * Add :attr option to 'new_class'. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27603 how can I run a specific test with prove and jit? % Zaba_ has left Zaba_!~zaba@ip102.148.adsl.wplus.ru % Ron_ has joined #parrot % kid51 has joined #parrot I'm not sure. well, looking into other things kid51, close it % Ron has left Ron!rblasch@62-47-186-190.adsl.highway.telekom.at r27604 | fperrad++ | trunk: : [Lua] : - translates last opcodes (upvalues) diff: http://www.parrotvm.org/svn/parrot/revision?rev=27604 % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt ambs: Close which? % lichtkind has left lichtkind!~chatzilla@90.128.73.125 % Theory has joined #parrot % TiMBuS has joined #parrot pmichaud: is there anyway to get rid of the array of single letters here: (27 lines) at http://nopaste.snit.ch/13003 that looks like a bug. afaict, there shouldn't be an array there. I'm not sure why it's putting one there. My first guess is an error in the Perl6Regex parser, that is treating <.foo> as capturing into <> % Ivatar has left Ivatar!~graham@tu055.demon.co.uk Should I have to put a . infront of the sub-sub-rule? I had to do that to get rid of captures now I just have PGE::Grammar captures in the array. yes, if you want to be non-capturing, it's <.alpha> can you file a parrotbug ticket for your nopaste? I'll want to come back and look at that. yep pmichaud: re: Rakudo not being able to use modules from parrot namespace -- is that particular to Rakudo, or actually lacking in PCT? Tene, ambs: thanks for the OpenGL commits japhb: it has entirely to do with deciding how we want to import symbols I'd like to click on that, please. :-) the main issue is: "when rakudo uses a non-Perl 6 module, how does it know what symbols to import?" pdd21 (namespaces pdd) describes an 'export_to' method that supposedly allows a module (namespace, actually) to define what symbols it exports by default, but afaict that's not actually implemented or working anywhere pmichaud: I thought the Parrot namespace design was that the module in question is responsible for interpreting the requested import list japhb: yes, but where to do we the import list from? let's consider the case of SDL * japhb decides to wait and listen for the moment ... suppose a rakudo program wants to make use of the SDL module (written in PIR) (1) what's the Perl 6 syntax for loading the module? (2) how does Rakudo (or Parrot) know where to find that module on disk? % braceta has left #parrot (3) how does the rakudo program specify what symbols to import? (end) Thoughts ... 1) I think that depends on 3) 2+3) It feels to me that each HLL (namespace owner) should register a module loader -- which may default to some basic thing Parrot does, doing what 'load_bytecode' does now. Then the request should be passed through from Perl 6 to the module loader of the HLL the module resides in (module loader) that's a reasonable approach -- I like it. It could even be made part of the compiler object for each HLL. So, just like a URI is opaque past the namespace/protocol token ('http:'), I think a good first concept other-language loads should be opaque past the HLL specifier pmichaud: yes, exactly we still have the question of "how to determine what symbols to import" at present there's not a convention for each module to define its default list of exported symbols that's really what we're lacking at this point. I don't think it's reasonable for every importer to have to specify all of the symbols that it might need from an external module. (it certainly should be able to do so, but it shouldn't have to do so.) Something analogous ... put the import request into either a string or list and pass it through to an exporter for the HLL you're loading from. Any decent HLL should have something equivalent to the "tags" that Perl5 uses in Exporter. But each HLL will probably have a different standard for this, anyway, to answer your earlier question -- PCT and Parrot already have all of the technical pieces need to accomplish this. What we need is to establish the conventions that HLLs will use. (and in rakudo's case, I just need to know the Perl 6 compatible syntax.) so we should be able to say the moral equivalent of 'use ooblex:"{(some_stuff)}";' and the ooblex exporter should interpret "{(some_stuff)}" according to its own rules, and then use the base export_to functionality to export them my suggestion is to take a look at the module syntax in Synopsis 11, and then tell me what the Perl 6 line would be for loading the SDL.pbc module or, more precisely, loading the SDL modules for example... % iblechbot has left iblechbot!~iblechbot@ppp-62-216-200-143.dynamic.mnet-online.de examples/sdl/blue_rect.pl contains an NQP program for loading and exercising the SDL library but the way it currently handles importing is by making explicit calls to Protomaker in Perl 6 I would expect to do something like use SDL::App; use SDL::Rect; use SDL::Color; and automatically receive the SDL::App, SDL::Rect, and SDL::Color definitions imported into my namespace of course, since SDL::App, etc. aren't written in Perl 6, we need to have a :from attribute there Sure, but that's really just 'use SDL::App qw();' and so on, right? thus use SDL::App:from so, the Perl 6 syntax would then seem to be use SDL::App:from ; ??? % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.or.comcast.net That doesn't seem right. OK ... that's the way I read S11. of course, the "standard" way of doing it would be use SDL::App:from; which would import whatever symbols SDL::App has defaulted for export. But we don't have a convention for defining that default list yet (in Parrot). so since we don't have a default list yet, we need to explicitly specify what symbols to import, thus * japhb deletes previous typing, since you just said it use SDL::App:from *or* we need to get all of those non-Perl 6 modules to provide a standard list of symbols to export. All of the needed pieces are there (or can be written fairly quickly) -- I just don't know how to get the export list from a non-p6 module yet. OK, to me there are two parts to this: We could probably define something and start retrofitting the other Parrot components with it. 1. How does a module explicitely say what it wants to export Would implementing the thing where you explicitly list what to import to get us started, and then adding support for getting the default set of imports when we know how to do that? 2. What should the default behavior be in the default Namespace PMC when handed a null export list s/Would/How about/ (explicitly list) yes, I think this would work. What I hadn't figured out yet was what to pass that list to. But I think the correct answer is that we pass it to the HLL compiler. pmichaud: yes. at least for the short term. in Rakudo's case, that would mean that it would need things to map :from to the appropriate HLL handler for 'foo' % bacek has left bacek!~bacek@123-243-38-218.tpgi.com.au (where "HLL handler" is the corresponding hll compiler for the short term) so, I propose compiler.'load_module'(name, 'import'=>list) (default behavior of default Namespace PMC) currently this is specced as existing but is not implemented. I'd vote for this behavior in the default Namespace PMC to be to try to ask the module, either using a well-known global var or well-known function name, and failing that, export all symbols without underscores. But I'm biased, because that's the behavior I'm currently using for OpenGL. (Because we need to specify a behavior for the 'parrot' HLL) I don't think export all symbols is a good approach. It wouldn't work in the SDL::App case I just gave, at any rate. s/underscores/leading underscores/ It's either a simple rule like that, or export-none behavior pmichaud: I guess we could reasonably say that not specifying the import list would get the module to load whatever it considers the default set of imports... I'd say export-none if not specified. pmichaud: I can live with that. oh ho ho eevee@tekkanin:~/dev/parrot/languages/perl6$ ../../parrot perl6.pbc -e 'my @foo = <1 2 3>; say @foo.reduce(sub { $^a + $^b })' 6 jonathan: you may have missed the earlier part -- we don't yet have a convention for "default set of imports" in a module. pmichaud: I'm suggesting it as a possible future convention. right. for PIR modules, I'd prefer a sub that returns a list Eevee: looks like a good choice to implement. s/sub/well-known sub/ mmmm, sub sounds very good now I want some subway Eevee: throw together a patch. :) Tene: chosen for optimal copy/paste-ability from List.grep 8) ....who created .reduce() ? That's.... COOL. pmichaud: me, just now Eevee++ Eevee++ certainly makes implementing things like [+] easier :-) Go Eevee++ do you even need the 'sub'? does grep in rakudo work any way other than @array.grep(sub {})? I tried various other ways of feeding it blocks and the non-method way but nothing else worked pmichaud: oh hey I don't Now someone should get the infix:<+> syntax implemented so we can just write @foo.reduce(infix:<+>) :-) @foo.reduce({ $^a + $^b}) but without the parens it doesn't work And then the reduce operator is just a small matter of syntax transformation. :-) seems like it should work without the parens, as long as there's a space before the { $ ../../parrot perl6.pbc -e 'my @foo = <1 2 3>; say @foo.reduce { $^a + $^b }' Statement not terminated properly at line 1, near "{ $^a + $^" okay, we'll have to look at that. same with grep though there is a lot of similarity with grep here, by some strange coincidence for some reason it's not liking the closure as an argument to @foo.reduce anyway, that's a grammar/syntax bug, undoubtedly. pointy doesn't work either, with or without parens (if I'm correct in thinking it should) Eevee: It should, but parse bug. Try <-> variant of pointy. jonathan: "A signature must not be defined on a sub that uses placeholder vars." Oh, fun. was that hack only for for? no. that's part of Perl 6 Not sure why it thinks there's a signature. I know, I mean when it was fixed in rakudo recently -> $a { ... } gives the closure a signature putting a real signature works -> { ... } should be an unsignatured pointy though? I think it's the same as -> $_ { ... } Ah. (I'd have to re-check the synopsis, though) 'my @foo = <1 2 3>; say @foo.grep(<-> { $_ })' gives me nothing OK, summary of decisions re: imports from foreign HLLs: 1) Each HLL compiler has a module loader that we defer to for loading modules from that HLL; 2) Each HLL compiler has an export interpreter that we defer to for interpreting export lists; 3) PIR modules have a well-known sub that returns the default export list for that module. 4) If it doesn't exist, Namespace assumes no exports. Is that all right? jonathan - did you ever get a chance to look at rakudo's spectest on Win32/MinGW ? oh, salutations all japhb: excellent summary. % Theory has joined #parrot pmichaud: good. OK, I must go AFK. Children terrorizing better half japhb: we'll go with that for now -- it'll be a good start. Tene: will http://pastebin.com/d7ef8b0b7 work or is there some patch secret handshake Limbic_Region: I glanced at it - it appeared to be a similar set of failures, but with a somewhat more noisy way of failing when Parrot exited with a non-zero exit code. r27605 | jkeenan++ | trunk: : languages/c99/src/cpp/t/comment_01.t was missing from MANIFEST, causing : t/manifest/02-regenerate_file.t to fail during 'make fulltest'. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27605 hrm, List.pir has a sub grep but it doesn't seem to work: "Method 'grep' not found for invocant of class 'ResizablePMCArray'" some functions inadvertently return ResizablePMCArray instead of List hopefully this will be fixed when we do .HLL mapping % wonko has left wonko!~konstanti@sd-11.stud.uni-potsdam.de pmichaud: Is .HLL mapping on your list of things you plan to look at? BTW, I have been following what you've been committing in the branch - like the look of it so far. jonathan: yes, .HLL mapping is on my list I'm going to create a branch for .HLL mapping experiments but I wanted to get P6object out of the way first and fix the class definitions in rakudo and probably do mutables and *then* try .HLL because .HLL will depend on a lot of those. pmichaud: OK, sounds good. speakers so loud they blow women's clothing off! yes, I like the way P6object has turned out. I'm going to apply it to PGE and PCT next. pmichaud: Fix class definitions as in...? well, for one, what we have as 'Hash' or 'Perl6Hash' should actually be 'Mapping' :-) Oh, OK. The built-ins. but mainly review the files in src/classes/ and make sure that they're reasonably following the spec I'll also look at the !keyword_hash type stuff -- it doesn't belong in Perl6Object. Yes, that needs a good goiving over. er, !keyword_hash er, !keyword_has (can you tell I've been tying "hash" a few too many times lately? ;-) You sure, it's not because you visited Morrocco? ;-) although, come to think of it, "hash" sounds like it ought to be a unix shell of some sort. :-P we already have sh, csh, ksh, bash, ... fish.. wash.. Here Again SHell I'm surprised there's no yash Home Again SHell or, if it's really small, it's the "Hardly Any SHell" * pmichaud decides not to quit his day job. * jonathan advises working on Rakudo. ;-) * Eevee golfclap my rakudo work seems less visible than jonathan's :-) implementing .* is COOL. implementing prefix:^ is COOL. re-designing the underlying metaobject system.... well, not so visible. :-P That's because you're doing the important stuff and I'm doing the stuff people think is the important stuff. ;-) anything /^meta/ at least sounds cool well, I expect to be doing visible stuff again real soon, if you (and Eevee and japhb and particle and Tene and...) haven't beaten me to it all first :-) yes, most of the stuff I've been doing is trying to make it easier for others to do also :-) I'm very pleased we have lots of new contributors Yeah, it's really good to see. oh, I figured out how to handle 'self' in PCT it's going to be PAST::Var.new( :name('self'), :scope('register') ) Oh, good. I was pondering putting in lexical self support in time for the workshops, but if you have a solution coming I'll hold off. Erm, will this work lexically? no in a Perl 6 method definition, we should have Oh, as a way to get at self And we will assign it to self lexical... yes. exactly. Great. but one will also be able to do Will we be able to do :name('I*') "stick it in an int register" PAST::Var.new( :name('$P0'), .... right. $P0 through $P9 (and $I0 through $I9, $S0 through $S9) are available for use. Will that be enough? oh, I think so. They're only usable within a block I mean, I see using this for implementing the lowercase types like "int" somewhere down the line. oh. Only allowing 9 such variables in a given scope, wouldn't work so well. for that I was thinking of something like I need to think this through more, and I'm not planning it soon, mind. PAST::Var.new( :name('$foo') :scope('register_int')) although I don't like register_int and there's also an issue of dealing with lexical 'int' pmichaud: +1 from me on closing all those old tickets you've spotted. I've closed those about which I have some knowledge/competence, but most of the ones you've tagged in the last hour are outside of my scope. kid51: thanks for closing them. I just wanted a second confirmation, which you provided. We need to have it in an int register and use that in the current scope, and then have a lexical PMC registered which is just a register reference PMC. oh, that could work. I had to do similar for .Net, though it was a bit of a hack and didn't work with closures. It needs a little Parrot guts tweaks. anyway, I was also thinking of things like PAST::Var.new( :name('xyz'), :scope('register'), :isdecl(1) ) which generates .local pmc xyz Doing that and using that would avoid issues of conflicting with register numbers in generated code. I'm also thinking that a single PAST::Var node will explicitly be allowed to appear as children of multiple PAST nodes i.e.: my $reg = PAST::Var.new(...) PAST::Op.new($reg, ...) and later % TiMBuS has left TiMBuS!~Hurf@123-243-167-27.static.tpgi.com.au PAST::Op.new($reg, ...) I can see some :inline(...) in Rakudo going away quite nicely with :scope('register') exactly. That's what made me think of it. also, you should be able to eliminate the "def" (or is it "$def") lexical. I was about to say the exact same. OK, I'm very happy to see this addition. there will also be :scope('root') to be able to get at other HLL namespaces pmichaud++ # spotting common hacks and making a good way to do it Sounds good. speakers so loud they blow women's clothing off! PCT is evolving nicely. yes, I was very pleased at coming up with :scope('register'). This past week has been very good for me to be able to come up with conceptual stuff :-) I'll be pimping it to a load of undergrads who have just done a dynamic languages course next week at Stockholm uni. ooooh, nice. Parrot and especially PCT. another feature I played with for PCT was to be able to mark some symbols as non-volatile Meaning? it has been said that Meaning is in the individual, whether a definition of a word, connotation of a symbol, or impression of a painting. i.e., if a hll or system *knows* that called functions won't be rebinding symbols, then it can flag a block or variable as non-volatile and PCT will re-use registers instead of doing constant find_lex and get_global fetches. Oh, nice. i.e., it'll cache the register for each symbol and re-use it within the PAST::Block * jonathan wonders if we'll actually be able to use this in Perl 6. in Perl 6, probably not... but NQP can use it! True. In Perl 6, only with a good deal of code analysis. We'd certainly put that in a separate optimize stage. correct. no, it's not! purl: yes it is, n00b jonathan: huh? I've tried to get rid of some of those autoreplies from purl, but without success. The sounds good one is the one I need to learn to stop triggering. my itchy triggers is "correct." I already learned to stop saying "morning, all" "you're welcome" or similar tends to illict a less than nice response too... Next week, I'm pondering doing Rakudo day on Wednesday. $other_job could do with my time on Monday for sure, and probably Tuesday too. And on Thursday afternoon I'm heading off to Stockholm for conference stuff. (Lecture and workshop) yes, next weekend we're going on a vacation here (memorial day weekend in U.S.) Ah, OK. Enjoy it! Anywhere nice? Wednesday is likely the best day for me too OK, sounds good. speakers so loud they blow women's clothing off! DAMM! whoops, my reduce() doesn't work for empty list we're going to somewhere called "Fossil Rim". Basically hiking and outdoorsy stuff with the kids. Eevee: That's a tricky one to solve without defining multi-subs, which is what operators do. Maybe just return undef for now. (return undef for now)++ pmichaud: Sounds nice. :-) jonathan: that's what I was going to do that's what the example impl in the spec does anyway in pir, is "undef()" supposed to be "new 'Undef'" now? no. I suggest 'undef'() (for rakudo.) Perl 6 doesn't have an 'Undef' type. just call rakudo's undef() function directly and let it return the proper value. both are used in List.pir but undef() doesn't work incidentally, "say undef()" with parens doesn't work in rakudo oh that's right, rakudo parses undef specially at the moment. pmichaud: There is no undef function $P0 = get_hll_global 'Failure' # is probably OK pmichaud, jonathan, whichever asked: the reason that -> { ... } thinks that a signature is set is that -> *always* binds $?BLOCK_SIGNATURED, regardless of whether there are any parameters. I haven't fixed it yet. It'll take some reworking of that method * Eevee Sandwich.new and yes, S04 seems to indicate that -> { ... $^x ... } is valid fixing pointy block parsing is another of those things on my list of things to get done :-) Also on mine. * jonathan Pivo.new() % AndyA has joined #parrot Eevee: I was showering. Did your patch get committed? svn bot hasn't said anything so I assume not. but give me a sec, fixing for empty list kk jonathan: hm. with get_hll_global 'Failure', "<>.reduce({ ... })" stringifies to 'Failure' whereas rakudo's current undef stringifies to '' (but .WHAT is still Failure) I'll check back in 5. correct, because Failure is the protoobject try $P0 = get_hll_global 'Failure'; $P1 = $P0.'new'() that creates a new Failure object from the proto ah. get_hll_global sounded like it grabbed a singleton or something. okay well, it does grab a singleton... unfortunately it's a singleton protoobject. :-) I don't know if we have a singleton Failure non-protoobject lying about. Perhaps we should. it made sense come to think of it, much of Rakudo is still using Undef so it probably wouldn't hurt to use Undef for now if you prefer that. or even just new 'Failure' (I'm assuming 'Failure' is registered as a class, which it may not be.) so, feel free to just go with new 'Undef' -- and we can fix it later good old "try everything until one works" approach just trying to reduce the amount of fixing-it-later that will be necessary well, there's a fair amount of that no matter what we do at this point. :-) yeah, Failure's not a class. will go with new 'Undef', and change the undef()s in here so at least they work % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net Tene: http://pastebin.com/d5df8ad8d <>.reduce() and <>.pop() work now japhb, pmichaud: look at the Exporter PMC, it was designed for hll exporting, has a flexible, well-defined api, and should be subclassable in c and pir picnic dinner & particle: yes, but afaict Exporter doesn't actually solve the issues I brought up earlier. i.e., it handles the mechanics of exporting symbols, but not the conventions. subclass it to handle the conventions no, that's not the issue. we want more than just export, we also want to be able to load modules. I don't think Exporter should do that. as loading a module is a very hll-specific item. ah, ok. then i suggest a Loader PMC nah, we're just going to make a method on the HLLCompiler object it doesn't need to be in C hllcompiler.'load_module'('name', args) Tene, pmichaud: wouldn't fixing pointy blocks only take this? seems to work without breaking ones with param lists: http://pastebin.com/d3be0b70f Eevee: that's part of it. Rakudo has an issue that it sometimes confuses -> with prefix:- i.e., it's also a parsing issue. well, at least the problem with -> { foo($_) } really gone & later, enjoy picnic! $ ../../parrot perl6.pbc -e 'say <1 2 3>.grep(<-> { $_ % 2 })' 13 * pmichaud has a soccer game in 40 mins. * jonathan has bed in less than that and laptop is out of power. later, all. seeya Eevee: looks like that's at least a big part of it. I'll commit that and then look at reduce and pop thanks * jonathan sleeps night all Man, typing is weird when my fingers are all sticky. My girl had me helping her with some craft project and now my hands are covered with some weird adhesive. is it that spray adhesive? nah, some weird sticky wax. ... why am I compiling on the slow box? * davidfetter finds this a strange juxtaposition, but probably because he thinks of ski- and other lubricating waxes Tene: dramatic effect? Eevee: another simple patch would be adding an optional test param to List::uniq % kid51 has left kid51!~jkeen@pool-68-237-16-164.ny325.east.verizon.net ah, will have a look r27606 | tene++ | trunk: : [rakudo] : * Pointy blocks no longer set a signature when there are no params. : * List::reduce : * Eevee++ diff: http://www.parrotvm.org/svn/parrot/revision?rev=27606 woo, I am useful That should be a pretty trivial patch, I was just too lazy to look up the optional param syntax stuff % Ron_ has left Ron_!rblasch@62-47-182-127.adsl.highway.telekom.at % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk % rdice has joined #parrot Eevee: tests for this stuff would be good too. quite. I have pugs commit access ah, there's already a reduce.t, it just doesn't parse % Andy has joined #parrot % braceta has joined #parrot % braceta has left braceta!~Braceta@78.130.8.99 Eevee: reduce the parse fail to a minimal example and then show me (or fix it yourself if you'd like :) it's at the colon in 'reduce { ... }: @array' which I assume is more of a "not done" than "broken" % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net % Theory has joined #parrot I'm not sure exactly what that is. one of the weird invocant syntaxes? yeah, indirect object syntax. method $obj: @args; why it's written to use the *block* as the object, I don't know % bacek has joined #parrot Yeah, that looks suspicious to me, unless blocks have a reduce method too. Or, is MMD relevant? Is MMD insensitive to the order of arguments? are multi sub t ( Foo $x, Bar $y ) { ... } multi sub t ( Bar $x, Foo $y ) { ... } different? different is probably good purl: forget different Tene: I forgot different hm, I don't know. I would think so Yeah, that would surprise me too. http://perlcabal.org/syn/S06.html#Invocant_parameters third set of code examples.. rationale might be reduce {...}: @array -> {...}.reduce(@array) -> reduce({...}, @array) or maybe colon really does reduce to comma if indirect syntax doesn't work this test also has "{ ... }.reduce: @array" Yeah, that looks like blocks have a reduce method too. If so, those should be in their own test. refactoring! refactoring is http://st-www.cs.uiuc.edu/users/brant/Refactory/ or http://st-www.cs.uiuc.edu/~droberts/tapos/TAPOS.htm or http://www.awl.com/cseng/titles/0-201-89542-0/techniques/refactoring.htm or Martin Fowler and http://www.refactoring.com/ or what you put on your time card when you're really on IRC. or http://search.cpan.org/~swalters/Object-PerlDesignPatterns-0.03/PerlDesignPatterns.pm or gives you a fuzzy feeling if so, it's not in the spec also having three different reduce()s is possibly a bit overboard actually, List::uniq isn't in S29 either "The colon is just a special form of the comma, and has the same precedence" "{ ... }.reduce: @array" still doesn't make sense then $obj.method, @args? That's a different kind of colon. :) foo: ... is the same as foo( ... ) aha, no method calls without parens? right parens or : okay, that makes a bit more sense then Oh, you didn't create the sub form of reduce in that patch. Where's 'reduce' specced? Ah, S29 http://perlcabal.org/syn/S29.html#reduce yes so yes needs a sub form % rdice has left rdice!~richarddi@CPE001ff33cb98b-CM00159a01d44c.cpe.net.cable.rogers.com the sub form takes Code first. and the invocant form first tries method dispatch and if that doesn't work, looks for a normal sub so it doesn't need to be a Code method. right: rationale might be reduce {...}: @array -> {...}.reduce(@array) -> reduce({...}, @array) Right. Do you have any particular desire to write the sub version, or should i just do it? just wasn't sure if the syntax was meant to chain like that According to S06, it is. it's trivial, so probably easier for you if you write it Hm. If it's slurpy, it won't be a List. oh, wait. will it be a ResizeablePMCArray? yeah sub grep and some others don't work for the same reason mentioned it earlier, and: hopefully this will be fixed when we do .HLL mapping r27607 | tene++ | trunk: : [rakudo] : * sub form of reduce diff: http://www.parrotvm.org/svn/parrot/revision?rev=27607 For now we could manually construct a List from the resizablepmcarray call constructor, that is anyway, dinner now. r27608 | rgrjr++ | trunk: : [DOCS] : * docs/pdds/draft/pdd19_pir.pod: : + Expand the documentation of :immediate by hijacking the revcomp.pir : example, which illustrates a hidden feature. Expand :postcomp : slightly to match. : + Also refine the descriptions of :main, :init, and :load. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27608 okay, think I've played with rakudo enough for the moment.. doctor who taking priority sweet nopaste? rumour has it nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://paste.husk.org/ or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or don't bother me while I'm eating * japhb can't wait for the next season of Dr. Who to come out on DVD ... % b2gills has left #parrot hi there hello. I've got another stupid question: why 'cmp pmc1, pmc2' always returns -1? % bacek has left bacek!~bacek@123-243-38-218.tpgi.com.au % bacek has joined #parrot hello. I've got another stupid question: why 'cmp pmc1, pmc2' always returns -1? oops. sorry for spam... % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net it depends on what pmc1 and pmc2 are easy way to construct a List is to call list() * particle wishes he had more time this weekend for rakudo, but building a deck takes lots of time... movie night & % Psyche^ has joined #parrot I'm spending lots of time on it this weekend, but wish I had more. time is definitely my number one blocker at the moment. Either that or coding speed. % Patterner has left Patterner!~Psyche@e177239066.adsl.alicedsl.de % Psyche^ is now known as Patterner particle: "a deck"? % tetragon has left tetragon!~seneca@CPE0040d001f62f-CM000a736592a8.cpe.net.cable.rogers.com r27609 | pmichaud++ | p6object: : [p6object]: : * Add P6object.pbc into root makefile. : * Set properties on files. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27609 r27610 | pmichaud++ | p6object: : [p6object]: : * Have p6object.t load P6object.pbc instead of P6object.pir. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27610 r27611 | pmichaud++ | p6object: : [p6object]: : * Add some documentation to P6object.pir . diff: http://www.parrotvm.org/svn/parrot/revision?rev=27611 Good evening. How did the bug hunt go? good for me -- I found a few and got them closed. mostly I've been doing devel work today, though. looks like bernhard and fperrad have been busy updating plumhead and lua too (reading the log now) And I have to say that I'm always amazed and very happy when I see chromatic do something like "16.23% improvement in the Rakudo-building benchmark" chromatic++ chromatic++ I'm surprised at how much GC is a factor. really? Why's that? I knew GC was a factor -- I just didn't think it was as big as it's turning out to be. I mean, when a 3-line change results in a 20% speed improvement... well, something's weird there. :-) GC is pervasive; seems to me like it would be the biggest factor. yeah, I suppose so. anyway, I agree. chromatic++ actually, I'm quite pleased and impressed with all of the contributors we've had recently Jonathan++ is amazing too :) It's been very good to see things like .* implemented, and placeholder vars and Eevee's recent contribution of .reduce was a very pleasant surprise heh, I was just looking at that When's the next release? Tuesday. i think tuesday is pick-on-purl day or ask us to give you the syntax of perldoc -f day or http://us.imdb.com/Title?0064471 or little-tolerance-for-stupidness day or devoice dynweb at will day or love masque day or random body mods day or I'll-use-colloquialisms-if-I-wanna day or FAQ day. But then so is every other day. or overbearing sexual reference day. (NO, not SOFT references.) or homoerotica day or see tuesday2 % sjansen has left sjansen!~sjansen@75-169-131-15.slkc.qwest.net pm: What else have you been up to lately? And what's this Solstice framework I see you're talking about at yapc? :) I've been mainly rakudo and parrot hacking all week. and begrudging sleep because it takes away from my rakudo and parrot hacking. other than that, just planning trips and vacations. It's going to be a very busy summer. :-) and Solstice isn't me (but I think you knew that). oooh, one week to get my YAPC::EU submission in :-) .....30 minutes?!?!? how am I supposed to do a talk in just 30 minutes? talk real fast maybe I'll do talks as part 1, part 2, etc :-) You could do a mix of Bob Dylan and the Takahashi method of presentation. You wouldn't even have to speak, just flip through slides. Dr. Seuss might be funnier though :) r27612 | pmichaud++ | p6object: : [p6object]: : * Allow new_class method to create classes with multiple parent classes. diff: http://www.parrotvm.org/svn/parrot/revision?rev=27612 found another bug. :-) I thought bug day was about squashing them, not finding them :) it's both. :-) but I'm working on something else at the moment, so I'll just file my ticket and move on. hmm. interesting. "git svn rebase" says it's up to date, but I've only got to r27608 3 2 1 0 * (whatever.) -Inf % jan has left jan!~chatzilla@89-253-66-101.customers.ownit.se okay, I have to know purl, tuesday2? tuesday2 is Beat-the-fuck-out-of-{coworker,client}-day or kick Yaakov day or not kick dynweb day or free pr0n day and a thrilling conclusion. good to know not everything that happens on tuesday is terrible purl, tuesday is also #parrotsketch day. that is too long, pmichaud aha. tuesday is also too long, apparently. I was about to say you should add that to tuesday but tuesday is too long.. so you'd have to add it to tuesday2.. and then it would be wrong.. I guess purl has outsmarted us once again. argggh. I really want to stay up and code more, but I'm falling asleep. :-( guess I'd better sleep -- sleepy code is often not good code. pm: nap, get up early and code some more. I pretty much need to dedicate tomorrow to finishing grading for my classes. * spinclad just relieved purl of 'correct.' and 'sounds good.' responses. key was 'forget correct. ' <- the final space. really? excellent! * pmichaud tests. correct. yay!!!!! * purl beats pmichaud to a pulp 05:50 I guess purl has outsmarted us once again. spinclad, thanks a lot for finding that. It's been bugging me and jonathan (as you undoubtedly saw) okay, time for sleep. be back tomorrow sometime night % Zaba_ has joined #parrot % Zaba has left Zaba!~zaba@ip102.148.adsl.wplus.ru pmichaud, my pleasure. been bugging me a lot, too. (and now that i'm caught up to thistime): .oO { PAST::Var.new( :name('xyz'), :scope('register'), :register_class('int'), :isdecl(1) ) # generates C< .local int xyz > } Oo. % Mat1 has left Mat1!~matthew@S01060004e2f8e6e8.no.shawcable.net % Andy has left Andy!~Andy@64.81.227.163 % IllvilJa has joined #parrot