Camelia, the Perl 6 bug

IRC log for #parrot, 2010-05-13

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 darbelo I'm a fan of U+2022 myself.
00:02 dalek parrot: r46551 | darbelo++ | branches/ops_pct/compilers/opsc/Defines.mak:
00:02 dalek parrot: [Makefile] Cleanup leftover pbc file.
00:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46551/
00:02 dalek parrot: r46552 | darbelo++ | branches/ops_pct/compilers/opsc/Rules.mak:
00:02 dalek parrot: [Makefile] Replace long paths with shorter variable names.
00:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46552/
00:02 dalek parrot: r46553 | darbelo++ | branches/ops_pct (3 files):
00:02 dalek parrot: [opsc] Move opsc tests into the regular test harness.
00:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46553/
00:02 nopaste "pmichaud" at 192.168.1.3 pasted "...known change between Parrot 1.4.0 and Parrot 2.0.0 ?" (39 lines) at http://nopaste.snit.ch/20540
00:03 pmichaud anyone aware of the change illustrated by nopaste #20540?  was it intentional?
00:03 pmichaud (I just got bitten by it when working on PCT/POST)
00:03 bacek_at_work looks like a bug introduced in pcc_refactor
00:04 pmichaud it might need a deprecation cycle to fix.
00:04 cotto darbelo++ for the opsc cleanup
00:05 * pmichaud files a TT
00:10 darbelo cotto: And there's more!
00:10 joeri joined #parrot
00:11 cotto I happy and a little bit embarrassed.
00:16 bacek_at_work interesting... trunk is still slower than codestring branch...
00:16 pmichaud some slowness may be due to some items being moved from C to PIR
00:17 pmichaud we'd need to bench mark that a bit
00:18 bacek_at_work Do we need to update nqp-rx to use StringBuilder?
00:18 bacek_at_work looks like no. Only one line - "%r = new ['CodeString'] }.charname_to_ord( ~$/ )" which can be moved to use find_codepoint op
00:20 Andy joined #parrot
00:23 darbelo I'd totally hate git-svn if it weren't for the blatant history rewriting it allows me to do ;)
00:24 sorear bacek_at_work: is there any reason to suppose that CodeString.get_string might be slower than String.get_string at this point?
00:26 bacek_at_work sorear, unlikely. CodeString is-a String and inherit it.
00:26 pmichaud CodeString.get_string was significantly slower in the codestring branch for a while
00:26 pmichaud but in trunk, it shouldn't be slower
00:27 cotto Coke, ping
00:27 dalek TT #1630 created by pmichaud++: null arguments automatically coerce to empty strings
00:27 dalek TT #1630: http://trac.parrot.org/parrot/ticket/1630
00:27 * sorear wanders off to hack on NQP-based REPL
00:32 pmichaud looks like a s/CodeString/StringBuilder/ was missed in POST::Compiler
00:33 pmichaud 00:11 <cotto> I happy and a little bit embarrassed.
00:33 pmichaud oops
00:33 pmichaud wrong paste
00:33 pmichaud .local pmc innerpir, line
00:33 pmichaud innerpir = new 'CodeString'
00:33 pmichaud .lex '$CODE', innerpir
00:33 pmichaud that's probably why trunk+stringbuffer is still slower than codestring branch
00:34 pmichaud er, trunk+stringbuilder
00:36 bacek_at_work pmichaud, another one on line 237.
00:38 pmichaud ah yes, that one also.  (I wasn't fixing those yet)
00:38 pmichaud weird though that they never get used with .emit
00:39 pmichaud they might be concatenated a lot, though
00:39 pmichaud wouldn't surprise me if we end up concatenating a bunch of StringBuilder objects into CodeStrings
00:39 bacek_at_work Yes.
00:39 bacek_at_work Much better now.
00:40 bacek_at_work committing
00:42 pmichaud I've locally eliminated the last CodeString in POST::Node
00:43 bacek_at_work ship it! :)
00:43 pmichaud testing now
00:47 abqar joined #parrot
00:49 bacek_at_work pmichaud, can we merge subpir/innerpir in POST::Compiler?
00:49 pmichaud not easily
00:50 sorear I like how short NQP's pir output is.
00:50 pmichaud they're kept separate because it's extremely important to preserve the ordering of subs
00:50 sorear Quite nice after trying to debug Rakudo ;)
00:50 darbelo cotto: Okay, r46555 is the last of it. The ops_pct branch is now certified dumb-make ready and the makefiles are about as clean as they can get.
00:51 darbelo Also, I reorganized the tree a bit to make it more similar to the other compilers.
00:51 dalek parrot: r46554 | pmichaud++ | trunk/compilers/pct/src/POST/Compiler.pir:
00:51 dalek parrot: [pct]:  Switch POST::Compiler to have its own key_pir instead of CodeString.key
00:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46554/
00:51 dalek parrot: r46555 | darbelo++ | branches/ops_pct (2 files):
00:51 dalek parrot: Move compilers/opsc/t to t/compilers/opsc for consistency with other compilers.
00:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46555/
00:51 dalek parrot: r46556 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
00:51 dalek parrot: [pct]:  Switch PAST::Compiler to use POST::Compiler.key_pir instead of CodeString.key.
00:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46556/
00:51 dalek parrot: r46557 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
00:51 dalek parrot: [pct]:  Remove obsolete %!codestring global.
00:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46557/
00:52 dalek parrot: r46558 | darbelo++ | branches/ops_pct/compilers/opsc/Rules.mak:
00:52 dalek parrot: [Makefile] Remove help for nonexistant opsc-specific targets.
00:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46558/
00:52 dalek parrot: r46559 | bacek++ | trunk/compilers/pct/src/POST/Compiler.pir:
00:52 dalek parrot: Replace two more usage of CodeString with StringBuilder in POST::Compiler. pmichaud++
00:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46559/
00:52 darbelo Oh, my bad. r46558 is the last of it.
00:53 cotto nice
00:53 cotto darbelo++
00:53 bacek_at_work nice, darbelo++
00:54 darbelo And now (for something completely different) I'm going to get some food and then sleep.
00:54 cotto now to make ops2c.nqp less ugly and hackish (or more, then less)
00:55 sorear hey
00:55 sorear NQP is smart enough to not make a block for if $y { $x.y($y) }
00:55 sorear who did that?
00:55 pmichaud I think r46561 is the last of my codestring-related changes to PCT for a bit
00:55 pmichaud me, I think.  :)
01:07 sorear pmichaud++
01:08 cotto Hmmmm.  Not reading ops.num and ops.skip speeds up dynop generation significantly.
01:09 dalek parrot: r46560 | pmichaud++ | trunk/compilers/pct/src/POST/Node.pir:
01:09 dalek parrot: [pct]:  Remove CodeString from POST::Node.
01:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46560/
01:09 dalek parrot: r46561 | pmichaud++ | trunk/compilers/pct/src/POST/Compiler.pir:
01:09 dalek parrot: [pct]:  Put newlines directly into the fmt strings of POST::Compiler, instead of always appending newline.
01:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46561/
01:14 theory joined #parrot
01:16 tcurtis bacek_at_work, I noticed a number of explicit return statements in Functional.pm, Hash.pm, etc. Is "return $foo" not implemented with exceptions any longer?
01:20 ewilhelm joined #parrot
01:20 ewilhelm left #parrot
01:25 dalek parrot: r46562 | cotto++ | branches/ops_pct/MANIFEST:
01:25 dalek parrot: manifest update
01:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46562/
01:29 * cotto finds Getopb::Obj and is happy
01:32 seatek joined #parrot
01:39 bacek_at_work tcurtis, hmm. I dunno.
01:41 tcurtis It still is in the version that's included in parrot trunk. I'm about to check with your repo.
01:42 dalek parrot: r46563 | cotto++ | branches/ops_pct/compilers/opsc (3 files):
01:42 dalek parrot: [opsc] only read ops.num and ops.skip for core ops
01:42 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46563/
01:42 dalek parrot: r46564 | NotFound++ | trunk/src/string/charset/ascii.c:
01:42 dalek parrot: simplify mixed_cs_index
01:42 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46564/
01:43 rurban_ joined #parrot
01:43 tcurtis Very unscientific benchmarks suggest that "1;" at the end of a sub is approximately 50% less slow than "return 1;"
01:44 snarkyboojum joined #parrot
01:45 sorear How do you spell an exit-in-the-middle loop in NQP?
01:48 tcurtis bacek_at_work, the result is: "new $P16, "Exception"
01:48 tcurtis set $P16['type'], 57
01:48 tcurtis new $P17, "Integer"
01:48 tcurtis assign $P17, 1
01:48 tcurtis setattribute $P16, 'payload', $P17
01:50 tcurtis throw $P16"
01:56 * sorear feels like a decompiler
01:57 cotto What's $P0 = new ['Foo';'buz'] in nqp?
01:58 sorear pir::new__PP(<Foo buz>)
01:59 cotto Thanks❣
02:01 cotto nm☠
02:01 cotto doesn't work
02:01 purl Look buddy, doesn't work is a strong statement. Does it sit on the couch all day? Is it making faces at you? Does it want more money? Is it sleeping with your girlfriend? Please be specific!
02:02 cotto It's sitting across from me, just staring vacantly into space.
02:02 sorear Q:PIR { new ['Foo';'buz'] } then :/
02:02 cotto when in doubt, drop to pir
02:03 sorear Foo::buz.new will also work if it's a NQP class
02:05 pmichaud NQP doesn't have 'last' yet, iirc
02:06 pmichaud tcurtis: you're correct, it's better to not use explicit return
02:06 pmichaud fall-off-the-end semantics are much more efficient (at the moment?)
02:06 pmichaud cotto: see my earlier comment about the difficulty of generating keys in PIR :-|
02:08 pmichaud I've been thinking that the pir:: syntax might need a __K component for keys, though.
02:09 pmichaud but it's icky to handle.
02:09 * pmichaud tests latest parrot trunk with nqp-rx
02:12 sorear pmichaud: How do I write :flat :named in NQP-rx?
02:13 pmichaud I don't think there's a way to do it yet.  Eventually it'd be the same as the p6 syntax -- |%hash or something like that
02:13 pmichaud although it's possible that |%hash works arleady
02:14 pmichaud try looking at the tests in t/nqp and see if there's an example
02:14 pmichaud looks like |@a works
02:14 pmichaud don't see a |%h  version yet, though :-|
02:15 pmichaud nqp tends to want to wait until it's needed before implementing a feature
02:15 * sorear is still hung up trying to decompile 'interactive'
02:15 sorear maybe I should add |%h?
02:15 pmichaud sure, that could work.  See if you can find how |@a is done and go with it
02:15 dalek parrot: r46565 | mikehh++ | trunk/t/codingstd/pod_todo.t:
02:15 dalek parrot: remove TODO from passing test - no more 'todo', 'fixme' or 'XXX' items
02:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46565/
02:16 pmichaud I see in src/NQP/Grammar.pm:  token prefix:sym<|>   { <sym>  <O('%symbolic_unary')> }
02:16 pmichaud so the parsing it there -- it's just getting the action correct
02:17 pmichaud hmm, I don't like how that's done.
02:17 * pmichaud checks 'blame' to see who did it
02:19 pmichaud looks like it was some noobie named 'pmichaud'
02:19 mikehh pmichaud: :-}
02:20 pmichaud I think I'd prefer to see a method prefix:<|>()  action that handles flattening instead of having it done inside of method arglist()
02:20 pmichaud that method could then check its argument to see if it's a hash variable
02:21 pmichaud and add the :named flag to the node as well as the :flat
02:21 sorear I don't have enough PAST::Fu to implement that.
02:22 pmichaud the other way to do it is after the line that says
02:22 pmichaud +            $past[$i].flat(1);
02:22 sorear (Maybe I do?  But only at the cost of being able to make invalid PAST.)
02:22 pmichaud check to see if $past[$i] is in fact a PAST::Var node and that its name starts with '%'
02:22 pmichaud something like...
02:22 purl something like what, pmichaud?
02:23 sorear How do I spell 'isa'?
02:24 eternaleye joined #parrot
02:25 pmichaud if $past[$i].isa(PAST::Val)
02:25 pmichaud && pir::substr($past[$i].name, 0, 1) eq '%' {
02:25 pmichaud $past[$i].named(1);
02:25 pmichaud }
02:25 pmichaud might work.
02:26 sorear Val?
02:26 sorear Really?
02:27 pmichaud might be more efficient to bind $past[$i] somewhere to avoid repeating the subscript at each operation, too.  :-)
02:27 purl Val is, like, updated in accordance with the sign of val
02:27 pmichaud sorry, Var
02:27 pmichaud typo here  (busy trying to book a bunch of airline tickets in another window )
02:27 pmichaud and... afk for a bit again
02:28 JimmyZ joined #parrot
02:35 tetragon joined #parrot
02:39 dalek nqp-rx: 458dbfe | sorear++ |  (2 files):
02:39 dalek nqp-rx: Implement :flat :named (|%hash)
02:39 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/4​58dbfebbba4fd729cea616a0a8a69811e6d8fbe
02:43 sorear tcurtis: Is "Exception thrown and caught in the same function" on the list?  It probably should be
02:47 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33808), fulltest) at r46566 - Ubuntu 10.04 amd64 (g++)
02:48 dalek parrot: r46566 | mikehh++ | trunk/t/codingstd/pod_todo.t:
02:48 dalek parrot: well that did not work - can't see how I got it to pass
02:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46566/
02:51 sorear pmichaud: for implementing loop control ops, should I generate primitive PAST for them, or would you rather see me add new pasttypes?
02:52 tcurtis sorear, are you referring to NQP-like build exception, throw, catch, immediately return? Or more general throwing and catching in the same function? Also, I'm assuming "the list" is the list of things that I should write optimizations for during GSoC?
02:53 sorear tcurtis: The list of things that you should consider for optimizability - whether you get to all of them is not certain
02:53 eternaleye joined #parrot
02:53 sorear and yes; control exceptions are the main use case
02:56 PerlJam sorear: how do your loop control ops differ from exceptions?
02:57 sorear PerlJam: the loop control ops would work by throwing exceptions, just as the return op does now
02:57 PerlJam so, why the abstraction?
02:58 sorear paranoia
02:58 purl Just because the worst scenario isn't the most likely doesn't mean you have to ignore it.
02:58 PerlJam I don't understand the paranoia
03:00 janus joined #parrot
03:01 pmichaud I'd prefer to keep the PAST node types smallish.
03:01 plobsing joined #parrot
03:01 pmichaud so I'd say that we generate primitive past for them.
03:02 sorear What's the best phrasing of PAST for throwing a control exception?
03:02 sorear inline?
03:02 purl Inline melted Schuyler_'s braaaaane! or the Dog's Banana
03:02 pmichaud PAST::Op, likely
03:02 pmichaud :pirop<throw>
03:02 sorear PerlJam: Me not being able to second-guess pmichaud, mostly
03:02 pmichaud looking
03:03 pmichaud PAST and NQP tend to want to remain small and simple
03:03 sorear ok
03:03 sorear how do I write control exception numbers?
03:04 sorear Q:PIR{.include "except_types.pasm"}  ?
03:04 pmichaud there's not a good symbolic way to do that yet
03:04 pmichaud lookin.
03:04 pmichaud looking
03:04 sorear the PIR for this is
03:04 sorear $Punique = new "Exception"
03:05 sorear $Punique['type'] = 56
03:05 sorear throw $Punique
03:05 sorear what does that look like in PAST?
03:05 sorear I suppose I'll need to introduce a variable
03:05 pmichaud no
03:05 pmichaud not at all
03:05 pmichaud writing
03:06 pmichaud oh, wait, might need one, yes.
03:07 pmichaud eh, feel free to just use :inline for now :)
03:07 sorear How do I get $Punique and 56 in :inline?
03:07 sorear Oh wait
03:07 pmichaud %r gives you a unique register
03:08 sorear this is ... AN EXPRESSION
03:08 pmichaud but you can also use $P0...$P9 with impunity
03:08 pmichaud in NQP it'll have to be a statement, just like 'return' is a statement.
03:08 pmichaud we can't implement 'next' and 'last' as functions
03:08 sorear text here ' ~ Q:PIR{ %r = .CONTROL_NEXT } ~ ' go on
03:08 sorear that's what I meant by expression
03:09 sorear half of my brain was thinking in terms of Q:PIR{}, which you obviously can't build at run time
03:09 pmichaud no
03:09 pmichaud you can do  .include  and .CONTROL_NEXT directly in the :inline
03:10 pmichaud (not necessarily pretty, but it can work, and it's more robust as well)
03:10 sorear wouldn't that be ridiculously slow?
03:11 Coke darbelo: I think the branch has a few tests that trunk doesn't have at this point, that's it.
03:11 pmichaud in what way?
03:11 pmichaud (I don't disagree, I just want to know which 'slow' part you're referring to :)
03:12 sorear pmichaud: opening except_types.pasm each time a loop control directive appears in the input
03:12 pmichaud it's a compile-time thing, probably isn't that slow.
03:13 pmichaud I've been thinking of ways to get PIR directives into PAST/POST, though.
03:13 pmichaud i.e., so that we could easily add them once at the beginning of the unit
03:14 * sorear thinks about testing
03:14 pmichaud haven't come up with much that I like yet (but also got sidetracked quickly wheN I worked on it last)
03:14 Coke cotto: yes?
03:16 pmichaud I've thought a little bit about adding a few runtime functions into PCT or HLL::Compiler, though.
03:16 pmichaud then it could be made to act like a function -- i.e.  HLL::Compiler::next()
03:16 cotto Coke, how involved is adminning parrot.org?
03:17 pmichaud or even just into the HLL namespace.
03:17 pmichaud HLL::next()
03:17 pmichaud HLL::last()
03:17 pmichaud etc.
03:17 Coke cotto: ETOOVAGUE
03:17 Coke most of my day to day pain is discard mail spam
03:17 pmichaud the downside of that approach is that it requires loading a compiler object which some libraries (that want to use 'last') might not need loaded otherwise
03:18 pmichaud so, I think perhaps not.
03:18 Coke next on the list? opening tickets for OSUOSL.
03:18 cotto sounds fairly light
03:18 * sorear isn't going to test all combinations of loop control / loop "that's PCT's job"
03:19 sorear hmm
03:19 pmichaud maybe a pasm:: namespace that makes it easy to get at the standard pasm constants.
03:20 pmichaud e.g.   pasm::CONTROL_BREAK
03:20 sorear why must next/last/redo be statements?
03:20 bacek_at_work .oO( There is control exceptions in kakapo already, afaik )
03:20 pmichaud sorear: well, you could try to specifically test for them as individual function names, I suppose.
03:20 pmichaud but currently functions require parens
03:21 pmichaud so someone who writes     for ... {   last;  }     is going to be a bit disappointed
03:21 pmichaud it would need to be last()   intead.
03:21 pmichaud *instead
03:21 Coke cotto: Why do you ask?
03:21 sorear pmichaud: I have them in the prefix:<> category because I decided to use 'return' as my prototype
03:21 sorear er wait
03:21 pmichaud oh, yes, they can be prefix operators
03:21 sorear THEY DON'T TAKE ARGUMENTS
03:22 pmichaud whatever 'return' and 'make' use is probably good enough.
03:22 pmichaud term:sym<last>  then.
03:22 pmichaud (in Perl 6, they take arguments :-)
03:23 pmichaud (in Perl 6, they _can_ take arguments :-)
03:23 sorear perl 6 has a much more ... interesting ... grammar
03:24 pmichaud yes... nqp strives for a bit of simplicity, but gives up some expressiveness in the process
03:25 sorear Confused at line 12, near "ok($runs ="
03:25 pmichaud hmmm.
03:25 sorear I think it would be very awesome if this error message could be improved somehow.
03:25 * sorear fires up the --parsetrace
03:26 pmichaud I might be willing to let :pasttype<return>  accept other exception types
03:26 sorear actually, it's time travel
03:26 sorear the error occurred at the END of line 12
03:27 sorear normally, leaving off semicolons makes future statements not parse
03:27 sorear in NQP?  Previous ones!
03:28 pmichaud then the exception throw would simply be   PAST::Op.new( :pasttype<return>, :extype(52) )   or something like that
03:28 pmichaud would like a better name than :extype, and a better way to specify the exception numbers.
03:29 pmichaud the last/next/redo exceptions could then even provide a payload of some sort
03:29 pmichaud sorear: what was the original statement that gave the error?
03:29 dalek nqp-rx: f5f582d | sorear++ |  (3 files):
03:29 dalek nqp-rx: Basic loop control (next/last/redo terms)
03:29 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/f​5f582d2d87cea6218cf454d125e27e6eb8f2e0f
03:30 sorear pmichaud: ok($runs == 3, "break works in while")
03:30 sorear $S1 = substr $S0, -1, 1
03:30 sorear $I0 = is_cclass .CCLASS_NEWLINE, $S1, 0
03:30 sorear hmm.
03:30 sorear how to decompile this.
03:31 pmichaud terms definitely do not belong at %list_prefix precedence, though.
03:32 sorear er
03:32 sorear Oops.
03:32 sorear Change-my-mind-o
03:33 sorear what's \s ?
03:33 purl \ is probably one byte.  you need \ or \ or something.
03:33 pmichaud .CCLASS_WHITESPACE, iirc
03:33 LoganLK joined #parrot
03:34 pmichaud sorear++  # |%hash in NQP
03:38 * pmichaud updates http://wiki.github.com/perl6/nqp-rx/requests
03:39 sorear Hey, I should add my TODO list to that.
03:40 sorear ...although, to be honest, I just knocked down about half of it.
03:41 dalek nqp-rx: 379f1b2 | sorear++ | src/NQP/Grammar.pm:
03:41 dalek nqp-rx: Fix a typo (pmichaud++)
03:41 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/3​79f1b2d4f58e17ad51dfdf3748aaa57a0547fe9
03:41 sorear or I'll bounce them here first
03:42 sorear - @*ARGS
03:43 sorear - {$foo} in Q:PIR interpolates as the register number - no more find_lex
03:43 sorear - hash literals
03:44 sorear - pirflags on subs with traity syntax (method foo() is vtable("bar") { ... })
03:44 pmichaud for {$foo}, there'd still have to be a find_lex somewhere.
03:44 pmichaud maybe not in the Q:PIR source itself, but in whatever Q:PIR causes to be generated
03:45 sorear - signature-ish binding, so I can do the equivalent of foo :named :flat = "some_function"()
03:45 pmichaud yes, I've been wanting to add   "is vtable('bar')"  for a while also
03:45 sorear pmichaud: not after tcurtis is done
03:46 pmichaud oh?  how would that work?
03:46 pmichaud do a find_lex at the beginning of a sub and use the register number?
03:46 pmichaud that will fail if the lexical gets rebound somewhere with a store_lex
03:46 sorear I don't know all the details, but it's the #1 thing I'm hoping to see from the local optimization work
03:46 sorear Oh?
03:47 pmichaud yes.
03:47 sorear .lex $P17, "$foo"
03:47 sorear store_lex "$foo", $P23
03:47 pmichaud that works only in the block that declares the lexical.
03:47 sorear are you saying that's not equivalent to $P17 = $P23 ?
03:47 pmichaud it doesn't work in any nested scopes.
03:47 sorear ah
03:47 pmichaud in a nested block, there's no $P17
03:47 sorear well, still, same-block optimization would be a huge win
03:47 pmichaud I don't know about 'huge', but it could be a bit of a win.
03:48 sorear especially if we can also elide immediate blocks in if et al
03:48 pmichaud that helps a bit, yes.
03:53 sorear current instr.: 'parrot;HLL;Compiler;_block311' pc 21362 (gen/hllcompiler.pir:135273808)
03:53 sorear really?
03:53 brooksbp joined #parrot
03:53 sorear oh, that's why last isn't working in HLL/Compiler.pm
03:54 sorear I need to bootstrap
03:54 pmichaud no, it should bootstrap okay already
03:54 pmichaud oh wait, you're right.
03:54 pmichaud you'll need to bootstrap 'last' into nqp before HLL/Compiler.pm can use it.
03:57 sorear no, the actual problem was that I forgot to git merge master
03:58 sorear the nqp tree I was building didn't even HAVE last
03:58 cotto Getopt::Obj makes me feel like Italian food
04:00 pmichaud only one CodeString left in nqp-rx :-)
04:00 pmichaud time to move .lineof around a bit
04:01 * cotto points darbelo at runtime/parrot/library/Getopt/Obj.pir and hopes for the best
04:01 cotto ;)
04:01 sorear ok.  I have 'interactive' decompiled.
04:03 dalek nqp-rx: c5482a9 | pmichaud++ |  (2 files):
04:03 dalek nqp-rx: Switch HLL::Actions to use find_codepoint opcode, bump PARROT_REVISION.
04:03 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​5482a92b82ba3765624acc1397e58708bc16a77
04:27 dalek parrot: r46567 | cotto++ | branches/ops_pct (2 files):
04:27 dalek parrot: [getopt] add support for '--foo buz' args
04:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46567/
04:27 dalek parrot: r46568 | cotto++ | branches/ops_pct/compilers/opsc/ops2c.nqp:
04:27 dalek parrot: [opsc] update ops2c.nqp to use Getopt::Obj for args processing
04:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46568/
04:38 sorear interesting, interactive is only 30% shorter in PIR
04:38 sorear *NQP
04:38 sorear I was expecting more like 80%
04:41 snarkyboojum joined #parrot
04:44 sorear pmichaud: Under what circumstances can a slurpy arg be null?
04:44 pmichaud sorear: I don't think it can any more.
04:44 pmichaud in earlier versions of parrot, a slurpy arg could be null if no arguments were passed to fill it
04:45 sorear I would love nqp:: stuff if it meant that I could stop remembering pir::isa__IPS
04:45 sorear signatures should be in a symbol table, not my mind
04:45 pmichaud the pir:: opcodes don't generally require the signature
04:46 pmichaud I don't know why people keep insisting on always adding them
04:46 pmichaud pir::isa(...)  works just fine
04:46 sorear because it feels like 50% of the time the op I want doesn't have a filed signature
04:46 pmichaud then we should add them to PAST if we can
04:46 sorear and PAST is beyond the reach of trivial fixability
04:47 pmichaud not for that :-)
04:47 pmichaud it's a simple table
04:47 pmichaud at the beginning of PAST/Compiler.pir
04:47 pmichaud every so often I do a grep for 'pir::' to see what people ahve been putting signatures on
04:48 sorear how about generating a warning if you apply a signature to a known opcode?
04:48 sorear also, there could be nicer errors if your passed arguments don't match up with the signature
04:48 pmichaud it would only be a warning if the signature matched the one on record
04:48 pmichaud oh, if your passed arguments don't match, it coerces
04:49 pmichaud the signature is coercions, not type checks
04:49 sorear I'm talking about stuff like pir::isa($x, $y, $z)
04:49 sorear silently generates invalid PIR
04:49 sorear we don't have a singature for pir::null
04:50 pmichaud I'm looking at the nqp sources now, I only see three case of pir:: that have signatures
04:51 pmichaud sorry, five
04:51 pmichaud pir::defined and pir::clone definitely don't need the sigs
04:51 sorear we don't have a signature for printerr
04:52 sorear we don't have a signature for getstdin
04:52 * sorear removes all but the two needed signatures from HLL::Compiler.interactive
05:00 pmichaud but yes, the use of nqp:: would preclude specifying a signature.
05:01 pmichaud i.e., nqp:: would have pseudo-opcodes that map to primitive ops on the underlying vm
05:03 kurahaupo joined #parrot
05:03 sorear Is Eval the runtime presentation of a loaded .pbc?
05:04 sorear What's the idiomatic way to declare a bunch of variables in NQP?
05:04 pmichaud my $var1;  my $var2;  my $var3;
05:05 pmichaud falling asleep here -- will work more tomorrow.
05:06 sorear ok.
05:07 sorear 'night
05:07 cotto night
05:16 dalek parrot: r46569 | cotto++ | trunk (13 files):
05:16 dalek parrot: [cage] fix most (all?) misuses of "it's"
05:16 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46569/
05:16 dalek parrot: r46570 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
05:16 dalek parrot: [pct]: Add a few more pirop signatures to PAST::Compiler.
05:16 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46570/
05:28 dalek nqp-rx: c3b0e83 | sorear++ | src/stage0/ (3 files):
05:28 dalek nqp-rx: Rebootstrap so REPL stuff can use |% and last
05:28 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​3b0e83602b6872d768e6ea8db8802209afad98e
05:32 dalek parrot: r46571 | cotto++ | trunk (2 files):
05:32 dalek parrot: [getopt] apply getopt fix from branch to trunk
05:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46571/
05:32 plobsing sorear: Eval should be the runtime presentation of a loaded PBC. Currently they're not quite the same.
05:46 cotto Interesting.  Syncing ops_pct with trunk causes a segfault while building nqp-rx.
05:46 cotto specifically the settings
05:48 dalek parrot: r46572 | cotto++ | branches/ops_pct/compilers/opsc/ops2c.nqp:
05:48 dalek parrot: [opsc] remove an unused sub
05:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46572/
06:03 sorear Should I regard ops_pct as the shape of things to come re. our build system?
06:03 sorear More NQP, less P5?
06:03 cotto svn-bisect++
06:05 plobsing my understanding is that there is a desire to move away from P5 and become more bootstrapped, but it's not a terribly high priority
06:06 dngor joined #parrot
06:06 sorear How many damage will I do if I break outer_ctx?
06:06 sorear It's an undocumented argument to PCT::HLLCompiler.eval
06:07 cotto plobsing, that's correct afaiu
06:07 * sorear wants to implement a different and better version and move Rakudo to it
06:11 sorear kea and partcl-nqp, the only NQP users listed on [Languages], don't use it
06:12 sorear Nevermind, it's specced in a PDD
06:13 plobsing cotto: from your work on opsc, how hard would it be to make a preprocessor that replaced {{{ PIR snippet }}} with the equivalent ops C code strung together?
06:14 * plobsing wants to rip out IMCC's optimizer and reimpliment using something-not-C
06:15 snarkyboojum joined #parrot
06:16 sorear plobsing: How about you rip it out and not replace it?
06:16 sorear It's not like it works, and anything it does, tcurtis' POST optimizer can do better
06:17 plobsing sorear: POST != Parrot
06:18 * plobsing likes winxed for example
06:18 plobsing also, the .lex optimization you mentioned earlier seems well suited to a PIR optimizer
06:19 plobsing another thing - the level 1 optimizations mostly work. I implemented a test target that ran -O1 and it only fails 2 tests.
06:19 bacek_at_work plobsing, next step after merge opsc will be create more robust grammar for ops.
06:20 hercynium joined #parrot
06:20 bacek_at_work plobsing, ideally (from my pov) - extend NQP to support typed vars.
06:20 cotto 46564 is the culprit
06:20 plobsing I want to be able to naively substitute strung-together ops into arbitrary C
06:20 sorear bacek_at_work: you want typed vars in NQP?
06:20 sorear my int $foo?
06:20 bacek_at_work sorear, yes
06:20 sorear what are you going to do with them?
06:20 plobsing changing the ops grammar will not help me with that
06:22 plobsing IMCC is one place where I'd love to do some of the datastructures in a more parrot-y language. Another is most PMC functions which really don't need to be in C (but other parts of the PMC might)
06:25 bacek_at_work sorear, emit C code :)
06:25 aukjan joined #parrot
06:26 bacek_at_work plobsing, I'm going to develop pir_pct (in near future, possibly in this century :)
06:26 sorear typed vars in NQP is on my TODO list
06:26 sorear I have no idea if I'll be able to implement them without completely rebuilding PAST
06:26 sorear but I'll try!
06:27 bacek_at_work If you can just stash type into PAST::Var node I can use it for generating C.
06:27 sorear You.  Want to.  WHAT.
06:27 bacek_at_work generate C
06:27 bacek_at_work for ops
06:28 bacek_at_work from nqp-like language
06:28 bacek_at_work instead of
06:28 bacek_at_work current
06:28 bacek_at_work bloody-macro-substituted-perverted-C
06:28 bacek_at_work check src/ops/*.ops file
06:29 bacek_at_work I want to get rig of this "language" and use more sane one. And nqp looks like good candidate for it.
06:29 sorear Then we'll be able to define grammars in ops.
06:29 bacek_at_work Or I can develop full grammar for this C-like crap.
06:30 bacek_at_work sorear, exactly.
06:30 bacek_at_work Top-level skeleton already done in ops_pct branch.
06:30 bacek_at_work Next step - ops guts.
06:31 sorear Do you realize what "rewrite ops in NQP" is the first step of
06:31 plobsing bacek_at_work: I'm sure pir_pct will be great when finished, but I like the immediate benefits I'd see with gradual changes to IMCC.
06:31 plobsing also the parts I want to fix (mostly optimizer), you could re-use
06:32 plobsing actually, I'd like to try to decouple the optimizer from IMCC if that's at all possible
06:34 sorear as long as POST::Compiler uses pir, imcc ought to be in C
06:36 plobsing sorear: when working in some parts of Parrot I find the C required is basically verbose, strung-together ops.
06:36 bacek_at_work sorear, not really.
06:37 sorear I hope you two realize that you're following the LoritoRoadmap to the letter
06:37 bacek_at_work sorear, I know :) ops_pct was first step for Lorito.
06:37 plobsing Actually, I don't necessarily want a full lorito for this. Just something good enough.
06:38 plobsing Let's call it Lorito-Bar to indicate it isn't a full lorito ;-)
06:41 bacek_at_work "Lorito *" is current naming conventions :)
06:42 plobsing but the x-bar means not x, which is what I'm trying to communicate
06:44 plobsing anyways, I'd like to be able to let more people at the optimizer (cause it is a cool thing), and I see the best way to do that is by divorcing it from IMCC and putting it into a parrot language
06:45 plobsing also maybe I'd have a fighting chance of understanding it then
06:45 sorear Make it understand POST::Op, so that we can reuse it from PCT
06:45 sorear Without having to use the PIR parser
06:47 plobsing my vision is for it to understand ops, so PIR|PASM|PBC. POST/PCT level optimizations occur at a different level and you can do different things with them.
06:51 plobsing I'd also like to be able to take a sub from a running parrot and run an optimization pass on it and replace it.
06:51 cotto That's pretty important for a nice hotspot-like jit.
06:53 plobsing yes, but at a parrot bytecode level.
06:54 dalek parrot: r46573 | cotto++ | trunk/src/string/charset/ascii.c:
06:54 dalek parrot: revert r46564, which caused some issues for ops_pct
06:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46573/
06:54 cotto Nice.  ops2c time is down from ~90s to ~60 after syncing.  Now all I have to do is make it not be extravagantly broken.
06:59 Essobi joined #parrot
07:02 cotto nm.  opsc is extravagantly broken in without the merge
07:02 cotto me--
07:04 clinton joined #parrot
07:06 snarkyboojum_ joined #parrot
07:14 LoganLK joined #parrot
07:21 iblechbot joined #parrot
07:23 bacek cotto, how broken is it?
07:25 bacek o hai, btw
07:30 snarkyboojum left #parrot
07:30 cotto not too badly.  I've a subset of it.
07:31 cotto Happily the failures indicated legitimate brokenness.
07:31 * sorear has an epiphany
07:32 * cotto has a galeon
07:36 * plobsing has a lynx
07:37 * JimmyZ has a ff
07:37 * bacek wanna cookie
07:38 cotto flash or normal?
07:41 bacek flash
07:41 bacek fire
07:41 bacek KILL ALL HUMANS
07:41 purl Don't START me. or http://www.killallhumans.org
07:41 bacek oops, ww
07:42 cotto That's a disappointing site.
07:43 cotto I didn't feel threatened at all.
07:43 bacek cotto, there is some brokeness in Makefile in ops_pct
07:44 dngor joined #parrot
07:44 cotto where?
07:44 bacek make bootstrap-ops will invoke "make -C" at the end.
07:44 bacek gnu make
07:44 purl hmmm... gnu make is too cool. or at http://www.gnu.org/software/make/make.html
07:46 cotto Is that what's causing the dynops to be rebuild?
07:46 bacek I think it's related
07:46 bacek And on my box dynops aren't built properly....
07:47 bacek But self-hosted ops are still good (fsvo)
08:02 bacek cotto, found problem with dynops
08:03 cotto ship it!
08:05 bacek r46574
08:07 bacek So, Makefiles are clean from blame
08:08 bacek hmm. Not really. Some dependencies are broken...
08:12 bacek And fixed
08:13 bacek cotto, your turn to write mail to parrot-dev@ with warning about merging it back to trunk :)
08:16 sorear #142917 0x08048bd1 in main ()
08:16 sorear stack overflow!  segv
08:16 sorear in the GC, even
08:16 cotto kaboom
08:17 dalek parrot: r46574 | bacek++ | branches/ops_pct/compilers/ops​c/src/Ops/Compiler/Actions.pm:
08:17 dalek parrot: Always add parsed op into $past<ops>. Fix for building dynops.
08:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46574/
08:17 dalek parrot: r46575 | bacek++ | branches/ops_pct/t/compilers/opsc/06-opsfile.t:
08:17 dalek parrot: Update test to be little bit more flexible in terms of number of parsed ops.
08:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46575/
08:17 dalek parrot: r46576 | bacek++ | branches/ops_pct/compilers/opsc/Rules.mak:
08:17 dalek parrot: Fix dependencies for ops2c to avoid rebuild it constantly.
08:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46576/
08:17 bacek sorear, where did you get it???
08:17 sorear bacek: marking an exception
08:18 bacek sorear, sigh...
08:18 cotto bacek, opsfile was legitimately failing
08:18 bacek cotto, why???
08:18 cotto I fixed it.
08:18 sorear I'm hacking lexical persistence.  This is very much circularity saw territory; I'm not going to file a bug until I know I didn't break it
08:19 cotto we weren't careful enough about honoring the optable and skiptable
08:19 bacek cotto, ah.. Then revert my commit.
08:19 sorear actually... it's marking a LOT of exceptions
08:20 sorear all with the same message though
08:20 sorear exception -> callcontext -> positionals -> cell -> another exception
08:21 sorear now... why would an exception have an exception in its callcontext
08:24 cotto bacek, shouldn't the nqp settings branch be merged back upstream before ops_pct gets merged into trunk?
08:25 bacek not mandatory. But, afaiu, pmichaud doesn't dislike my setting library.
08:26 bacek May be we should rename into nqp-library though.
08:26 bacek To reduce confusion and lower expectations :)
08:27 sorear Is trace output buffered?
08:27 sorear If Parrot segfaults while traces are on, will I see all the traces?
08:27 cotto is the other option to include your forked version in trunk?
08:27 bacek cotto, yes.
08:29 cotto all committed
08:29 moritz good morning
08:29 moritz t/library/pg.t fails test 13
08:29 bacek moritz, o/
08:30 bacek moritz, TT#1611
08:30 bacek ?
08:30 purl For you maybe.
08:30 cotto more like good night
08:30 cotto ;)
08:30 fperrad joined #parrot
08:31 moritz yep
08:33 dalek parrot: r46577 | cotto++ | branches/ops_pct/t/compilers/opsc (7 files):
08:33 dalek parrot: [opsc] check exact number of ops parsed, use installed opsc.pbc, be explicit about testing core ops
08:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46577/
08:33 dalek parrot: r46578 | cotto++ | branches/ops_pct/compilers/ops​c/src/Ops/Compiler/Actions.pm:
08:33 dalek parrot: [opsc] be more careful about honoring the skiptable (aka ops.skip)
08:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46578/
08:33 dalek parrot: r46579 | cotto++ | branches/ops_pct/compilers/opsc/src/Ops/File.pm:
08:33 dalek parrot: [opsc] make :$core required, minor cleanup
08:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46579/
08:33 bacek cotto, I personally dislike 3 $past<ops>push($op)...
08:34 bacek but we can refactor it later :)
08:35 fperrad_ joined #parrot
08:35 cotto make it work, make it work well
08:37 cotto also, it still needs a backwards-compatibility wrapper script to avoid the deprecation penalty
08:38 cotto Heh.  I was just about to make that same commit.
08:39 bacek You can't beat speed of light!
08:41 cotto apparently not
08:41 * bacek hijacking ops2c.pl
08:42 cotto hijack it with FIER
08:43 cotto I'm excited to rip all that old perl code out.
08:44 bacek r46581 :)
08:46 cotto ops2c.pl gets called with an extra "C" in front as a holdover from when we had several runcores.
08:46 cotto the hijacked version should take car eof that
08:46 bacek ops2c ignores it :)
08:47 cotto that's true
08:48 bacek But fixed anyway
08:48 purl rumour has it fixed is handy
08:49 sorear Are you supposed to call pop_eh in exception handlers?
08:49 bacek sorear, yes
08:50 dalek parrot: r46580 | bacek++ | branches/ops_pct/MANIFEST.generated:
08:50 dalek parrot: Install nqp-settings.pbc
08:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46580/
08:50 dalek parrot: r46581 | bacek++ | branches/ops_pct/tools/build/ops2c.pl:
08:50 dalek parrot: Hi-jack ops2c.pl to invoke ops2c$(EXE)
08:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46581/
08:50 dalek parrot: r46582 | bacek++ | branches/ops_pct/tools/build/ops2c.pl:
08:50 dalek parrot: Improve hijacking slightly.
08:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46582/
08:50 sorear bacek: NQP-rx doesn't.
08:50 sorear in { 1/0; CATCH {} }  no pop_eh is called
08:50 bacek sorear, it's bad...
08:51 moritz sorear: 1/0 in Perl 6 constructs a Rat
08:51 moritz it doesn't throw an exception
08:51 sorear moritz: besides the point; I am talking about NQP-rx
08:51 moritz ok
08:52 moritz :-)
08:52 sorear which most definitely *does* die
08:52 cotto bacek, r46583
08:52 sorear bacek: I've golfed my NQP-rx REPL segfault down to 6 lines of pir with mismatched push_eh
08:52 sorear bacek: alternatively, 1 line of NQP
08:53 bacek cotto, write your mail to parrot-dev@ :) I'll rename "nqp-settings" into "nqp-library"
08:53 dalek website: khairul++ | Instrumenting Parrot
08:53 dalek website: http://www.parrot.org/content/instrumenting-parrot
08:53 bacek sorear, than it's bug in nqp...
08:53 sorear > { 1/0; CATCH { 1/0 } }
08:53 sorear Segmentation fault (core dumped)
08:53 sorear Is this a "don't do that - ajh
08:53 sorear ah
08:53 cotto I'll have to do that tomorrow.  I need to sleep and I want to be able to say that I've tested Rakudo.
08:53 bacek cotto, I'm testing rakudo right now.
08:54 cotto bacek++
08:54 sorear bacek: odd that it works fine except when the exception handler throws an exception.
08:54 cotto post here when it works ;) and I'll try to send something off tomorrow morning
08:55 cotto Last time I sent off a message without enough sleep I accidentally announced the 2.0 release.
08:55 * cotto tries not to read khairul++'s post
08:55 bacek cotto, make test passed :)
08:55 cotto w00t
08:56 bacek And go to bed now :)
08:56 cotto good idea
08:56 cotto night
08:56 bacek night
08:57 cotto can you test partcl too?
08:57 bacek cotto, which one?
08:58 bacek I've got -nqp version
08:58 cotto old 'n' busted
08:58 cotto the one with dynops
08:58 cotto it's the only other hll with them
08:58 cotto (that I know of)
08:58 snarkyboojum joined #parrot
09:01 dalek TT #1631 created by sorear++: Exception handler throwing exception in NQP-rx causes segfault
09:01 dalek TT #1631: http://trac.parrot.org/parrot/ticket/1631
09:02 bacek cotto, partcl builds
09:02 bacek flawless victory
09:02 purl FINISH HIM
09:03 bacek purl, good girl!
09:03 purl :)
09:03 cotto that's all that can be expected
09:05 cotto nopaste?
09:05 purl i think nopaste is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) or http://paste.scsys.co.uk or http://www.extpaste.com or http://gist.github.com or App::Nopaste or http://codepeek.com/paste/ or (: pastebot)
09:05 nopaste "cotto" at 192.168.1.3 pasted "points to cover in ops_pct post to parrot-dev" (16 lines) at http://nopaste.snit.ch/20541
09:06 cotto bacek, I'm off to bed.  lmk if I need to cover anything that's not in that outline.
09:06 cotto good night
09:06 bacek cotto, looks good. Sleep well
09:06 dalek parrot: r46583 | cotto++ | branches/ops_pct/compilers/ops​c/src/Ops/Compiler/Actions.pm:
09:06 dalek parrot: [opsc] tighten up skiptable/optable logic a bit
09:06 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46583/
09:15 iblechbot joined #parrot
09:24 sorear sadly, pmichaud is wrong
09:24 sorear Parrot does not keep callcontexts around after a sub returns
09:24 sorear somebody must have fixed that memory leak
09:27 sorear I can think of a sneaky way to get at the callcontext (it involves tailcalls and getinterp)
09:27 sorear but there's no Sub.set_outer_ctx
09:28 sorear anyways, it is not currently possible to implement lexical chaining without causing the PIR to be different
09:28 sorear so I can't make pmichaud happy
09:28 sorear hopefully, he'll redefine happy tomorrow
09:28 * sorear out
09:43 rurban_ joined #parrot
09:45 TiMBuS joined #parrot
10:07 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33811), fulltest) at r46583 - Ubuntu 10.04 amd64 (gcc with --optimize)
10:10 snarkyboojum joined #parrot
10:18 preflex joined #parrot
10:47 skv joined #parrot
11:19 aukjan joined #parrot
11:20 snarkyboojum_ joined #parrot
11:34 dalek parrot: r46584 | rblasch++ | trunk/config/auto/va_ptr/test_c.in:
11:34 dalek parrot: [config] Make va_ptr probe work with MSVC and -O2.
11:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46584/
11:50 dalek parrot: r46585 | NotFound++ | trunk/src/string/api.c:
11:50 dalek parrot: nano-optimization in Parrot_str_find_index
11:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46585/
11:55 dalek rakudo: 70795ca | (Martin Berends)++ | tools/test_summary.pl:
11:55 dalek rakudo: add a second report example to tools/test_summary.pl
11:55 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​0795ca86b46f91d21087742670229c1ed7ec912
12:06 mariano__ joined #parrot
12:14 * Coke suggests "Dorito" instead of "Lorito *". mmmm, dorito.
12:19 JimmyZ joined #parrot
12:27 whiteknight joined #parrot
12:28 ruoso joined #parrot
12:33 whiteknight good morning, #parrot
12:37 whiteknight_ joined #parrot
12:37 whiteknight purl msg JimmyZ sorry about the typo in the blog. Fixed this morning.
12:37 purl Message for jimmyz stored.
12:38 JimmyZ good localtime, whiteknight
12:39 dalek parrot: r46586 | NotFound++ | trunk/t/op/string.t:
12:39 dalek parrot: test a index usage that triggers a bug in r46564, cotto++
12:39 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46586/
12:39 dalek parrot: r46587 | NotFound++ | trunk/src/string/charset/ascii.c:
12:39 dalek parrot: fixed version of r46564, simplify mixed_cs_index, cotto++
12:39 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46587/
12:41 Coke another svn-- # (non svn-aware diff shows all $Id lines as different)
12:43 whiteknight_ joined #parrot
13:04 Coke I am getting a failure building git-latest rakudo with parrot-latest trunk.
13:11 nopaste "coke" at 192.168.1.3 pasted "rakudo failure." (25 lines) at http://nopaste.snit.ch/20543
13:15 GodFather joined #parrot
13:16 dalek rakudo: 7e0aa33 | moritz++ | build/Makefile.in:
13:16 dalek rakudo: [build] missing pod2man should not be fatal
13:16 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​e0aa3326bfb3c51bfbe91aec711a32394887f9e
13:22 parthm joined #parrot
13:26 moritz FYI, I see the same build problems as Coke
13:29 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33814), fulltest) at r46587- Ubuntu 10.04 amd64 (g++)
13:29 atrodo joined #parrot
13:30 NotFound I think I made a mistake in r46587. One minute....
13:38 NotFound Try r46588
13:45 plobsing joined #parrot
13:46 dalek parrot: r46588 | NotFound++ | trunk (2 files):
13:46 dalek parrot: fix for bug introduced in r46587 and tests for its failure conditions
13:46 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46588/
13:50 PerlJam NotFound: obiwan error, eh?
13:52 NotFound Interesting spelling
14:06 Coke NotFound: ayup, fixed. Danke.
14:06 Coke (esp. for adding the tests!) NotFound++
14:09 Coke ok. trunk is now building rakudo for me in 3m13s.
14:09 Coke I think that's up there with the best from codestring.
14:11 NotFound Coke: Have you measured memory usage?
14:11 * mikehh got to reboot - bbiab
14:13 Coke NotFound: is there an easy way to do that other than watching top?
14:13 Coke ulimit doesn't seem to work on OSX 10.6.3, so I can't use that...
14:13 Coke hey, feather's back.
14:15 NotFound I think there is some tool, but just does the equivalent of using top and record max values.
14:21 PerlJam Coke: my build took ~9.5 minutes  (I guess it's an improvement, but since it takes so long, I've never really paid attention to the exact timing)
14:28 Coke NotFound: on feather, with 0.35G /virtual/ limit (boom if you go over), built fine.
14:28 Coke trying lower.
14:28 NotFound Not so bad.
14:31 bubaflub joined #parrot
14:32 Coke 1/4G is not enough.
14:32 Coke (core.pm is a pig.)
14:37 joeri joined #parrot
14:41 mikehh joined #parrot
14:51 Coke partcl's segfault - if I swap out load_bytecode "runtime/tcllib.pbc" with s/pbc/pir/, it actually runs my :anon :load sub from the .pir file, while the .pbc just segfaults.
14:56 NotFound Coke: http://partcl.googlecode.com/svn/trunk ?
14:59 Coke partcl?
14:59 purl partcl is tcl on parrot or http://code.google.com/p/partcl
14:59 Coke partcl is also git://github.com/partcl/partcl.git
14:59 purl okay, Coke.
14:59 Coke (the home page is there. the code is no longer.)
15:04 NotFound pbc_dump runtime/tcllib.pbc - Segmentation fault (core dumped)
15:07 dalek TT #1632 created by coke++: segfault in Parrot_ImageIO_shift_string
15:07 dalek TT #1632: http://trac.parrot.org/parrot/ticket/1632
15:08 NotFound pbc_checker says a fixup is invalid.
15:10 Andy joined #parrot
15:13 Coke ... we have a pbc_checker!? =-)
15:14 NotFound examples/tools
15:14 Coke ah, not installed?
15:14 NotFound Coke: is just an experiment that I update sometimes.
15:15 Coke ah.
15:15 Coke ah, .cpp. ah well. =-)
15:15 NotFound It's written in C++, which doesn't help get more people interested.
15:24 Coke fwiw, I just compiled it, ran it, and saw the FAILED error.
15:28 cotto notfound++
15:37 davidfetter joined #parrot
15:53 gpw joined #parrot
15:56 cotto lorito?
15:56 purl lorito is "little parrot" in spanish or examples/embed/lorito.c or http://xkcd.org/707/
15:56 cotto L1?
15:56 purl i guess L1 is a hypothetical language that would be used to implement PMCs and PIR-visible ops so that they could all be easily jitted. or http://irclog.perlgeek.de/p​arrot/2009-04-21#i_1083550 or http://rt.perl.org/rt3/Ticket/D​isplay.html?id=39313#txn-471982 or magical unicorns and flying puppies.
15:57 cotto That definitely needs to be in a better place.
15:57 cotto and I don't mean dead
15:59 cotto nm.  It's just at L1Recap
16:12 cotto pmichaud, ping
16:12 pmichaud cotto: pong
16:13 cotto pmichaud, what do you think is an eta for adding a setting to nqp?
16:13 cotto and how similar will it be to bacek's?
16:14 pmichaud likely to be very similar to bacek's
16:14 pmichaud I'm not entirely sure it belongs with nqp itself, though.  I suppose we could start it in the nqp repo as a short-term measure
16:15 cotto ok.  I'm most concerned that it'll be somewhere.  I'm not invested in it being any place in particular.
16:15 cotto thanks
16:17 cotto would it live as a separate project or in Parrot if it's not in nqp?
16:19 pmichaud I could see it living in any of those three places  (nqp, separate project, or in Parrot)
16:19 pmichaud there's not a clear "obvious" answer.
16:20 pmichaud if putting it into nqp would make it easier to have it included in parrot, then that probably makes sense.  :)
16:20 pmichaud (and that probably does make sense)
16:20 pmichaud let's go ahead and plan that it'll go into nqp.  I'll start cherry picking things into the nqp-rx master repo later today
16:20 pmichaud (my schedule for today has dramatically cleared in the last 90 minutes)
16:21 cotto great!
16:27 Coke pmichaud: added a deprecation notice for CodeString.
16:27 Coke (pushing people towards the opcode, PCT, and StringBuilder)
16:29 dalek TT #1633 created by coke++: CodeString PMC deprecated
16:29 dalek TT #1633: http://trac.parrot.org/parrot/ticket/1633
16:29 pmichaud Coke++
16:32 dalek parrot: r46589 | coke++ | trunk/DEPRECATED.pod:
16:32 dalek parrot: Add note for CodeString PMC.
16:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46589/
16:35 sorear pmichaud: Could you take a look at backlog from 7 hours ago?  I've run into a bit of a snag
16:35 sorear nopaste?
16:35 purl nopaste is, like, http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) or http://paste.scsys.co.uk or http://www.extpaste.com or http://gist.github.com or App::Nopaste or http://codepeek.com/paste/ or (: pastebot)
16:36 sorear what's this channel's paste-service?
16:36 theory joined #parrot
16:36 darbelo tools/dev/nopaste.pl
16:36 pmichaud sorear: yes, I saw a bit of the backlog.  There's a small change that needs to be made to the Sub PMC.
16:37 Coke http://nopaste.snit.ch is fine
16:37 Coke (the nopaste script uses that.)
16:38 Coke pmichaud: suggested replacement for unique() ?
16:38 pmichaud PAST::Compiler already has a 'unique', so I just used that one.
16:39 Coke ok. I'm looking at updating, e.g. compilers/data_json, which is using TGE/PGE.
16:39 pmichaud PCT::Node has one also.
16:39 Coke guess I can call out to PAST::Compiler ... or convince someone to update it to PCT.
16:40 NotFound I've tested now on i386 (previously was on x64). Fails the same way, and pbc_checker also shows the same problem.
16:40 pmichaud not sure why I have two of them  (plus we had a third in CodeString)
16:40 sorear pmichaud: excellent
16:41 nopaste "sorear" at 192.168.1.3 pasted "golfed test, should it help" (19 lines) at http://nopaste.snit.ch/20546
16:42 brooksbp_ joined #parrot
16:43 pmichaud sorear: it'll be another hour or so before I can get back to looking at the subroutine stuff
16:46 sorear I'm in no hurry.
16:47 rurban_ joined #parrot
16:48 cotto bacek, message about ops_pct sent to parrot-dev
16:49 Coke ... cotto ... you wound me. =-)
16:51 Coke cotto: the old nqp is gone.
16:52 cotto It's well on its way out then. ;)
16:52 cotto time for work
16:55 darbelo Hmm. I think I know what is causing JimmyZ's build problems...
16:55 pmichaud break time here... bbiaw
17:10 NotFound Uhhhh... What is supposed to be a "enum_fixup_none" ?
17:11 cotto_work looks like t/compilers/opsc/common.pir gets nuked in ops_pct by test-clean.
17:14 dukeleto win 4
17:14 * dukeleto slaps forehead
17:14 cotto_work win7 is way better
17:27 davidfetter i hear it's gotten up to "tolerable for an hour"
17:29 cotto_work I can totally tolerate it.
17:30 darbelo Perhaps off topic, but Rakudo builds on amd64 with less than .5G RAM
17:30 cotto_work Rakudo building with <.5G ram is never off topic.
17:31 moritz rakudo building at all is never off topic :-)
17:31 darbelo Well, on i386 it's commonplace. It's allways been amd64 that has trouble.
17:34 darbelo Mind you, core.pm is still a pig but at least now it's a pig that fits through the door ;)
17:37 NotFound Coke: sorry, but the problems shown by pbc_checker where pbc_checker bugs X-)
17:38 Coke NotFound: ha!
17:38 cotto_work test that sucker
17:38 Coke dukeleto: someone on #perl6 mentioned ESC-4 instead. whee.
17:40 NotFound The pbc looks correct but pbc_dump segfaults. The problem seems to be in the unpacking.
17:43 gaz joined #parrot
17:45 Coke I wonder if I'm still using pbc_merge
17:45 Coke (nope)
17:47 japhb Am I correct that most of http://trac.parrot.org/parrot/browser/branc​hes/ops_pct/ext/nqp-rx/src/gen/settings.pm is from Plumage?
17:48 cotto_work japhb, bacek would know that
17:48 dukeleto japhb: sure does look like it
17:50 japhb I don't mind in the slightest, but if it was a manual copy-and-paste, that loses the VCS history that would show a copyright path. Anyone object to putting a comment or something in there indicating where it came from?
17:50 Coke cotto: build in branch warns:
17:50 Coke # ... in 0.456355810165405 seconds
17:50 Coke # Ops parsed 0.457345962524414
17:50 NotFound Not sure, but looks like while unpacking a pmc it contains a constant string that isn't unpacked yet.
17:53 japhb pmichaud, ping
17:53 cotto_work Coke: that's just informative
17:54 Coke cotto_work: that is not the word I would use. =-)
17:54 dalek parrot: r46590 | NotFound++ | trunk/examples/tools/pbc_checker.cpp:
17:54 dalek parrot: minor fixes and clean hard tabs in example pbc_checker
17:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46590/
17:56 dukeleto japhb: also, that code has tests (that I wrote ;) ) in the plumage repo
17:56 dukeleto japhb: i wonder if they have any tests in the parrot core repo?
17:56 japhb dukeleto, nodnod
17:56 dukeleto japhb: the same issue came up with Tapir recently. fperrad seemingly copy+tweaked Tapir and added it to Parrot core, but I don't know the status of anything now
17:57 japhb Was Tapir copyright-assigned to PaFo?
17:57 dukeleto japhb: he seems to have added features, but I am unsure what to do with the Tapir github repo, which has essentially been forked into the Parrot core repo
17:57 dukeleto japhb: no, it was similar to the setup of Rakudo
17:58 dukeleto japhb: i had copyright with Artistic 2.0
17:58 moritz copyright != license
17:58 japhb It should not have been copied in sans copyright statement, at the very least.
17:59 japhb And good manners dictates talking to you first, I would think.
17:59 japhb Because even though the license may allow it, no reason to be ... well, I can't think of a better word than perhaps "rude".
18:00 dukeleto japhb: yes, i agree
18:00 dukeleto moritz: yes, you are right
18:00 japhb (At the very least, because you own one project and commit in the other.)
18:00 iblechbot joined #parrot
18:01 dukeleto i was thinking that Tapir would live in ext/ similar to rakudo
18:01 dukeleto nqp, i mean
18:01 japhb That makes total sense to me.  That was the long-term plan for Plumage as well.
18:01 japhb I knew what you meant.  :-)
18:05 NotFound Coke: with r46591 tclsh dies gratefully instead of segfaulting. Do you feel better now? ;-)
18:05 Coke I would raise this issue on the parrot-dev list. We cannot just copy code we don't own into the repo and claim it.
18:05 Coke NotFound: probably not. =-)
18:05 japhb Coke, good thinking.
18:06 Coke (The whole point of the Foundation is to shepherd this sorts of things.)
18:06 Coke well, a major one, anyway.
18:07 NotFound $ ./tclsh
18:07 NotFound Reference to constant not yet unpacked 581
18:09 Coke I suspect bacek's string mucking.
18:10 NotFound Looks like a imageio problem.
18:11 dalek parrot: r46591 | NotFound++ | trunk/src/pmc/imageio.pmc:
18:11 dalek parrot: add a sanity check in imageio shift_string
18:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46591/
18:11 dalek parrot: r46592 | gerd++ | trunk/lib/Parrot/Docs/Section (2 files):
18:11 dalek parrot: Add the PCT-tutorial to the HTML-documentation
18:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46592/
18:15 cotto_work Do I gather correctly that nqp-settings in bacek's branch may have been improperly taken from plumage?
18:18 japhb cotto_work, I didn't know about it until I saw an email referring to a new NQP setting a little while ago.  As this is something I'm definitely interested in, I clicked through, and went, "Um ... didn't I write this?"
18:19 dalek lua: 0d616ca | fperrad++ | lua/lua51.pir:
18:19 dalek lua: s/emit/append_format/
18:19 dalek lua: see http://trac.parrot.org/parrot/ticket/1633
18:19 dalek lua: review: http://github.com/fperrad/lua/commit/0d​616ca5c512a2f0ad42cb0f68129994bf99c4ab
18:26 japhb parrot-dev email sent
18:27 dalek parrot: r46593 | gerd++ | trunk/MANIFEST:
18:27 dalek parrot: Add the file lib/Parrot/Docs/Section/PCT_Tutorial.pm to MANIFEST
18:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46593/
18:37 Essobi left #parrot
18:54 cotto_work It sounds like it's an issue that needs to be resolved but not necessarily a blocker to the ops_pct merge.
19:03 davidfetter joined #parrot
19:13 eternaleye joined #parrot
19:26 pmichaud 17:53 <japhb> pmichaud, ping
19:26 pmichaud japhb: pong
19:29 japhb pmichaud, I was wanting to find out what the deal was with the "NQP setting", from your perspective.
19:29 pmichaud I was planning to look at it in detail this afternoon/evening
19:30 pmichaud my intent at this point is to create an NQP setting of some sort that can be distributed with NQP
19:30 japhb Clearly, bacek would like to use Plumage's NQP utilities, which is where I come in.  :-)
19:30 pmichaud cotto_work: ping
19:30 cotto_work pong
19:30 pmichaud cotto_work: would it be easy to determine which of the setting features you're wanting/relying on?
19:30 cotto_work It wouldn't take long
19:31 dukeleto japhb++ # recent parrot-dev email
19:31 pmichaud I might want to start with a "minimal setting" in nqp (sufficient to support ops2c) and then let people expand it from there
19:32 pmichaud japhb: it's not at all my intent to take code without credit.
19:32 japhb dukeleto, thanks
19:32 japhb pmichaud, oh, I definitely didn't think so.
19:32 pmichaud japhb: my best guess at this point is that there will be a setting library directory in the nqp-rx repo where people can contribute setting library methods and/or functions
19:32 japhb My parrot-dev email was about correcting the process in general, not because I object to the code reuse.
19:33 japhb Fair enough.
19:33 pmichaud this would then appear in the stage0 directory, which is how it would ultimately appear in parrot
19:33 japhb And feel free to copy as desired from Plumage.  I just wanted a heads-up, and an "upstream" link in a comment somewhere.
19:34 pmichaud I'm also wondering if it would be better done as multiple setting files so that a person could obtain, say, *just* the IO enhancements without also pulling in all of the others.
19:34 Coke I think the ext/ dir is a fine place to put such things. (and we can clearly say that anything in there is taken from their respective upstream location and is under their license, etc.)
19:34 pmichaud and we could have a master "give me everything" module that pulls in everything :-)
19:34 Coke pmichaud: nice to have, but lumping in together is fine for now, IMO.
19:35 pmichaud Coke: okay, good to know
19:35 Coke if it's easy, sure. if it's more work, meh.
19:35 pmichaud it's more on the easy side
19:36 pmichaud cotto_work: where's the best place for me to look for ops2c sources to figure out what's needed and what isn't?
19:36 cotto_work compilers/opsc
19:36 pmichaud perfect
19:36 pmichaud in trunk, or a branch?
19:36 cotto_work branch
19:37 cotto_work ops_pct
19:37 pmichaud okay
19:37 pmichaud this will be my task for the evening, then.
19:37 cotto_work thanks
19:37 pmichaud so that by tomorrow there's an nqp settings library in parrot.
19:37 cotto_work wheeee!
19:38 pmichaud japhb: I'm going to pull in (and modify) code I think appropriate for the setting into the nqp-rx repository.  Feel free to later augment it with whatever copyright or authorship credits you feel appropriate
19:39 pmichaud commit bits will be liberally given :)
19:39 japhb OK then.  :-)
19:40 pmichaud if someone wants to post this plan as an update to parrot-dev, that would be welcome.  (I have to leave to pick up kids from school right now.)
19:44 japhb Writing one
19:44 purl Writing one is trivial
19:50 japhb sent
19:51 eternaleye joined #parrot
19:55 darbelo japhb: ping
19:56 japhb pong
19:57 japhb or more precisely:
19:57 japhb darbelo, pong
19:58 darbelo Plumage development seems to have stalled bit without you.  Do you have any big plans on that are we could help you with?
19:58 japhb darbelo, there are two sides to that:
19:59 japhb 1. I have the first (of hopefully several) grant proposals in with PaFo to work on heavy parts of Plumage.  It has apparently passed inspection by the board, and is now off to be shopped to potential donor companies.
19:59 darbelo Nice.
20:00 japhb 2. There are some things that can be done by others with only guidance by me.
20:00 cotto_work very nice
20:00 japhb 2a. The test suite needs to be expanded.  Considerably.  Work is ALWAYS welcome there.
20:00 cotto_work It'll be sweet to have someone paid to work on Parrot stuff.
20:01 japhb 2b. There are only a few remaining bits necessary to make Plumage *itself* installable.  These last bits just need to be done.
20:02 japhb Hmmm, I can't remember 2c at the moment, but if need be, I'll search my notes.
20:02 japhb cotto_work, It will be sweet to be able to call Parrot my job.  :-)
20:02 darbelo How up to date is TASKS ? That used to be the place to look for LHF.
20:02 japhb Dunno, let me look
20:03 ash_ joined #parrot
20:03 bacek Good morning, #parrot.
20:04 cotto_work good morning bacek
20:04 darbelo clock?
20:04 purl darbelo: LAX: Thu 1:04pm PDT / CHI: Thu 3:04pm CDT / NYC: Thu 4:04pm EDT / LON: Thu 9:04pm BST / BER: Thu 10:04pm CEST / IND: Fri 1:34am IST / TOK: Fri 5:04am JST / SYD: Fri 6:04am EST /
20:05 bacek yes, yes. 6AM.
20:05 darbelo 6AM and on IRC.
20:05 darbelo Robots this days...
20:05 cotto_work I was awake at 6:0x this morning.  I don't know why.
20:08 ash_ bacek: are you in Australia? or that time zone?
20:08 bacek ash_, Sydney
20:08 ash_ cool, so is it friday there?
20:09 darbelo Australias is in the future.
20:10 ash_ I graduate tomorrow, well, i walk tomorrow, i guess I have graduated since i am done with my finals now...
20:10 japhb darbelo, of the items listed in TASKS, most are still valid.  The dependency stuff I'll be handling in the first grant work, and the NQPUtil.nqp stuff will probably be radically altered by pmichaud tonight.
20:11 japhb darbelo, Other than that, I'd say have at it.
20:11 japhb Hmmm.  I should probably add my 2a and 2b above into TASKS.
20:12 iblechbot joined #parrot
20:15 pmichaud btw, nqp folks might want to note that we now have flattening hashes  |%hash    and last/next   thanks to sorear++
20:16 pmichaud I'll be working on closures tonight as well.
20:17 japhb w00t!
20:17 japhb I've been out of the game way too long, clearly.
20:18 japhb pmichaud, is there a dev list for nqp-rx, so that we can get updates like this in email, rather than having to backlog the channel?
20:18 ash_ neat, pmichaud++ sorear++
20:18 Coke japhb: github rss feed.
20:19 Coke http://github.com/perl6/nqp-rx/commits/master.atom
20:22 japhb *sigh*  Guess I finally have to bite the bullet and start using a real RSS feed reader ....
20:23 darbelo Hmm. Am I the only one getting substr_s_i_i_s failures in plumage?
20:23 Coke darbelo: you mean replace_s_s_i_i_s ? ;)
20:23 darbelo I mean "compiler returned NULL ByteCode './src/lib/Plumage/NQPUtil.pir' - The opcode 'substr_s_i_i_s' (substr<4>) was not found. Check the type and number of the arguments"
20:23 pmichaud japhb: I could also post updates to my twitter account, or we could use a 'nqprx' twitter account
20:24 Coke darbelo: yes. that opcode was removed; you need to change it to foo = replace foo, a, b, 'c'
20:24 LoganLK joined #parrot
20:25 pmichaud japhb: fwiw, I really like Google's reader
20:26 darbelo Coke: Not as simple as that. It's generated code ;)
20:26 Coke (I like google reader because I can use the same reader everywhere, even on my phone.)
20:26 pmichaud Coke: yes, same here as well
20:26 pmichaud and I can use it from internet kiosks and th elike
20:27 pmichaud although I haven't tried Google Reader from my (Google) phone yet
20:27 pmichaud hmmmm
20:27 * pmichaud grabs his phone
20:27 japhb darbelo, That file needs to be regenerated from the NQP and re-checked in.  It's a dependency-loop breaker so that configuration can succeed.
20:27 japhb pmichaud, twitter updates++
20:28 japhb I've so far been not a huge fan of using google's applications.  I like to control my toolset.
20:29 japhb May have to eventually start using the web apps though, if I can't find a good solution for keeping state across my devices.
20:30 pmichaud japhb: yeah, that's one of the things I like about the google apps (more)
20:30 pmichaud japhb: once I was able to convince my wife that any documents  (itineraries, to-do lists, etc.)  she wanted me to look at and update would be best done in Google Apps.... our life got a lot easier.
20:31 pmichaud before that it was always "which computer has the latest copy of that file?"  "What was it called again?"  "Are you sure this is the latest up-to-date version?"
20:31 japhb I've often thought a perfect solution (for me) would be to be able to host my own locked-down colo box somewhere that had *private* servers for various syncing engines (Weave, etc.).  But a lot of tools that I want to use don't have/support private servers yet.
20:32 japhb For a while, just having my life in a git repo on my home server worked fine.  But as I go mobile (and don't allow incoming connections to me home net), that starts to fray at the edges.
20:32 GeJ Good morning everyone.
20:32 japhb o/
20:32 Coke ~~
20:33 japhb darbello: Did regenerating fix your problem?
20:33 darbelo japhb: I know a guy who does that (keep everything in a remote box).  He carries an underpowered netbook and a 3g modem.
20:34 darbelo japhb: Apparently not. I'm looking at the nqp source now.
20:35 japhb I just grew up in an era (and with friends) that make me really not like having my personal data on a high-profile public system.
20:35 japhb Gives me the heebie-jeebies just thinking about it.
20:35 darbelo Hah! Q:PIR{}s.
20:35 japhb And yet, can't get away from it and still get job done, sometimes.  :-(
20:36 japhb Ah, sorry.
20:38 darbelo japhb: I got that one, but got bit by "OS is a dynpmc now" :)
20:38 japhb BAH
20:38 darbelo Yeah, we've been slacking.
20:39 japhb :-)
20:39 pmichaud hmmm, reader on the nexus works pretty well :-)
20:40 japhb In one of the planned grant applications is something about a 'smoke-world' tool (or command) that basically tries to build and smoke every package it can find.  Something to run overnight before Parrot releases and branch merges.  :-)
20:45 darbelo japhb++
20:50 dukeleto japhb++
20:50 bubaflub dukeleto: i noticed you've got a PL/Parrot macports issue, may i also recommend getting PL/Parrot into Homebrew?
20:53 dukeleto bubaflub: please do, can you add that as an issue?
20:53 bubaflub dukeleto: sure thing
20:54 dalek TT #1634 created by coke++: segfault in Parrot_Class_init_pmc
20:54 dalek TT #1634: http://trac.parrot.org/parrot/ticket/1634
20:56 bubaflub dukeleto: done
21:01 dukeleto bubaflub++
21:02 bubaflub one of these days i'm going to remove mac ports and go completely to home brew; but my work laptop requires a lot of stuff and i don't want to bork it just yet
21:12 kurahaupo joined #parrot
21:21 bacek japhb, (for the record) http://irclog.perlgeek.de/p​arrot/2010-02-27#i_2044517
21:24 bacek japhb, also, history was lost by accident. You can check original commits on 1st and 2nd of March.
21:24 bacek japhb, but yes, I didn't update CREDITS file (as I should)
21:24 japhb bacek, Thank you for pointing that out.  I was (and still am) quite interested in bringing stuff from Plumage into Parrot, so that in itself was never the problem.  I was asking for 1) Notice when it was about to happen (That was many weeks ago.  :-), and 2) A note/comment in the copied code of where it was copied from.  That's all.  I hope I didn't give the impression that I was mad at you.  I was more concerned that we get this right in
21:24 japhb the long term than any issues with this particular case.
21:25 japhb Ah, accidental loss of history is understandable.  Thank you for trying to get it right in the first place.  :-)
21:27 bacek japhb, it was something like this http://github.com/bacek/nqp-rx/commit/c​e2ad08797597aeac94f05983cd40a50667d10cc
21:27 Whiteknight joined #parrot
21:27 bacek I just have to revert revert merge commit...
21:27 japhb Ah, I see, the plumage reference was in the commit message.
21:27 Whiteknight you better revert the revert correctly, or I'll have to revert you
21:28 bacek japhb, yes.
21:30 japhb Hmmm.  We should probably make it a policy to include such in the actual file itself (like I said, in a comment or doc section).  People rarely pay attention to commit messages after they slip into the past, and certainly a tarball snapshot (like with a release) would not contain that information.
21:31 bacek "japhb, but yes, I didn't update CREDITS file (as I should)"
21:32 pmichaud bacek: did you see my plan for nqp setting earlier in the backlog?
21:32 bacek pmichaud, nope.
21:32 bacek Is it about using git submodules?
21:33 pmichaud http://irclog.perlgeek.de/p​arrot/2010-05-13#i_2327289
21:33 pmichaud no, I'm not planning git submodules at the moment
21:33 pmichaud basically, I'll start cherry-picking stuff from your setting into the master branch later tonight, and set up the scripts so they're correctly copied into parrot ext/nqp-rx
21:34 bacek pmichaud, sounds good.
21:34 pmichaud people can then make updates to the master branch
21:34 pmichaud and we'll also start a test suite
21:34 bacek t/settings/
21:34 bacek I started it already
21:34 bacek :)
21:34 pmichaud yes, I see that as well.
21:34 pmichaud I'll take from there.
21:35 cotto_work It's a great day.
21:35 pmichaud as far as credits go, I'm going to worry mainly about code and hope that you/japhb/others will fix up credits as you deem appropriate
21:35 bacek I can create clean branch with cherry-picked commits for settings if it will help
21:35 pmichaud bacek: no, I plan to make some code modifications along the way anyway
21:35 pmichaud it's easy enough for me to grab stuff out of your repo
21:36 pmichaud as it is now :-)
21:36 bacek pmichaud, ok. Almost interesting commits were on 01/03/2010-02/03/2010
21:36 pmichaud good deal.
21:36 pmichaud I'm also not too concerned about maintaining the commit history on these files... should I be?
21:36 japhb *Some* of the utilities from Plumage have tests already that you can take.
21:36 pmichaud I was just going to grab pieces of the file as I did the review
21:37 pmichaud so, here's an important question...
21:37 kurahaupo joined #parrot
21:37 bacek pmichaud, (commit history) Not really. Just recommit it.
21:37 pmichaud should we develop a test harness in nqp, or just use the one that is in parrot?  ;-)
21:37 japhb Well, the one in Parrot was taken from Tapir, right?
21:38 pmichaud e.g., something along the lines of Test::More
21:38 japhb Ah, that part.
21:38 purl ah, that part is store dependent
21:38 pmichaud or rakudo's Test.pm
21:38 pmichaud I'm inclined to make one for nqp.
21:38 pmichaud (based on Rakudo's to some extent)
21:39 pmichaud anyway, feel free to add comments.  I have to shuttle kids from activity to activity for a short while.
21:39 japhb Sounds good to me.  Plumage just use's Parrot's Test::More because it's guaranteed to be there.
21:40 japhb (And it sanity tests Test::More, so clearly at some point I thought about the possibility of switching test modules)
21:40 pmichaud okay, wfm
21:40 pmichaud afk for a while
21:43 Whiteknight wfm = write the f*ing manual?
21:44 bacek japhb, http://gist.github.com/400498 - any comments/objections?
21:44 bacek wfm is works for me
21:44 Whiteknight ah
21:44 bacek purl, wfm?
21:44 purl wfm is, like, works for me (for lazy folks)
21:45 rbuels left #parrot
21:48 japhb bacek: Aside from your email being incorrect and a tiny grammar nit ("on Plumage" should be "for Plumage" or "in Plumage"), looks fine by me.  Didn't dukeleto have his hand in that code as well?
21:48 bacek He already in nqp CREDITS.
21:49 cotto_work purl, bacek?
21:50 purl bacek is THE MANIAC or some sort of magical coding robot
21:50 cotto_work bacek is also probably not pmichaud@pobox.com
21:50 purl okay, cotto_work.
21:51 bacek japhb, I've updated gist. Looks better?
21:51 bacek cotto_work, bah! :)
21:51 cotto_work it's true
21:52 japhb Yes, thank you bacek.
21:52 japhb Too bad we don't have a hugbot in here
21:52 cotto_work I'm really happy to see this getting straightened out so quickly.
21:55 bacek cotto_work, it was my fault.
21:55 bacek And it's fixed now - http://github.com/bacek/nqp-rx/commit/9​2530624bff2c45a70da3129dfd632c43d0d90da
21:55 cotto_work It would have some up one way or another.
21:56 cotto_work btw, why's tapir in parrot?
21:56 bacek Anyway, looks like we can merge ops_pct really soon.
21:56 japhb bacek++
21:56 japhb cotto_work, that's the other item to be resolved.
21:56 cotto_work very yes
21:59 bacek msg pmichaud CAN I HAZ NQP COMMIT BIT?
21:59 purl Message for pmichaud stored.
21:59 * bacek did update lolcode to nqp-rx :)
22:00 bacek cotto, btw, we should start thinking about nominating "ops" language.
22:00 cotto_work What do you mean by "nominating"?
22:00 dukeleto joined #parrot
22:00 cotto_work like for an award? ;)
22:00 PerlPilot joined #parrot
22:01 bacek My current preferences - slightly patched nqp to support typed variables.
22:01 cotto_work oic
22:01 cotto_work for implementing ops
22:01 Util joined #parrot
22:01 bacek I just don't want to implement C parser.
22:01 cotto_work That's because you're sane.
22:01 cotto_work It's possible but it'd be a huge time sink.
22:01 japhb Clearly a personality flaw.
22:02 japhb If you're sane after staring into the heart of the beast, something is wrong.  :-)
22:02 Tene bacek: is there a PEG of C?  Allison has been working on a PEG parser.
22:02 dalek joined #parrot
22:02 cotto_work ohai dalek
22:03 bacek Tene, "PEG"?
22:03 Tene http://en.wikipedia.org/wiki​/Parsing_expression_grammar
22:04 Tene more generally, it might be useful to find a grammar for C in some other grammar language, and then translate that.
22:05 bacek Tene, it's not so easy to translate it. And I don't see any advantages of writing ops in "C".
22:05 pmichaud joined #parrot
22:05 Tene Ah.  I should have read more scrollback.
22:06 bacek And they are currently requires not only parsing but at least working macro-substitution.
22:06 Tene I was just glancing here while waiting for something to run at work, and just saw "C grammar" without looking at the context. :)
22:06 darbelo Ops in "C" can't really reuse other ops easily. That shoud be addressed in whatever language we end up using.
22:07 cotto_work My inclination would be to define Lorito and demonstrate that it's usable to implement a few key ops by implementing them directly in it, then building the ops hll on top of that.
22:09 bacek we still need "C emitter" for boostraping.
22:09 cotto_work yes
22:10 darbelo Sure, but PCT can support 'pluggable' emiters by stage swapping.
22:11 cotto_work It'll be easiest to define Lorito and build the Lorito to C translator and get it tested, then build HLL stuff on top of that.
22:11 cotto_work imo
22:12 cotto_work my picture of how it all fits together is admittedly fuzzy
22:12 cotto_work seen chromatic
22:12 purl chromatic was last seen on #parrot 1 days, 17 hours, 21 minutes and 58 seconds ago, saying: The only interesting part of the merge is a series of conflicts on NQP-rx.  [May 12 04:50:38 2010]
22:12 darbelo OTOH, a big part of our ops will just be a NCI call to libparrot in the start...
22:15 darbelo bacek: Have you given any thiught to calling C from 'Augmented NQP'?
22:15 bacek darbelo, I'm not going to.
22:15 bacek http://irclog.perlgeek.de/p​arrot/2010-05-13#i_2325357
22:16 bacek darbelo, I just want to generate C from it
22:16 bacek (as first step)
22:17 darbelo bacek: Yes, but a lot of out ops are just calls to supporting functions in libparrot.
22:17 darbelo inline op chopn(out STR, in STR, in INT) :base_core { $1 = Parrot_str_chopn(interp, $2, $3);
22:17 darbelo }
22:17 cotto_work Is it possible to subclass nqp in such a way?
22:17 cotto_work a la Perl 6
22:18 bacek cotto_work, we don't need to subclass nqp (assuming it has typed variables). We need new stage in PCT::Compiler
22:18 bacek darbelo, it's "lorito ops side of story"
22:19 bacek cotto, PAST::Compiler.to_c
22:20 bacek msg sorear Can you put youself into nqp CREDITS?
22:20 purl Message for sorear stored.
22:20 cotto_work turn a past into C?  Sounds interesting.
22:20 bacek cotto_work, yes. It was original plan.
22:20 davidfetter joined #parrot
22:20 darbelo Okay, I'm missing a step here.
22:23 * bacek thinking about putting "ops syntax" into DEPRECATED.pod
22:23 cotto_work btw, t/compilers/opsc/common.pir is getting clobbered in ops_pct by test-clean where it nukes t/compilers/*/*.pir.  What's the best fix for that?
22:24 darbelo replace the first '*' with the right expansion
22:25 darbelo Most likely several t/compilers/<compilernamehere>/*.pir lines
22:25 pmichaud nqp eventually hopes to be able to provide int/num/str to provide access to I, N, and S registers directly
22:26 cotto_work {data_json|imcc|...} seems to work
22:26 pmichaud i.e.,   my int $x := 3;   means that $x corresponds to a Parrot $In register
22:26 pmichaud major blocker/difficulty there is that parrot lexicals can only be PMCs at the moment.
22:27 cotto_work darbelo, can you fix that?
22:27 bacek pmichaud, can we at least support types in grammar?
22:28 pmichaud depends on what you mean by 'types'
22:28 pmichaud there's a bit of a challenge here in that   perl 6's type specifiers are constraints, not coercions
22:29 pmichaud so, technically,   my int $x := 2.0;  ought to throw an exception, not silently convert the 2.0 into an integer 2
22:29 darbelo cotto_work: I'm on it.
22:29 pmichaud but if we just wanted to parse (and otherwise ignore) typenames for now, we could potentially do that.
22:29 bacek pmichaud, I'm going to use nqp for parsing purpose only (atm)
22:30 bacek pmichaud, yes. This is exactly what I want :)
22:30 bacek and Parrot's only multi-dispatch
22:30 pmichaud bacek: I'll look into it.  :)
22:30 bacek and pony
22:30 cotto_work bacek: you want it in the PAST too, don't you?
22:31 bacek cotto_work, PAST is part of parsing from my point of view :)
22:31 pmichaud well, PAST allows any sort of arbitrary flags to be hooked onto the nodes
22:31 pmichaud (not highly recommended, but it's there if needed)
22:31 pmichaud to me, PAST is part of semantic analysis, not parsing.
22:32 pmichaud parsing produces a parse (match) tree.  semantic analysis/actions then produce the ast.
22:32 bacek How hard/reasonable is to implement multi-dispatch in nqp? E.g. class Foo { multi method bar( <type> $arg ) }.
22:33 pmichaud I've been wanting to look into that, yes.
22:33 bacek (With direct mapping to parrot)
22:33 pmichaud part of the challenge is being able to recognize types.
22:33 bacek <ident> ** '::'?
22:34 pmichaud well, subnames are also idents
22:34 pmichaud at the moment nqp does tend to treat any bareword as a type, yes.
22:35 pmichaud (which is why we don't have listop parsing)
22:39 Limbic_Region joined #parrot
22:42 bacek afk # shoppi^W $dayjob
22:45 cotto_work I need to write up a full Lorito plan so we can point at it and say that it's wrong instead of pointing at ideas in our heads and saying that they're wrong.
22:49 * darbelo points at the ideas in cotto's head.
22:50 eternaleye joined #parrot
22:55 darbelo There is some serious overdeletion going on in test-clean...
22:57 cotto_work yarly
22:57 darbelo Seriously, *stabs* files?
22:58 Psyche^ joined #parrot
22:58 cotto_work What are those?  That sounds familiar.
22:58 darbelo Excecutable debug format.
22:59 darbelo What gcc used before DWARF2.
22:59 darbelo From the 3.X.X days.
23:00 darbelo .oO( That's "today" on my platform )
23:01 darbelo Maybe it's a leftover from the ehn the exec runcore was alive ?
23:02 cotto_work likely enough
23:07 joeri joined #parrot
23:11 snarkyboojum joined #parrot
23:12 eternaleye joined #parrot
23:20 cotto_work Isn't OpenBSD moving to LLVM?
23:20 darbelo Not until it supports VAX ;)
23:27 GeJ aren't they moving toward PCC?
23:29 darbelo GeJ: Technically, yeah. But pcc is still not there yet, even on i386 it still has some codegen issues. (Or had, last I checked.)
23:33 cotto_work The PCC wiki, while functional, has all the design prowess I'd expect from a highly technical bunch of OpenBSD hackers.
23:35 darbelo It renders fine on lynx ;)
23:35 cotto_work I'm sure that's important.
23:37 darbelo And I think the main guy behind pcc is a NetBSD hacker :)
23:42 dalek tracwiki: v5 | actown++ | TreeUnit
23:42 dalek tracwiki: Fixed mscgen example. You might want to remove it.
23:42 dalek tracwiki: http://trac.parrot.org/parrot/wiki/​TreeUnit?version=5&amp;action=diff
23:42 dalek tracwiki: v6 | actown++ | TreeUnit
23:42 dalek tracwiki: Removed mscgen example. Moving to its own page.
23:42 dalek tracwiki: http://trac.parrot.org/parrot/wiki/​TreeUnit?version=6&amp;action=diff
23:42 dalek tracwiki: v1 | actown++ | Mscgen
23:42 dalek tracwiki: Working example of mscgenplugin.
23:42 dalek tracwiki: http://trac.parrot.org/parrot/wiki​/Mscgen?version=1&amp;action=diff
23:43 cotto_work actown?
23:48 sorear pmichaud: I'm back
23:49 sorear pmichaud: Did you get to look at anything re. lexical persistence in subs?
23:50 sorear pmichaud: I don't really have a problem with coercions in NQP.  NQP can't be a subset of Perl6 forever (and it isn't, anyway - pir::)
23:51 darbelo Crap. Forgot to dcommit. Again.
23:52 darbelo cotto_work: How does r46594 look?
23:53 cotto_work checked-in files don't get nuked so I'm happy
23:57 dalek parrot: r46594 | darbelo++ | branches/ops_pct/config/gen/makefiles/root.in:
23:57 dalek parrot: Make the cleanup rules for t/compilers* a bit more specific to avoid deleting we don't want deleted.
23:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46594/
23:58 LoganLK joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced