Camelia, the Perl 6 bug

IRC log for #parrot, 2009-10-30

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:03 dalek parrot-linear-algebra: 2a60816 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
00:03 dalek parrot-linear-algebra:  put methods together and add some stub POD
00:03 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/2a608164443329bdca50c3c9a1a9ef1464c71ba7
00:03 dalek parrot-linear-algebra: 5a3e8c2 | Whiteknight++ | t/10-nummatrix.t:
00:03 dalek parrot-linear-algebra: add stub tests for all the new vtables and methods
00:03 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/5a3e8c2421bbfb334696de97771b4d70902f3840
00:03 dalek parrot-linear-algebra: 0a57757 | Whiteknight++ | t/10-nummatrix.t:
00:03 dalek parrot-linear-algebra: add tests for get_attr_str
00:03 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/0a577575ad97c0f886842db533a4445aa7454c9e
00:03 dalek parrot-linear-algebra: 9bac16d | Whiteknight++ | t/10-nummatrix.t:
00:03 dalek parrot-linear-algebra: -a
00:03 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/9bac16d2b1132a24116961fc0d9182f60ecb99a4
00:07 theory joined #parrot
00:17 dalek parrot: r42166 | coke++ | trunk/t/compilers/tge/grammar.t:
00:17 dalek parrot: use standard way to reference a ticket.
00:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42166/
00:19 Whiteknight I'm getting an occasional segfault in clear_sym_hash during interpreter destruction
00:19 Whiteknight I'm seeing it when I am testing NumMatrix2D
00:19 Whiteknight as of my most recent pla commit
00:19 Whiteknight actually, I think I saw it earlier, but couldn't reproduce it
00:20 Zak joined #parrot
00:22 cotto_work Whiteknight, you could try hard-coding the value in src/str/api.c+275 and see if any values cause a reliable crash.
00:22 mikehh in tests do we have something in ENV like $ENV{TEST_PROG_ARGS} to determine the equivalent of $Pconfig{cpuarch} without invoking use Parrot::Config qw(%PConfig);
00:23 dalek parrot: r42167 | coke++ | trunk/compilers/imcc (2 files):
00:23 dalek parrot: Remove reference to RT #32421, which was resolved on 11/16/04
00:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42167/
00:29 dukeleto 'ello
00:30 Whiteknight hello dukeleto
00:30 mikehh howdy
00:31 dukeleto how goes it?
00:31 darbelo dukeleto: http://irclog.perlgeek.de/p​arrot/2009-10-29#i_1661429
00:31 dukeleto Whiteknight: before we copy-and-paste my pure parrot test harness everywhere, it should get some improvements and a canonical home. so far, the canonical home is plumage
00:32 darbelo loong discussion of the other duscussion.
00:32 dukeleto darbelo: yep, i read most of that
00:33 darbelo You up for some templatin'?
00:33 dukeleto there is one thing that is going to bite us with CBLAS, and that is that Parrot does not know the difference between a float and a double
00:33 dukeleto at first, we can just only implement the double algorithms. That is what I did with Math::GSL::BLAS
00:33 dukeleto the float algorithms give less precision, but they are faster
00:34 darbelo an need less memory.
00:34 dukeleto i would like to pose that question to Allison. *Should* Parrot know/care about the difference between floats and doubles?
00:34 dukeleto we lots of performance if it doesn't
00:34 dukeleto s/we lots/we lose lots/
00:35 darbelo dukeleto: For now, we can fake it. We'll have a "Matrix of single" that uses floats internally.
00:36 Whiteknight dukeleto: I agree, we should standardize the harness. pla and matrixy should import it
00:36 dukeleto darbelo: ok, sounds good. We need to come up with a spec for all the data types we plan to need in parrot-linear-algebra
00:36 Whiteknight we won't make any local changes to the harness
00:36 darbelo Whiteknight: git submodules do what you want.
00:36 dukeleto Whiteknight: awesome. any bugfixes/features to the harness should be done in the plumage repo
00:37 dukeleto oooooooooh, a reason to finally use submodules!
00:37 japhb dukeleto, I've been thinking about this
00:37 dukeleto should the harness have it's own repo?
00:37 Whiteknight if PLA is installed via plumage, plumage can make the harness available
00:37 japhb Since I came up with the 'this' noun for plumage,
00:37 Whiteknight of course, that then limits us to installation via plumage
00:37 dukeleto the harness needs to be tested, if anybody is up for some real fun. *hint hint*
00:37 japhb then plumage can use its configure, its test harness, and so on,
00:38 Whiteknight submodules in git: I assume those are like externals in SVN?
00:38 dukeleto Whiteknight: mostly
00:38 japhb and project metadata can just specify configure and 'test' type 'plumage'.  And plumage becomes the official way to do those things for that project.  That way we're not copying configure scripts and test harnesses and such all over the place
00:39 dukeleto japhb: sounds reasonable. patches welcome :)
00:39 japhb Whiteknight, I'm thinking that plumage really ought to be considered a standard Parrot tool.  It's Just There.
00:39 dukeleto japhb++
00:39 Whiteknight +1
00:39 purl 1
00:39 dukeleto Plumage help Parrot fly.
00:39 dukeleto s/help/helps/
00:39 * dukeleto cannot type today
00:40 japhb dukeleto, When A) I manage to fit two brain cells together, and B) nqp-rx gets 'has $!foo' working, Plumage is going to get some major work done.
00:40 japhb I've got a lot of queued up ideas.
00:40 japhb Damn Flu.
00:40 Whiteknight write notes
00:40 japhb I have been writing some.
00:40 xenoterracide joined #parrot
00:40 jonathan japhb: Aww. Get well soon.
00:40 japhb Others are still stuck in my head.
00:40 Whiteknight I started an entire blog to be my todo-list
00:40 japhb heh
00:41 Whiteknight and now I have a very verbose record of things that I've failed to do :)
00:41 japhb :-)
00:41 dukeleto japhb: get well soon. pmichaud says that we should be able to run plumage's test suite with nqp_rx
00:41 dukeleto japhb: do you want to give it a whirl? i haven't tried yet
00:42 japhb Sure, give me a bit,
00:42 japhb I need to recompile the world.
00:42 dukeleto japhb: i think it will teach both sides of the fench about things they did not know
00:42 dukeleto japhb: which hopefully is of some use
00:42 japhb nodnod
00:42 dukeleto japhb: supposedly it is currently ~2x slower
00:43 Whiteknight every change to parrot is 2x slower
00:43 darbelo ~2xOuch.
00:43 japhb Did nqp-rx get a 'make install' and a .json file yet?
00:43 Whiteknight so it's par for the course
00:43 darbelo japhb: I'm working on one.
00:43 dukeleto japhb: but as long as all of our code still works, or we can rewrite it in fewer lines, I am happy.
00:43 japhb darbelo++
00:43 japhb yes.  There will be much chopping and dicing of plumage lines, I think.
00:44 japhb I hope, at least.
00:44 abqar joined #parrot
00:44 * dukeleto hopes that pmichaud is hacking at the roots of evil
00:45 Coke darbelo: *thbbbthp*
00:45 darbelo Coke: huh?
00:45 darbelo thbbbthp?
00:45 japhb dukeleto, I thought nqp-rx was supposed to be wicked fast.  What happened?
00:46 jonathan Wait, wait...
00:46 jonathan *compiling* regexen probably got slower
00:46 jonathan I think that's the bit that got ~2 times slower.
00:46 japhb jonathan, due to being more spec-compliant?
00:46 jonathan The actual matching is apparently a good chunk faster. :-)
00:47 jonathan japhb: Well, partly also because it produces better code, I think. ;-)
00:47 japhb Good!
00:49 Coke darbelo: something in backscroll
00:49 darbelo Oh, the gazzillion PMCs?
00:51 darbelo It's meant as a joke. I hope you didn't take it the wrong way.
00:52 * dukeleto is offended at the over creation of PMCs
00:53 darbelo Wait. Dit that just get added to ParrotQuotes?
00:54 japhb darbelo, can you push your nqp-rx.json in progress?
00:55 darbelo japhb: done.
00:55 Whiteknight in clear_sym_hash, the value "p" is being set to 0x4008000000000000, which is (double)3.0
00:55 japhb darbelo, much grass.
00:55 Whiteknight so somewhere in there we are overwriting memory with a FLOATVAL
00:55 darbelo And now. Leaving.
00:55 japhb Have a good evening!
00:56 * darbelo nedds the sleeps.
00:57 dalek TT #1161 created by coke++: pdump - Dumping constants shouldn't unpack the constants
00:58 Zotoaster joined #parrot
00:59 dalek parrot-plumage: b8f5be2 | darbelo++ | :
00:59 dalek parrot-plumage: Add WIP nqp-rx metadata file.
00:59 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/b8f5be2fdf3ffa486414fc2f4ff38f273639866c
01:00 Zotoaster joined #parrot
01:00 Whiteknight okay, segfault is being caused by VTABLE_set_attr_str()
01:00 Zotoaster hello folks
01:00 purl well, hello folks is there a place of nightly Rakudo/Parrot tarballs?
01:01 japhb purl, forget hello folks
01:01 purl japhb: I forgot hello folks
01:01 Zotoaster a bot i'm guessing
01:01 japhb Zotoaster, yep.  And welcome!
01:01 Zotoaster thank you
01:01 Zotoaster actually I had a few questions about parrot
01:02 Zotoaster well actually, not parrot specifically, more on using it
01:03 jonathan Zotoaster: If you're really lucky, some of us will have answers for you. :-)
01:03 Zotoaster awesome
01:03 Zotoaster well, here's the thing. My scripting language compiles to a stack-based instruction set, as you'd expect, and I can't find any links on how to compile to register based instructions
01:03 Zotoaster anyone know anything?
01:03 purl anything is easy if you read the docs ;)
01:05 japhb Zotoaster, what tools is the scripting language currently written in?
01:05 Zotoaster everything's made in C++. Made my own lexer, compiler, VM, etc
01:06 dalek parrot: r42168 | coke++ | trunk/t/op/calling.t:
01:06 dalek parrot: Add a test for 41583
01:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42168/
01:06 japhb winxed?
01:06 purl rumour has it winxed is not javascript, just uses a familiar syntax
01:06 jonathan Zotoaster: Yes, it's a little trickier. On the other hand, you don't have to worry about register allocation and having a limited number of registers, since Parrot can take care of that bit for you.
01:06 Zotoaster neat
01:07 Zotoaster I did try out a little idea in python, which I don't know if it could be made to work with parrot
01:07 Zotoaster basically is assumes the register file is a stack. I.e, reg1, reg2, reg3, etc
01:08 japhb Zotoaster, yowsa.  There are some papers about stack -> register conversion (usually WRT for example converting Java bytecode).  But how much of your stack are you thinking of moving to Parrot?  With PCT you can do the whole thing top to bottom.  And someone has been working on a language written in C++ that emits PIR code for Parrot.
01:08 jonathan Generating code for a register machine from a tree isn't so bad though - you're just creating the results of each operation in a register, and then referring to those registers in the nodes further up the tree.
01:08 Zotoaster when you load a value, put it in an unused register. When you do an operation, like add, you have something like, add reg1, reg1, reg2
01:08 Zotoaster hmm
01:08 Zotoaster that's an interesting thought eh? :P
01:09 jonathan Alternatively, Parrot's compiler toolkit has an AST representation. If you can build one of those instead, you don't ahve to worry about generating the register machine code. :-)
01:09 jonathan *have
01:09 Zotoaster now we're talking!
01:09 Zotoaster so how does it work?
01:10 japhb Zotoaster, that's part of what I was referring to in PCT being able to do the whole stack.
01:10 |Zotoaster| joined #parrot
01:10 |Zotoaster| sorry got d/c
01:10 dalek TT #1162 created by chromatic++: Pg NCI Test Makes Unportable Connection
01:11 japhb Parrot provides a grammar engine, PGE, that does lex/parse -> AST.  There is then an AST -> OST (opcode ...) converter, an OST -> assembly converter, and then an assembly -> bytecode conversion.
01:11 japhb source --> PAST --> POST --> PIR --> PBC --> VM
01:11 |Zotoaster| ah
01:12 jonathan It's still under construction, but the PCT Book on http://docs.parrot.org/parrot/latest/html/ should give you an idea.
01:12 |Zotoaster| so I just provide the grammar?
01:12 japhb You provide the grammar and AST builder (using some pretty powerful tools), and then the rest is done for you.
01:12 jonathan Generally, you write a grammar, some "actions" to transform the grammar into the AST, and then your built-ins.
01:12 |Zotoaster| ah ok
01:13 jonathan That's if you want to use the full PCT stack, of course.
01:13 |Zotoaster| I'd like to know how the AST system works, because my scripting engine lacks an AST
01:13 jonathan The AST is basically just a bunch of different types of node.
01:14 jonathan It's detailed at http://docs.parrot.org/parrot/lates​t/html/docs/pdds/pdd26_ast.pod.html but basically has nodes for things like blocks, variables, values, and various other operations.
01:15 japhb |Zotoaster|, give me a sec, I'll send you a link of some language source, so you can see what it looks like in action
01:15 |Zotoaster| cheers
01:15 jonathan japhb: Please say that wasn't a pun. ;-)
01:16 japhb jonathan, nope, not guilty.  :-)
01:16 jonathan japhb: Aww. :-)
01:16 japhb |Zotoaster|, look at the three files here: http://github.com/perl6/nq​p-rx/tree/master/src/NQP/
01:17 japhb That one's being actively developed by the guy who wrote most of our compiler tools stack.
01:17 japhb In fact, it's more or less angling to be the next version -- written in *itself*.
01:17 japhb already bootstrapped.
01:17 dukeleto 'the guy' is also the lead developer of rakudo (perl 6 on parrot). his name is pmichaud
01:17 dalek TT #1163 created by pmichaud++: PGE: refactor pod_comment rule into PGE/Util.pbc
01:17 dukeleto pmichaud++ is awesome # nqp_rx is just the most recent example of that
01:18 japhb dukeleto, his name and picture are on the page I linked to.  ;-)
01:18 dukeleto japhb: touche!
01:18 |Zotoaster| i'll check that out
01:18 japhb |Zotoaster|, look at the .pm files first.
01:18 japhb That's the high level code.
01:19 dukeleto |Zotoaster|: nqp is the highest level language that Parrot understands natively and comes bundled with.
01:19 japhb The .pir is assembly language code to hook into the right Parrot bits.
01:19 |Zotoaster| yeah saw tat on wikipedia :p
01:20 japhb |Zotoaster|, Grammar.pm is probably the first file to look at, then Actions.pm
01:20 japhb OK, Have to go, dinner
01:20 |Zotoaster| later
01:20 japhb Good luck, |Zotoaster|, and enjoy!
01:20 |Zotoaster| thanks very much :D
01:27 * dukeleto is setting up the benchmark server for running parrot benchmakrs
01:27 dukeleto benchmarks, even
01:28 jonathan dukeleto: ohawesome
01:28 jonathan dukeleto: What would it take to do a similar thing for Rakudo?
01:28 * dukeleto imagines a web3.0 REST interface for graphing and requesting benchmarks
01:28 dukeleto jonathan: asking me ;)
01:28 jonathan yay web3.0
01:28 eternaleye joined #parrot
01:28 jonathan dukeleto: Consider yourself asked. :-)
01:29 Whiteknight okay, the indexing is definitely broken
01:29 jonathan dukeleto: http://github.com/rakudo/rakudo​/blob/master/tools/benchmark.pl is the thingummy I use at the moment.
01:29 dukeleto jonathan: Sounds good. I would love to benchmark rakudo. It is like benchmarking a "real" parrot application ;)
01:30 jonathan dukeleto: But I don't record the results anywhere, I just run it now and then to see what happened when I did some changes.
01:30 dukeleto jonathan: i have something that I use to benchmark all released versions of parrot vs. trunk and whichever branches that people want to throw in there
01:30 jonathan I did ponder setting something up myself, it was on my "todo" list. But if you're doing it for Parrot and it's easy for you to do Rakudo too, that's excellent.
01:31 dukeleto jonathan: euler_bench can emit JSON
01:31 dukeleto jonathan: it is being "re-branded" toolbench, since it is now independent of the Euler Project number scheme
01:32 jonathan OK. The benchmarks in that fail are of interest to me, in that they track performance of various things that Perl 6 programs use heavily.
01:32 dukeleto jonathan: it allows you to say, in a yaml file, here is a list of languages, each with list of interpreter binaries, and say, run all of these against this file over here, and give me all the stats
01:32 jonathan OK, sounds like a richer architecture than anything I was going to build. :-)
01:33 dukeleto this has evolved from the benchmarking needs of at least 5 angry people, me included ;)
01:33 jonathan I'm not angry, I just wanted my benchmarking stuff automated yesterday dammit!"
01:33 jonathan I mean, uh...
01:34 jonathan ;-)
01:34 dukeleto it lives at http://github.com/notbenh/euler_bench for now
01:34 nopaste "dukeleto" at 69.64.235.54 pasted "example of toolbench yaml file" (31 lines) at http://nopaste.snit.ch/18499
01:37 jdv79 left #parrot
01:39 dukeleto msg moritz getting Benchmark::Stopwatch installed would really help. it is failing to install into my homedir for some dumb reason
01:39 purl Message for moritz stored.
01:40 integral joined #parrot
01:41 Coke RT down to 135 tickets.
01:41 dukeleto coke++
01:42 dalek parrot-linear-algebra: 6bbc362 | Whiteknight++ |  (2 files):
01:42 dalek parrot-linear-algebra: add tests for get/set pmc vtables. Also, added comments for other tests
01:42 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/6bbc362dae5eaae91f45fc8a9dd7dbb048e416c6
01:42 dalek parrot-linear-algebra: 0a67263 | Whiteknight++ |  (3 files):
01:42 dalek parrot-linear-algebra: indexing was broken, and was creating a memory corruption segfault. Fixed indexing, cleaned up some code, etc. Should all work now
01:42 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/0a6726394a0dbcdbef6ad1034fef48b79d844ff1
01:43 dukeleto wow, it is really great to see lots of action on PLA. Whiteknight++ , keep it up!
01:45 jonathan There's been an incredible amount of hacking done on a lot of projects this month. It's really great to see.
01:45 mikehh joined #parrot
01:49 dukeleto it is poised to continue. parrot on RTEMS and pl/parrot will pick up soon
01:51 jonathan Things are going nicely on the Rakudo side of things too, and I hope to pick up Blizkost again shortly.
01:53 dukeleto jonathan: yes, blizkost fell off my radar for a while. I will be back to visit soon as well :)
01:54 jonathan Yeah, I went to wander around Asia for a while, and have been busily hacking away on my Rakudo grant since I got back. :-)
01:54 jonathan The grant is going pretty well though. :-)
01:54 dukeleto jonathan: great to hear! i hope you attained many levels of enlightenment in your journeys
01:56 jonathan I liked the level where I discovered Korean food especially so. :-)
01:56 jonathan Anyway, it's 3am...I guess I should sleep for a bit.
01:57 jonathan o/
02:24 chromatic joined #parrot
02:37 Zak joined #parrot
02:55 mokurai joined #parrot
03:09 theory joined #parrot
03:12 chromatic Housecleaning++
03:15 dalek parrot: r42169 | chromatic++ | trunk/t (4 files):
03:15 dalek parrot: [t] Rewrote several PASM tests to PIR and a few PIR tests to declare vtable
03:15 dalek parrot: overrides with :vtable attribute rather than implicit leading underscores.
03:15 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42169/
03:18 dalek parrot: r42170 | chromatic++ | trunk/src/pmc/namespace.pmc:
03:18 dalek parrot: [PMC] Removed implicit double-underscore prefix logic to override vtable
03:18 dalek parrot: entries when adding Subs to NameSpace PMC.  If PASM still needs a fix, let's do it the right way and add the :vtable attribute to pcc_sub declarations.
03:18 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42170/
03:25 * dukeleto has euler_bench working on the benchmark server
03:26 * dukeleto is also sitting next to chromatic at the pdx hackathon.
03:35 janus joined #parrot
04:08 Coke hurm. if I want to avoid a segfault on s->strlen, is s?s->strlen:0 sufficient?
04:11 chromatic Seems so.
04:11 Coke oh. I'm segfaulting on the assert? hurm.
04:12 chromatic Are you getting a SIGABRT?
04:13 Coke segfault.
04:13 purl well don't DO that, then.
04:13 Coke whichever that is.
04:13 Coke TT #1136
04:13 chromatic dukeleto: alias cg='valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes'
04:13 chromatic SIGSEGV, on a real OS.
04:14 chromatic I expected the assert to fail with whatever signal that is, likely ABORT.
04:14 Coke this is... amd64, linux?
04:17 Coke if I change the arg to NOTNULL, seems to have no effect.
04:22 chromatic Can you nopaste a backtrace?  I'll look when I get home.
04:22 dalek nqp-rx: 4119f01 | pmichaud++ | src/NQP/ (2 files):
04:22 dalek nqp-rx: [nqp]:  Refactor handling of lexicals and packages.
04:22 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/4​119f01306f55c67315a123c864ca424180f27ed
04:23 Coke chromatic: in the ticket. Thanks.
04:23 Coke https://trac.parrot.org/parrot/ticket/1136
04:24 dalek parrot: r42171 | chromatic++ | trunk/t/pmc/eval.t:
04:24 dalek parrot: [t] Avoided use of uninitialized variable when checking runcore under testing.
04:24 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42171/
04:24 dalek parrot: r42172 | chromatic++ | trunk/src/pmc/namespace.pmc:
04:24 dalek parrot: [PMC] Extracted several static functions from NameSpace's set_pmc_keyed_str()
04:24 dalek parrot: in the hope of clarity and preventing the insertion of methods into the
04:24 dalek parrot: namespace (TT #389).
04:24 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42172/
04:26 nopaste "chromatic" at 72.11.81.253 pasted "Allow NULL STRING in Parrot_str_byte_length (Coke, TT #1136)" (42 lines) at http://nopaste.snit.ch/18500
04:27 chromatic Try that, Coke.
04:27 chromatic Also vote for me; I'll add STRINGNULL.
04:27 * dukeleto has all released versions of parrot compiled on the benchmark server
04:29 Coke tsting...
04:30 Coke chromatic: avoids the segf.
04:31 Coke chromatic: testing parrot...
04:32 Coke chromatic: all tests pass in parrot's make test.
04:35 Coke ship it.
04:37 Coke how does one delegate to a super vtable when your parent isn't a PMC?
04:37 Coke (if it's a PMC, you can getattribute 'proxy')
04:55 * Coke writes up the question and ships it to the list.
04:59 dukeleto ok, what branches are "active" ?
05:00 dukeleto i.e. which branches do people want me to run benchmarks on?
05:01 dukeleto we have 14 current branches
05:02 Coke dukeleto: rerun the branch analyzer.
05:02 Coke (and post the results on whatever wiki page that is.)
05:02 Coke that'll show which ones have recent commits, anywya.
05:03 Coke tools/dev/branch_status.pl
05:03 Coke ->zzz
05:11 Eevee joined #parrot
05:26 dalek nqp-rx: 0fdf10b | pmichaud++ | src/NQP/ (2 files):
05:26 dalek nqp-rx: [nqp]:  Initial implementation of 'has' scope declarator.
05:27 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/0​fdf10bf88966442a61476c4221610bd892aca14
06:00 nopaste "dukeleto" at 32.152.216.53 pasted "fib.pir across all parrot versions (optimized) and trunk on linux 2.6.26" (13 lines) at http://nopaste.snit.ch/18501
06:05 dukeleto Coke: thanks! coke++
06:05 dukeleto those two benchmarks are a bitter pill
06:05 * dukeleto is running a primes.pasm benchmark now
06:08 cotto dukeleto, why are 1.6.0 and 1.7.0 transposed?
06:08 cotto and 1.0.0/1.1.0
06:09 dukeleto cotto: those are ordered by speed
06:09 dukeleto cotto: if you notice, they are going in the wrong direction. the newest parrots are the slower :(
06:09 dukeleto s/slower/slowest/g
06:09 cotto gotcha
06:09 cotto first make it work, then make it fast
06:10 dukeleto cotto: columns are : min, max, avg, total
06:10 cotto but yeah, we've got some catching up to do
06:10 dukeleto cotto: some benchmarks are in our favor, some are not
06:12 cotto it'd be nice to have a rakudo-like benchmark that didn't involve actually using rakudo
06:13 dukeleto cotto: i will set up Rakudo benchmarks soon
06:13 dukeleto cotto: what like of rakudo-like benchmark do you want?
06:13 cotto the only problem is that rakudo keeps changing, so we'd be testing rakudo's implementation too
06:13 dukeleto cotto: that is what they want ;)
06:14 dukeleto cotto: i already have pure-parrot benchmarks
06:14 cotto something like complete_workflow.t, i.e. compile/use a simple language
06:14 dukeleto cotto: they are simple to run but not very real-world
06:14 cotto s/compile/build/
06:14 cotto it's always a compromise
06:16 cotto it may not be worthwhile to build such a benchmark.  If rakudo's happy, simpler languages (all of them ;) should be able to figure something out.
06:16 desertm4x joined #parrot
06:21 dukeleto primes.pasm across all released versions of parrot (optimized) + trunk on linux 2.6.26 : http://nopaste.snit.ch/18503
06:21 dukeleto that is slightly better
06:21 dukeleto these results are very different from what I got on darwin
06:21 particle joined #parrot
06:21 * dukeleto needs some fried pies
06:26 nopaste "dukeleto" at 32.152.216.53 pasted "freeze.pasm across all released versions of parrot (optimized) and trunk" (13 lines) at http://nopaste.snit.ch/18504
06:31 patspam joined #parrot
06:37 TiMBuS joined #parrot
06:41 cotto are those numbers sane?  What happened between 0.8.1 and 0.8.2?
06:42 cotto (referring to primes.pasm)
06:55 theory joined #parrot
06:59 dukeleto cotto: i am only the messenger
07:09 uniejo joined #parrot
07:19 desertm4x_ joined #parrot
07:25 Zak joined #parrot
07:32 chromatic joined #parrot
07:37 fperrad joined #parrot
07:42 chromatic dukeleto, are these optimized builds?
07:42 chromatic Maybe that's what "(optimized)" means.
07:43 uniejo joined #parrot
07:46 iblechbot joined #parrot
07:49 mokurai left #parrot
07:50 dalek parrot: r42173 | chromatic++ | trunk (2 files):
07:50 dalek parrot: [string] Made Parrot_str_byte_length() check for a NULL STRING pointer because
07:50 dalek parrot: we don't have STRINGNULL yet.  Fixes TT #1136, reported by Will Coleda.
07:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42173/
07:51 dalek TT #1136 closed by chromatic++: interactive partcl segfaults in Parrot_str_byte_length
08:02 dukeleto chromatic: yes, all optimized
08:04 dukeleto chromatic: so you want the output of just a single run of the benchmark across all versions/branches with valgrind?
08:04 chromatic Yes, please.  That'll be much more accurate.
08:05 chromatic A callgrind run will likely be 60x slower than an individual run, but it'll give deterministic Instruction Counts, which is what we'll compare.
08:05 dukeleto chromatic: which benchmark is most useful to you?
08:06 chromatic fib.pir, then primes.pasm, then oofib.pir.
08:06 dukeleto ok
08:06 mikehh joined #parrot
08:09 moritz dukeleto: Benchmark::Stopwatch installed
08:09 dukeleto moritz: i already have it in my homedir, but thanks :)
08:10 dukeleto moritz: i have been running lots of benchmarks on the server already. thanks for setting me up!
08:11 moritz np
08:20 dukeleto moritz: how about valgrind 3.5 ? that would be quite useful to have installed
08:22 dukeleto chromatic: valgrind: Bad option '--dump-instr=yes'; aborting.
08:22 dukeleto chromatic: on valgrind-3.3.1-Debian
08:23 chromatic You can elide that.
08:25 moritz dukeleto: done
08:25 dukeleto chromatic: the other flag gave me the same, so I am currently running with no flags
08:25 dukeleto moritz: awesome!
08:25 purl awesome is a window manager or at http://awesome.naquadah.org or awesome!
08:26 dukeleto moritz: i will be pegging a CPU for a while, currently running fib.pir on all released parrots under valgrind ;)
08:26 moritz feel free.
08:34 mokurai1 joined #parrot
08:42 mokurai1 left #parrot
08:43 xenoterracide joined #parrot
09:11 Zak joined #parrot
09:12 mikehh chromatic: re r42171 there are a couple of other tests that just check$ENV{TEST_PROG_ARGS} as before revision - should I change them in the same way?
09:15 chromatic Run them with prove and see if they give warnings about uninitialized values.  If so, then yes.
09:15 einstein joined #parrot
09:35 riffraff joined #parrot
09:50 eternaleye joined #parrot
10:28 gaz joined #parrot
10:59 masak joined #parrot
11:34 einstein joined #parrot
11:43 dalek rakudo: d154eb9 | jonathan++ |  (2 files):
11:43 dalek rakudo: Add an s1_setting.pir file, where we can put things that we'd like to be in the stage 1 compiler, but not in the final Rakudo. For now just has print and say. Should make things a little easier while we rebuild Rakudo on the new grammar engine.
11:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​154eb94cd2c56182f6ba26ace91ee8d2bbe7881
11:47 whiteknight joined #parrot
11:54 whiteknight good morning #parrot
11:59 plobsing joined #parrot
12:25 dalek nqp-rx: c489620 | jonathan++ | build/Makefile.in:
12:25 dalek nqp-rx: Add an install target to the nqp-rx makefile - just followed the precedent set in the Rakudo Makefile.
12:25 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​489620bea734864347ce92d5cc4a4d558ca8abe
12:47 pmichaud good morning, #parrot
12:48 Coke pmichaud: ~~
12:56 whiteknight hello pmichaud, Coke
12:57 Coke anyone have any thoughts on my super question? I think the (unfortunate) answer is going to be to move to a has-a from an is-a.
12:57 whiteknight Coke: In response to your list question, I don't know of any way to invoke SUPER() from PIR
12:57 whiteknight not that a way shouldn't be added, just that we don't currently have it
12:57 Coke (forcing me to explicitly re-write EVERY vtable.)
12:58 Coke hurm. if there's a way from C, I can probably use that from PIR the hard way.
12:58 whiteknight the way from C hardcodes in a pointer to the parent VTABLE
12:59 whiteknight so I don't know how you would do it from PIR
12:59 Coke I wonder if there is another attribute like 'proxy' that you get if you subclass an object (not a PMC)
13:00 whiteknight again, not that I know of. will do some digging
13:00 Coke wait, their used to be, didn't there? Was it removed at some point to avoid generating 2 pmcs per pmc?
13:00 Coke "there"
13:00 jonathan It's only existed ever when subclassing PMCs, afaik.
13:00 Coke jonathan: bah!
13:01 * Coke wonders how hard it would be to override every vtable from pir.
13:01 Coke (and then just replace the ones I care about.)
13:03 Coke moritz: did the signature for timtowtdi change?
13:05 whiteknight joined #parrot
13:05 * whiteknight logged out of the wrong computer
13:05 * whiteknight LOVES remote desktop
13:09 moritz Coke: uhm it uhm seems like
13:10 moritz Coke: and the password doesn't work anymore. D'oh
13:11 Coke whoops.
13:11 pmichaud Coke: super question -- you're wanting to invoke a PIR superclass from a PIR subclass?
13:11 Coke (that sounds worse than I thought. =-)
13:11 Coke pmichaud: yes.
13:11 pmichaud Coke: just do find_method on the superclass, then invoke that
13:11 pmichaud actually,  ".find_method"
13:11 Coke pmichaud: it's not a method.
13:11 Coke (but a vtable)
13:12 Coke I control the super class, so I could add a method that wraps the vtable if I had to.
13:12 Coke (but ew)
13:12 pmichaud vtables are methods also, currently
13:12 Coke k.
13:12 pmichaud so if you give it a name and a :method flag, you can get at it that way
13:13 Coke pmichaud: this isn't a /defined/ vtable, I'm inheriting it.
13:13 pmichaud oh
13:13 Coke I have "tclarray" that isa hash, if you call $P0 = some_array['foo'], it JFW.
13:13 pmichaud yes, PGE had the same problem also for quite a while
13:14 pmichaud (being able to distinguish overridden vtable from inherited vtable )
13:14 jonathan Coke: You can always grab the proxy and call the vtable method on that.
13:14 Coke jonathan: no, I can't.
13:14 Coke (see the email to the list.)
13:14 Coke proxy doesn't exist.
13:14 Coke (that only works if your parent isa PMC)
13:14 jonathan Oh
13:14 jonathan I thought that was the case here.
13:14 jonathan OK.
13:14 Coke (as opposed to "written in pir")
13:14 jonathan *nod*
13:14 jonathan OK, then that's a different problem.
13:14 pmichaud if your inheritance is static, you can get to the proxy
13:14 Coke no. tclarray is written in PIR.
13:15 pmichaud i.e., get tclarray's proxy
13:15 jonathan pmichaud: There's no proxy if ti's a PIR class you inherit from.
13:15 Coke from inside tclarraysubclass?
13:15 jonathan You only get those when inheriting from a PMC.
13:15 Coke so, tclarray has one from hash, no doubt, but tclarraysubclass doesn't.
13:16 pmichaud get the proxy from the PIR class you're inheriting from
13:16 pmichaud not from the subclass
13:16 Coke pmichaud: how?
13:16 PerlJam joined #parrot
13:16 pmichaud $P0 = getattribute $P1, ['tclarray'], 'proxy'
13:16 Coke I can get my own attribute. how do I get my parent's attribute? (that used to be possible with dan-attributes, but not with allison-attributes, iirc.)
13:16 pmichaud or something like that
13:16 Coke ORLY? hurm.
13:16 Coke checking.
13:16 pmichaud you can also get the proxy from a tclarray object
13:17 pmichaud you don't have to get it from self
13:17 Coke pmichaud: then how does it get invoked with the right self?
13:17 pmichaud ummmmmmm
13:17 pmichaud okay, that's right, can't get it from a foriegn object.  I'm still thinking methods.
13:18 pmichaud (And holding another conversation IRL)
13:18 Coke I already have that:
13:18 dalek nqp-rx: 62d1e7b | jonathan++ | build/Makefile.in:
13:18 Coke $P0 = getattribute self, ['TclArray'], 'proxy'
13:18 dalek nqp-rx: Fix make install up a bit. We avoid blowing away the original nqp.pbc and install nqprx.pbc instead.
13:18 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/6​2d1e7bf9a19550131012dc5534e33003f3f9b70
13:18 Coke it fails.
13:18 Coke (from the vtable in the tclarray subclass.)
13:18 pmichaud jonathan: I think I'd prefer the executable to still be installed as "nqp", not "nqprx"
13:19 pmichaud I'd prefer *not* to enshrine the nqprx name.
13:19 * Coke tries s/TclArray/Hash/
13:20 Coke holy crap, that did it.
13:20 Coke $P0 = getattribute self, ['Hash'], 'proxy'
13:20 pmichaud right, Hash is what I was trying to get to
13:20 Coke (from a subclass of a subclass)
13:21 jonathan pmichaud: ah, ok
13:21 Coke that's only slightly more ugly than the old code.
13:21 pmichaud fwiw, my wife isn't at all fond of the name "nqp", so if anyone has better suggestions we can change that now also.  :)
13:21 kthakore joined #parrot
13:22 jonathan acwl # awesome compiler writing language ;-)
13:22 jonathan pronounced "a cewl"
13:22 jonathan ;-)
13:22 kthakore hi Coke particle can you guys update this ? http://www.reddit.com/r/coding/comments/9yobp/pa​rrot_episode_1_introduction_building_a_compiler/
13:22 jonathan .oO( suddenly I just made nqp an excellent name )
13:23 Coke kthakore: someone can. but not me.
13:23 Coke could you open a trac ticket?
13:23 kthakore Coke: ok
13:23 kthakore Coke: sure ... where?
13:23 kthakore Coke: do I need to register?
13:24 Coke kthakore: yes. https://trac.parrot.org/ - thanks.
13:24 Coke (helps cut down on the trac spam)
13:25 kthakore Coke: a catpcha on that register form can't hurt
13:28 Coke true
13:29 dalek nqp-rx: ee72079 | jonathan++ | build/Makefile.in:
13:29 dalek nqp-rx: Install as nqp.exe, not nqprx.exe.
13:29 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/e​e720794a16cf637c4e493070957af20b04e28cd
13:30 jonathan pmichaud: OK, hopefully that's better. :-)
13:32 fperrad joined #parrot
13:32 Coke LTP ?
13:32 Coke NUP?
13:33 kthakore Coke: https://trac.parrot.org/parrot/ticket/1164
13:33 Coke kthakore++
13:33 kthakore Coke: thanks
13:33 dalek TT #1164 created by kthakore++: Update Tutorials in Parrotblog.com
13:35 * Coke wonders why git hates him.
13:36 Austin joined #parrot
13:36 mikehh joined #parrot
13:37 kthakore git hates me?
13:38 Coke no, me.
13:38 kthakore ah ok
13:38 Coke how do I resolve a conflicted merge?
13:38 dalek lua: c86de8d | fperrad++ | config/makefiles/root.in:
13:38 dalek lua: add a rule which initialize t/lua-TestMore submodule
13:38 dalek lua: review: http://github.com/fperrad/lua/commit/c8​6de8d3d92015226d4ce9fefba957140e305537
13:38 kthakore Coke: git status
13:38 purl git status is porcelain
13:38 kthakore Coke: it will give you what is conflicting
13:38 kthakore Coke: open them and look for >>>> <<<< lines
13:39 kthakore >>> means merged in diff
13:39 Coke ah, git add.
13:39 kthakore <<<< means merged out diff
13:39 kthakore Coke: and keep chagnes you want and git commit -a -m
13:41 dalek nqp-rx: 646acb7 | pmichaud++ | src/NQP/ (2 files):
13:41 dalek nqp-rx: As promised, the operator precedence table is now defined in the
13:41 dalek nqp-rx: grammar instead of the actions.
13:41 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/6​46acb7f7b64d163d7dc374206d8020179e570dd
13:41 dalek nqp-rx: 0772654 | pmichaud++ | t/nqp/35-prefix-sigil.t:
13:41 dalek nqp-rx: Add 35-prefix-sigil to test @(...) .
13:41 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/0​772654b77bbb3d7183040cb36be74ee9b9ded5d
13:42 kthakore Coke: also learn.github.com is the awesome
13:42 * Coke wonders what the hell just happened to his git project.
13:43 Austin :)
13:43 Austin Coke, are you the only one working on the project?
13:43 Coke http://github.com/partcl/partcl/network
13:43 kthakore Coke: if you are on svn a lot this helps too http://git.or.cz/course/svn.html
13:43 Coke Austin: yes, but I have 3 different machines with checkouts.
13:43 Coke but I try to make sure I do a pull before I push.
13:44 Coke I must have missed a pull at some point, as I seem to have a mergeback in master.
13:44 kthakore Coke: thanks for using git ( Disclaimer: kthakore is a git pusher)
13:44 Coke kthakore: thanks for the docs.
13:45 Coke kthakore; I like git better than git-svn. 99% of the time , I like it better than svn.
13:45 dalek partcl: 87ed02f | coke++ |  (3 files):
13:45 dalek partcl: re-enable some [trace]
13:45 dalek partcl: untodo test, workaround proxy lookup failure.
13:45 dalek partcl: review: http://github.com/partcl/partcl/commit/8​7ed02f1b2378b817fb8c6630a3916bf4c22dc33
13:45 dalek partcl: bee7276 | coke++ | :
13:45 Coke (ok, maybe only 90%)
13:45 dalek partcl: Merge branch 'master' of git@github.com:partcl/partcl
13:45 dalek partcl: Conflicts:
13:45 dalek partcl: docs/spectest_skips
13:45 dalek partcl: review: http://github.com/partcl/partcl/commit/b​ee7276b0fea2d2a7828a9aecc06317430d79dd7
13:45 kthakore Coke: yup. The link I gave you explains SVN commands v.s Git commands its not git-svn
13:46 Coke moritz: lemme know when it's safe to venture back to that box. =-)
13:47 Coke so, http://github.com/partcl/partcl/commit/b​ee7276b0fea2d2a7828a9aecc06317430d79dd7 was the commit from the merge - it shows no changes, yes?
13:48 kthakore Coke: uh oh
13:48 kthakore Coke: you still have conflicts in the file
13:48 Coke but I resolved the conflicts locally. (that conflicts in the commit message is me being lazy editing the commit message. I think.)
13:49 kthakore ok hold on let me look
13:50 Coke I'm just wondering what's in the merge commit if not an actual delta.
13:51 fperrad ping japhb
13:51 purl I can't find japhb in the DNS.
13:51 kthakore Coke: I think it was conflicting on having or not having the file
13:51 kthakore Coke: it seems fine
13:51 KatrinaTheLamia joined #parrot
13:54 Coke k
13:56 payload joined #parrot
14:00 kthakore dukeleto: morning
14:01 Austin Does anyone know how math works at the PIR level?
14:01 Andy joined #parrot
14:01 kthakore hi Andy
14:01 purl hi Andy is, like, BACK
14:01 Andy howdy
14:01 kthakore >>
14:01 Austin If an Parrot object(class) has a get_integer vtable override, why does get_string take precedence when doing add $P1, $P0 ?
14:04 moritz Coke: timtowtdi.org pointed to a wrong IP address - that's fixed now. Once the fix propagates to your DNS server (ie it stops caching), it works fine agian
14:05 moritz Coke: until then you can use the numeric IP, 80.237.201.115
14:05 moritz same goes for dukeleto
14:13 Coke moritz++
14:25 dalek nqp-rx: 0bee741 | jonathan++ | src/NQP/ (2 files):
14:25 dalek nqp-rx: Support contextualizers; passes 35-prefix-sigil.t.
14:25 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/0​bee741040c07df3b5b48c5691d94548665c91a4
14:27 whiteknight Austin: what do you mean? the add opcode shouldn't be calling VTABLE_get_string
14:27 Austin whiteknight: I agree.
14:27 whiteknight do you have test case that shows otherwise?
14:28 Austin Not right now. (And the test I did have was pretty big.)
14:28 Austin It turns out there's a nest of snakes in there. I tried to set up a simple test, but then it complained about not having get_number. So I defined that, which took precedence over get_integer, but required that set_number_native also be available. :(
14:28 Austin So I gave up.
14:29 kj joined #parrot
14:31 whiteknight it depends on the types of PMCs you are adding
14:31 Austin :)
14:31 whiteknight because it calls VTABLE_add on the type of the first one, which will switch behavior on the type of the second one
14:31 Austin I did $P0 = $P1 + $P2, where $P0 and $P1 were Integer, and $P2 was a Foo.
14:36 dukeleto Austin: i do math, occasionally
14:36 dukeleto kthakore: mornin'
14:36 bacek_at_work joined #parrot
14:37 kthakore dukeleto: so KatrinaTheLamia is starting to look into SWIG
14:37 kthakore dukeleto: can you point here to perl5 SIWG you have done before?
14:38 kthakore dukeleto: s/here/her
14:42 dalek nqp-rx: 217bb06 | jonathan++ | src/NQP/Grammar.pm:
14:42 dalek nqp-rx: Support ? twigil.
14:42 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/2​17bb061b45db7787c6d15500125f52b5defbfc7
14:44 theory joined #parrot
14:45 nopaste "Austin" at 98.235.55.43 pasted "test case for add weirdness: why isn't get_integer enough?" (14 lines) at http://nopaste.snit.ch/18505
14:46 dukeleto kthakore: Math::GSL is SWIG-based. It is perhaps the most complicated CPAN module that is SWIG-based. SWIG is just the first layer and then another OO layer is built on top of it
14:47 kthakore dukeleto: ok thanks
14:47 kthakore KatrinaTheLamia: take a look at Math::GSL
14:47 dukeleto kthakore: Math::GSL::Matrix is a good, simple, subsystem to look at
14:48 kthakore dukeleto: also anyword on Parrot6 Swig I found this but ... ??? http://www.perlfoundation.​org/parrot/index.cgi?cffi
14:49 Coke anything on that wiki is ancient.
14:49 Coke (and should be deleted and moved to the trac wiki.)
14:50 dukeleto kthakore: Coke is right.
14:50 dukeleto moritz: how do I get http://timtowtdi.org/~leto/ to work?
14:50 kthakore Coke: ok
14:50 kthakore Coke: so SWIG or interfaces to ParrotNCI how I do this?
14:51 Coke kthakore: no clue. =-)
14:51 kthakore Coke: oh well
14:52 dukeleto kthakore: I taled to the SWIG people. We need to add PIR/PASM as a target language to SWIG. It is of "medium difficulty"
14:52 kthakore medium difficulty means anal rape or regular rape ?
14:53 moritz dukeleto: by installing and configuring apache ;-)
14:53 moritz erm
14:53 dukeleto moritz: i don't need apache, something even simpler would be fine. just static files
14:56 Austin dukeleto: Does add create temporary pmcs?
14:57 kthakore dukeleto: is the PIR/PASM target volatile (changing too much) in terms of specs?
14:57 dukeleto moritz: why is there no 'mail' binary on timtowtdi ?
14:57 moritz dukeleto: because nobody installed one ;-)
14:57 dukeleto Austin: i sure hope not. in which situation? There are opcodes for different permutations of input types
15:00 dukeleto msg chromatic Here is the valgrind output for fib.pir run on all released parrots+trunk (optimized) http://leto.net/tmp/fib-valgrind.tar.gz (unpacks into same directory)
15:00 purl Message for chromatic stored.
15:01 * dukeleto hopes that is useful to chromatic
15:01 bacek_at_work joined #parrot
15:04 * moritz fails to enables UserDir on apache
15:04 dukeleto moritz: lulz
15:05 nopaste "Austin" at 98.235.55.43 pasted "more math weirdness: why is there a fourth pmc?" (66 lines) at http://nopaste.snit.ch/18506
15:05 moritz dukeleto: you can look at /etc/apache2/sites-available/default if there's anything obviously wrong
15:07 iblechbot joined #parrot
15:07 Psyche^ joined #parrot
15:08 dukeleto moritz: it works!
15:08 dukeleto msg chromatic also available at: http://timtowtdi.org/~leto/valgrind_output/
15:08 purl Message for chromatic stored.
15:09 moritz dukeleto: so it was just a missing DirectoryIndex?
15:09 * moritz tried it with http://timtowtdi.org/~leto/ which didn't work
15:09 dukeleto moritz: you got faked out by my 0-sized index.html ;)
15:12 Coke kthakore: (medium difficulty) that's a little coarse.
15:12 moritz dukeleto: regarding sending mails... I'd rather not do that at all, because I'm not good at administrating mail servers
15:12 moritz and I don't want to open up a spam source
15:16 kthakore Coke: indeed
15:19 dukeleto moritz: ok. as long as I have ~/leto on http, that is all I need
15:19 nopaste "pmichaud" at 72.181.176.220 pasted "colonpair fail" (17 lines) at http://nopaste.snit.ch/18507
15:25 whiteknight Austin: Will need to dig into the code for that
15:25 Austin nod
15:25 Austin Okay
15:26 dukeleto Austin: what is your add issue about? perhaps a temp PMC is being created within the VTABLE code?
15:28 Austin dukeleto: I'm trying to understand how add *works*. I was originally just trying to overload get_integer, but it seems like nobody ever calls that. Now I'm being puzzled by pretty much every single aspect of simple arithmetic in PIR.
15:30 dukeleto Austin: i see. i will try to help you as much as I can, but I still only have a cursory understanding of all the VTABLE madness
15:33 whiteknight add_p_p_p calls "$1 = VTABLE_add(interp, $2, $3, $1);"
15:33 payload joined #parrot
15:34 whiteknight altough I'm not sure that makes any sense to me
15:34 Austin dukeleto: Well, I'm beginning to have a cursing-at understanding of it. :)
15:36 whiteknight I don't understand why add has a signature "VTABLE PMC * add(PMC * value, PMC * dest)"
15:36 whiteknight why do we need to take a pointer to the destination and return one?
15:36 whiteknight But yes, I did find the insane default case
15:37 Austin Perhaps the signature template is needed by some other ops?
15:37 whiteknight VTABLE_set_number_native(INTERP, dest, SELF.get_integer() + VTABLE_get_number(INTERP, value));
15:37 whiteknight so that's the culprit right there
15:37 Austin Where is that?
15:37 purl rumour has it that is how it does it
15:37 whiteknight src/pmc/integer.pmc:357
15:38 whiteknight so that's the problem, and I think it's a definite bug
15:38 whiteknight if we can "fix" it without breaking any tests, we know it's a bug
15:38 whiteknight otherwise somebody is relying on this lousy behavior
15:39 Austin Why do you think this is a bug?
15:40 Austin (OR maybe better: what do you think the bug is?)
15:43 fperrad_ joined #parrot
15:43 kyle joined #parrot
16:01 whiteknight The bug is that the Integer PMC, in the default case of it's add MMD, treats values as Floats and returns a Float
16:01 whiteknight I think Integer PMC should assume values are Integer, and should return an Integer in those cases
16:01 whiteknight or, set a value as an integer
16:01 whiteknight (Float PMC should act on Floats in the same way)
16:03 dukeleto whiteknight: can you write a failing test for that vtable bug?
16:03 whiteknight Austin just posted two of them
16:03 whiteknight the issue is that's it's not currently a "bug". This is the way it's always worked
16:04 whiteknight so we should probably get some agreement that this is not how we want it to work
16:10 dukeleto whiteknight: feels like a bug to me. I want to propose this to parrot-dev and see what they say
16:10 whiteknight perfect
16:14 dukeleto whiteknight: email sent. let the bikeshedding begin.
16:14 whiteknight BLUE!
16:15 * dukeleto prefers fuchsia polka dots with a metallic highlights
16:15 whiteknight I could be sold on highlights
16:20 darbelo joined #parrot
16:21 Austin joined #parrot
16:28 pmichaud what's the bug?
16:28 purl rumour has it the bug is http://www.cbttape.org/funny/bug3.jpg or http://img227.imageshack.us​/img227/2596/featureiu1.jpg
16:29 pmichaud src/pmc/integer.pmc:357 doesn't look like a bug to me
16:30 whiteknight pmichaud: you think that Integer PMC should get_number_native and then set_number native to add?
16:30 pmichaud in this case, yes
16:30 whiteknight it seems to me that Integer should act on INTVALs, and Float should act on FLOATVALs
16:30 pmichaud this is handling the case of Integer+non-Int
16:30 pmichaud i.e.,  Integer+Float should result in a Float
16:30 whiteknight right, and there should be an MMD variant for that case
16:30 pmichaud there is
16:31 pmichaud this is it
16:31 pmichaud the Integer+Integer case is handled above
16:31 whiteknight this is the Default case
16:31 pmichaud line 312
16:31 whiteknight I was looking at line 357
16:31 pmichaud the default should be "we don't know what the other argument is, so assume it's a number"
16:31 pmichaud assuming that the other argument is an integer is.... wrong
16:31 whiteknight Float should assume it's a FLOATVAL, Integer should assume it's an INTVAL
16:31 pmichaud why?
16:32 pmichaud why would you assume that with    3 + $x   that $x must therefore be an integer?
16:32 pmichaud why would you want   3 + $x   and $x + 3    to return different results?
16:32 whiteknight for the same reason that 3.0 + $x would assume it's a number
16:32 pmichaud not true
16:32 jan joined #parrot
16:32 whiteknight pmichaud: we have to take into account the types of the PMCs
16:32 pmichaud whiteknight: *right*
16:33 pmichaud and if you don't know a type, you should assume Float
16:33 whiteknight I disagree. We have contextual information to inform a better decision
16:33 pmichaud not always
16:33 whiteknight for the exceptions, we can provide specific MMD variants
16:33 pmichaud no we can't
16:33 pmichaud how are you going to provide an MMD variant for a language's custom-defined type (written in PIR) ?
16:34 whiteknight To add the custom type into Parrot's pre-defined Integer type?
16:34 pmichaud no
16:34 pmichaud if I create a custom type  "MyFloat"
16:34 whiteknight then that's different
16:34 pmichaud or, even better
16:34 pmichaud let's suppose I create a type called "Rat"
16:34 whiteknight I'm only talking about the behavior of the Integer type
16:34 pmichaud no, you're not
16:34 pmichaud line 357 is talking about the non-integer operands
16:34 whiteknight yes, I am
16:35 pmichaud line 312 covers the Integer operand
16:35 whiteknight right, it's adding other stuff *to an Integer*
16:35 pmichaud stop
16:35 davidfetter joined #parrot
16:35 pmichaud let me explain
16:35 pmichaud suppose I create a custom type called "Rat"
16:35 pmichaud it represents rational numbers
16:35 pmichaud and I do
16:35 pmichaud 1 + 2/3
16:35 purl 1.66666666666667
16:35 pmichaud you're saying that because the first operand is an integer, it should assume that the second operand is an integer as well
16:35 pmichaud because integer.pmc doesn't know about Rat
16:36 whiteknight right, Integer knows about INTVALs, so it works with INTVALs
16:36 pmichaud wrong
16:36 whiteknight if you want something different, cast it to a Float PMC and get what you want
16:36 whiteknight we have
16:36 pmichaud no no no no
16:36 pmichaud wrong wrong wrong wrong
16:36 whiteknight Float for a reason, to work with FLOATVALs
16:36 pmichaud we have get_number for a reason, so that we don't have to cast everything to floats
16:37 pmichaud anyway, it's correct as-is.
16:37 whiteknight what you're saying, in effect, is that if I define a custom integer typ, that I must treat it as a number to interact with Integer?
16:37 pmichaud I'll let the list explain why -- I have to do rakudo stuff today.  :-)
16:37 pmichaud I'm not talking about custom integer types.
16:37 whiteknight I am
16:37 whiteknight and Austin was, which is how this got started
16:37 pmichaud ahhh, I see.
16:37 treed Is this just a Perl6 discussion?
16:37 pmichaud yes, if you define a custom integer type, you must somehow fix up MMD to interact with it
16:37 treed Or is Ruby relevant?
16:38 whiteknight He has a MyInt, and to add it to an Integer he needs to define the get_number and set_number VTABLEs
16:38 pmichaud treed: Parrot.  strictly Parrot.
16:38 whiteknight which is wront
16:38 whiteknight wrong*
16:38 treed Because Ruby tends not to do auto-conversion.
16:38 pmichaud whiteknight: imo the whole MMD approach to vtable_add is wrong, fwiw
16:38 treed if you do "1 + i" and i does not have a to_int method (Integers do, not much else), it'll throw an exception
16:38 whiteknight pmichaud: that may be, and then we should correct it
16:39 pmichaud anyway, I don't know how to add custom MMD variants to vtables
16:39 treed There are a lot of failing tests in Cardinal right now because of the Rakudo roots where "3" == 3 (which is not true in Ruby)
16:39 pmichaud perhaps there's a way to do it, but I haven't seen it
16:39 whiteknight that's something worth considering als
16:39 pmichaud treed: those are actually parrot roots, not Rakudo
16:39 pmichaud treed: but that could be fixed with a custom == operator that checks types
16:39 treed I've spent some time trying to figure out how this is going to work with other languages that may have integers without a to_int method.
16:39 treed Sure.
16:39 treed And it will.
16:40 pmichaud or by overloading the get_integer vtable so that it throws an exception
16:40 pmichaud (for those types that cannot get_integer)
16:40 treed But that doesn't play well with Inter-HLL.
16:40 pmichaud why not?
16:40 pmichaud if your object can't become an int, it should throw an exception
16:40 treed because if I give Rakudo a Cardinal;String
16:40 treed which in all other ways behaves like a string
16:40 treed but cannot be compared with an Integer
16:41 pmichaud ...then rakudo should cast it first to a Rakudo string, which can.
16:41 treed I guess I don't understand how casting works.
16:41 treed But I'm also concerned for custom types where it can't know how to convert.
16:41 particle set the foreign-hll rvalue to a native-hll lvalue
16:42 particle treed: you'll need conversion libraries for that
16:42 treed And there's no get_number
16:42 dalek markdown: e144305 | unknown++ | plumage/markdown.json:
16:42 dalek markdown: add plumage metadata
16:42 dalek markdown: review: http://github.com/fperrad/markdown/commit​/e144305a4367892fddc1dc1d6df7d670e71041b9
16:42 treed So...
16:42 treed particle: Yeah, that's what I figure.
16:42 treed Which will be fun.
16:42 particle hll-interop isn't all magic, there's some hard work involved
16:42 dalek partcl: 8f6a032 | coke++ | docs/spectest_skips:
16:42 dalek partcl: Fix skip list
16:42 dalek partcl: (obj.test still segfaulting; [trace] makes small # of tests run again.)
16:42 dalek partcl: review: http://github.com/partcl/partcl/commit/8​f6a0329a7dd4f1b9d8465a06cc90181d20da6a2
16:42 dalek nqp-rx: 0ed9993 | jonathan++ |  (3 files):
16:42 dalek nqp-rx: Implement postcircumfix:<( )> plus add a (passing) test for it.
16:42 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/0​ed99930e4e9f148702ceab13fa247ce27278845
16:42 dalek nqp-rx: d875a14 | jonathan++ | src/NQP/Actions.pm:
16:42 dalek nqp-rx: A probably slightly hacky solution for named args like :foo(1,2,3), but I can't think of a better one just yet.
16:42 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/d​875a1489aaa93e5769e682305887b09cd6e228f
16:42 dalek nqp-rx: d7dfef8 | pmichaud++ | README:
16:42 dalek nqp-rx: Add some notes about differences from previous NQP.
16:42 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/d​7dfef8fe825928a88a78d4188efde25e8697530
16:42 dalek nqp-rx: b4df67c | pmichaud++ | README:
16:42 dalek nqp-rx: Add note about cuddled elses being less cuddly.
16:42 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b​4df67cb0c0f8aa0af530ead0bb99b839f0fa3b8
16:42 dalek nqp-rx: b8d6f2b | jonathan++ | t/nqp/37-slurpy.t:
16:42 dalek nqp-rx: Tests for slurpy arguments.
16:43 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b​8d6f2b6ce9ba59664df22f8dc8ca32d8386e1c6
16:43 dalek nqp-rx: c853a52 | pmichaud++ | src/NQP/ (2 files):
16:43 dalek nqp-rx: Convert "sub INIT() {...}"  in Actions.pm to "INIT { ... }".
16:43 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​853a52b10b5f48d18a7ef97abf6c303f6deea72
16:43 particle sheesh, slow down you two.
16:43 pmichaud github just caught up on rss feeds
16:43 particle i still can't get parrot or rakudo building on windows
16:43 particle i guess i'll switch to ubuntu, to get unblocked
16:44 whiteknight particle: what are the errors? File a ticket?
16:44 particle mt.exe stupidness
16:45 particle i was going to try the latest beta msvc, but my msdn subscription expired. cotto's fixing me back up, though, so i'll be able to do that in a few weeks
16:45 whiteknight ok
16:47 cotto_work hi
16:49 whiteknight hello cotto_work
16:51 payload joined #parrot
16:53 cotto_work particle, is https://trac.parrot.org/par​rot/wiki/Platforms/Windows up-to-date?
16:56 Coke whiteknight: (3.0 vs. 3) that way lies tcl.
16:57 whiteknight Coke: I'm summarizing my thoughts to the list. It will make more sense there
16:57 japhb fperrad, pong (RTT 11111 s)
16:58 fperrad japhb, I start to play with Plumage,
16:58 fperrad but parrot_nqp Configure.nqp fails
16:58 japhb You installed parrot?
16:59 japhb (Meaning, you have a parrot_nqp in your $PREFIX/bin ?)
17:00 dalek nqp-rx: db50144 | pmichaud++ | build/Makefile.in:
17:00 dalek nqp-rx: Update the Makefile a bit, eliminate spaces-instead-of-tab.
17:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/d​b50144815214bc8a756fbc941a27dee5a543b9e
17:00 japhb Oh, wait ... fperrad, are you on Windows?
17:00 fperrad I work on Windows
17:00 fperrad I've parrot_nqp in my PATH
17:01 japhb Hmmm.  Windows should be able to run something without the .exe extension, so that's not the problem.
17:01 japhb Can you nopaste the error, plz?
17:01 fperrad But it's the built one, not the installed one
17:01 japhb Oh, can't use built version
17:01 japhb Only installed
17:01 japhb from now on, "built version" is dead to us.
17:01 japhb :-)
17:02 nopaste "fperrad" at 79.81.90.16 pasted "Plumage on Windows" (15 lines) at http://nopaste.snit.ch/18508
17:03 japhb fperrad, is that still with the built version, or with the installed one now?
17:04 japhb afk for a couple
17:04 fperrad japhb, built version
17:05 fperrad japhb, same problem with installed version
17:06 fperrad parrot r42172
17:08 particle joined #parrot
17:12 nopaste "fperrad" at 79.81.90.16 pasted "japhb, a patch for kakapo (on Windows)" (37 lines) at http://nopaste.snit.ch/18509
17:18 japhb fperrad, someone else owns kakapo. not me.  :-)
17:19 japhb fperrad, OK, I'm going to try with same parrot rev and see what happens
17:19 Coke msg dukeleto step N for rollout: change the default version to report bugs against.
17:19 purl Message for dukeleto stored.
17:23 dalek nqp-rx: ed6362d | pmichaud++ | build/Makefile.in:
17:23 dalek nqp-rx: Fix bug in "make install".
17:23 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/e​d6362d7cfd87e0ff42778498833857cb651813f
17:25 dalek TT #1165 created by coke++: need ability to dispatch to parent's method or vtable from PIR
17:26 cotto joined #parrot
17:26 cotto_work wb me
17:27 * cotto_work tosses a clearwire-- on the pile
17:27 cotto_work karma clearwire
17:27 purl clearwire has karma of -9
17:27 japhb fperrad, With parrot 42172, plumage configure still WFM.  What do you see for the output of this?
17:27 * Coke opens 1165 as a followup to his earlier list-mail.
17:27 japhb $ parrot_nqp --version
17:27 japhb This compiler is built with the Parrot Compiler Toolkit, parrot revision 42172.
17:28 japhb fperrad, (Just making sure you didn't somehow get an old one)
17:29 nopaste "fperrad" at 79.81.90.16 pasted "Configure plumage output" (18 lines) at http://nopaste.snit.ch/18510
17:34 cotto_work pmichaud, the makefile for nqp-rx is a little wonky:
17:34 nopaste "cotto_work" at 131.107.0.72 pasted "nqp-rx makefile oddness" (87 lines) at http://nopaste.snit.ch/18511
17:34 fperrad japhb, I try to write a plumage for Markdown
17:34 fperrad see http://github.com/fperrad/markdown​/blob/master/plumage/markdown.json
17:34 fperrad now I don't know what I can do with it
17:35 dalek nqp-rx: 2cd14a3 | pmichaud++ | src/ (3 files):
17:35 dalek nqp-rx: [nqp]:  Add --parsetrace option to nqp.
17:35 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/2​cd14a327163c7c337c2f5ea47ab8eb70232ffc8
17:37 japhb fperrad, once we figure out why Plumage is not working for you, then you and others can use it to do your build/test/install
17:37 japhb fperrad, have you sent in a PaFo CLA?
17:38 fperrad japhb, No, I don't
17:39 japhb Dang.  Was going to add you to Plumage as a committer.  :-)
17:39 japhb OK, it looks as if rx() is returning Null PMC for you.  Hmmm.
17:44 japhb Ah!
17:44 japhb fperrad, I think I see the problem.
17:45 dalek parrot: r42174 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
17:45 dalek parrot: [pct/past]:  Fix bug in binding to object attributes.
17:45 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42174/
17:46 pmichaud cotto_work: what's "wonky" about it?
17:47 cotto_work it seems to be running some of the rules three times
17:47 dalek nqp-rx: 8976132 | pmichaud++ | build/PARROT_REVISION:
17:47 dalek nqp-rx: Bump to Parrot r42174 to get fix for PAST::Val attributes.
17:47 cotto_work with non-parallel make, it works as expected
17:47 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/8​97613279d00322afc097f852028e37440354380
17:47 pmichaud looks like issues with parallel make
17:47 pmichaud it has to do with having multiple targets on the left of the ':', I suspect
17:47 pmichaud we could perhaps split those out
17:47 pmichaud although the Makefile gets awfully tedious if we do that
17:48 cotto_work obviously it's not a huge problem.  The build works just fine, if a little oddly.
17:48 japhb fperrad, OK, try with the latest plumage.
17:50 fperrad japhb, ok, works fine
17:51 dalek parrot-plumage: 5fb3210 | japhb++ | :
17:51 dalek parrot-plumage: [BUILD] Fix regex typo in Configure.nqp
17:51 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/5fb3210ab1d64c825e36cd2fa9a5602bdd37b3d0
17:52 japhb fperrad, excellent
17:52 cotto_work btw, I see that nothing tests the symbols:sym<bang> token (apart from implicitly making sure that it parses).  Is that intentional?
17:53 japhb fperrad, OK, Mind if I commit your metadata file for markdown?
17:53 japhb (to plumage's repo)
17:55 kthakore joined #parrot
17:56 fperrad japhb, ok, but I never test it
17:57 japhb fperrad, well ... I'm about to.  ;-)
17:58 mikehh joined #parrot
18:02 japhb fperrad, need to remove trailing comma in markdown.json line 25.
18:03 nopaste "fperrad" at 79.81.90.16 pasted "japhb, [PATCH Plumage] fix target test on Windows" (13 lines) at http://nopaste.snit.ch/18512
18:04 * Coke kicks off a run with one small [trace] variant running. This used to be wicked slow.
18:04 * Coke eagerly awaits to see if parrot is faster these days. =-)
18:07 japhb fperrad, wait, double *forward* slash?  How does that work?
18:07 dalek markdown: fb397f3 | unknown++ | plumage/markdown.json:
18:07 dalek markdown: fix JSON format : remove trailing comma
18:07 dalek markdown: review: http://github.com/fperrad/markdown/commit​/fb397f3299243e52b51847e9514468e6d7edf053
18:08 allison joined #parrot
18:08 dalek parrot-plumage: 54f84d1 | japhb++ | :
18:08 dalek parrot-plumage: [METADATA] Add fperrad++'s markdown.json
18:08 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/54f84d1fd061019ab1b8576d6c99ce659aaa253b
18:14 fperrad japhb, on Windows,
18:14 fperrad /*  becomes \* which is a problem
18:14 fperrad //* becomes \\* which works
18:14 japhb fperrad, then that means the regex is still screwed up.
18:15 cotto_work pmichaud, why isn't there a protoregex test for symbols:sym<bang> ?  It seems to work just fine afaict.
18:15 japhb Because / should become \\ I guess.
18:15 japhb Hold.
18:16 pmichaud cotto_work: I don't quite understand the question
18:16 pmichaud (I don't understand symbols: )
18:16 japhb fperrad, try the latest now.
18:16 japhb (latest plumage)
18:17 cotto_work in nqp-rx t/nqp/32-protoregex.t there's a token "token symbols:sym<bang> { $<sym>=['!'] }" that looks like it doesn't get tested.
18:17 cotto_work ABC.parse('!') succeeds, so I assume it's working as expected.
18:18 pmichaud cotto_work: I probably just forgot it
18:18 cotto_work I'm just curious why there's not test for it.
18:18 cotto_work ok
18:18 pmichaud cotto_work: feel free to add a test :)
18:18 cotto_work I'll have to have my alternative self do that.
18:18 pmichaud feel free to entice someone else into adding a test :)
18:18 cotto_work msg cotto add a test to nqp-rx t/nqp/32-protoregex.t for the bang token
18:18 purl Message for cotto stored.
18:19 pmichaud overall in nqp-rx I've been working on getting things to work, but there are loose ends all over the place
18:19 dalek parrot-plumage: 8072704 | japhb++ | :
18:19 dalek parrot-plumage: [BUILD] Win32 fix(?) in Configure.nqp
18:19 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/80727042871638a95e7d30ff16ae7214355627aa
18:19 cotto_work Cool.  I'd love to dive in and contribute.
18:20 pmichaud please do.  tests are welcome.  code is welcome.  questions are welcome.
18:20 cotto_work or at least get my feel wet.
18:20 pmichaud build system improvements are welcome.
18:20 pmichaud profiling runs are especially welcome.
18:21 kyle joined #parrot
18:22 cotto_work I can do that.
18:24 pmichaud perhaps profile   running NQP on src/NQP/Actions.pm  or src/NQP/Grammar.pm
18:24 pmichaud can also profile t/p6regex/01-regex.pir
18:25 pmichaud I'll be interested to see where the bottlenecks are
18:28 fperrad japhb, \ must be doubled only if followed by *
18:28 fperrad I think you need 2 replacements
18:28 fperrad s|/|\|g;
18:28 fperrad s|\*|\\*|g;
18:28 fperrad see lib\Parrot\Configure\Compiler.pm lines 563-564
18:29 japhb msg chromatic Parrot::Test::Harness doesn't seem to pass on @INC to its children.  This means that '/usr/bin/perl -I/usr/local/lib/parrot/1.7.0-devel/tools/lib t/harness', where t/harness is just 'use Parrot::Test::Harness language => 'foo';' doesn't work; the t/*.t files can't find Parrot::Test.
18:29 purl Message for chromatic stored.
18:30 japhb msg chromatic Is this a bug, or is it intentional, and it's expected that 'make test' targets will also set PERL5LIB ?
18:30 purl Message for chromatic stored.
18:31 japhb fperrad, why is there a * in the first place?
18:31 japhb Oh, DUH
18:31 japhb A glob
18:31 japhb I see the problem.
18:32 japhb fperrad, give me a sec, fixing
18:32 chromatic joined #parrot
18:34 Zak joined #parrot
18:34 japhb fperrad, OK, try that
18:34 cotto_work I really need to speed up pprof2cg
18:35 dukeleto cotto_work: do you have the need? the need for SPEED?
18:35 dalek parrot-plumage: fc99761 | japhb++ | :
18:35 dalek parrot-plumage: [BUILD] Another try at fixing Configure.nqp for Win32
18:36 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/fc99761fb53a94a550284d21b1828a399ab5b88e
18:36 dukeleto japhb: test harnesses don't pass on PERL5LIB to their children, as a general-ish rule. can't remember exactly why, but there is a good reason
18:36 * dukeleto thinks of a good reason
18:38 * cotto_work thinks of lunch
18:39 japhb dukeleto, well, whatever the reason, it makes 'make test' fail for markdown, which uses Parrot::Test::Harness.  :-(
18:41 fperrad japhb, the 2nd subst fails in silent, so Configre.nqp doesn't produce a Makefile
18:41 japhb fperrad, grrrr
18:41 japhb dangit
18:43 japhb fperrad, I'm rebuilding parrot here, and then I will try again.
18:43 * japhb hates debugging problems on another OS without access to the OS in question
18:45 Zak joined #parrot
18:48 * darbelo hates the OS in question
18:48 darbelo ;)
18:48 fperrad japhb, this works
18:48 fperrad $replaced := subst($replaced, rx('\/\*'), '\\\\*');
18:48 fperrad $replaced := subst($replaced, rx('\/'),   '\\');
18:48 japhb fperrad, OK, that's better than nothing.
18:49 japhb Still want to know what was wrong with my version.
18:49 * japhb hacks at it for a bit
18:52 japhb fperrad, try this one:
18:52 japhb $replaced := subst($replaced, rx('\/'),     '\\'   );
18:52 japhb $replaced := subst($replaced, rx('\\\\\*'), '\\\\*');
18:55 bacek joined #parrot
18:55 cotto_work good morning bacek
18:56 mokurai joined #parrot
18:56 fperrad japhb, works
18:57 japhb fperrad, excellent, I'll push that.
18:57 bacek Good morning
18:58 japhb OK, pushed
18:58 japhb sheesh
18:58 Zak joined #parrot
19:03 dalek parrot-plumage: 3c6f410 | japhb++ | :
19:03 dalek parrot-plumage: [BUILD] Yet another try at fixing Configure.nqp for Win32
19:03 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/3c6f410279e9be101ae47b7788be4e55dfa2c9a1
19:06 mokurai1 joined #parrot
19:20 Coke (whenever I see gitorious, I hear duran duran.)
20:12 ruoso joined #parrot
20:19 japhb No ... No ... Notorious.
20:39 chrisoei joined #parrot
20:46 joeri joined #parrot
21:11 Coke THANK YOU.
21:11 darbelo ?
21:12 Coke 15:20 <@Coke> (whenever I see gitorious, I hear duran duran.)
21:12 Coke 15:20 <@Coke> (whenever I see gitorious, I hear duran duran.)
21:12 Coke 16:19 <@japhb> No ... No ... Notorious.
21:13 darbelo Ah.
21:13 japhb That song's been going through my head for a couple hours now.  :-)
21:18 ash_ joined #parrot
21:18 Coke ah, thank goodness, I have it on itunes.
21:19 Coke iz old.
21:25 Whiteknight joined #parrot
21:29 cognominal joined #parrot
21:47 Zak joined #parrot
21:52 dalek nqp-rx: 8c4c7d0 | pmichaud++ | src/NQP/Grammar.pm:
21:52 dalek nqp-rx: Issue an error if someone attempts to use assignment instead of binding.
21:53 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/8​c4c7d0a7b280019384a05b747b498d8f02c43c0
21:53 pmichaud 01-literals.t runs (but with a couple of errors due to string numification)
22:01 patspam joined #parrot
22:13 pmichaud ugh, HLL namespaces
22:13 Tene hll issues?
22:13 pmichaud just that I was letting NQP create the classes, but now the classes are in a different HLL namespace
22:14 pmichaud I might need to implement :from<...>  or something like that.
22:14 Tene so not a bug or anything you need help with then, I guess.
22:14 * Tene goes back to idling.
22:15 pmichaud I suppose I can explicitly import them for now
22:30 cotto_work pmichaud, is this correct:
22:30 nopaste "cotto_work" at 131.107.0.72 pasted "expected nqp-rx behavior?" (3 lines) at http://nopaste.snit.ch/18516
22:30 plobsing joined #parrot
22:30 pmichaud you want --target=pir on there
22:31 pmichaud otherwise it will attempt to run the file
22:31 pmichaud I want the profile for compiling it
22:31 pmichaud (the error you're getting is because it's attempting to run Actions.pm, which then tries to create a class that already exists.)
22:42 cotto_work profiling now
22:43 mikehh trunk - pre/post-config, smoke (#29534) PASS, fulltest FAIL at r42174 - Ubuntu 9.10 amd64
22:43 mikehh t/benchmark/benchmarks.t - Failed tests:  18-20
22:43 mikehh the remainder of fulltest passes
22:45 mikehh bisecting - t/benchmark/benchmark.t PASSes at r42169 and FAILs at r41270
22:51 bacek_at_work mikehh, r41270??? It was 2 months ago
22:52 mikehh sorry 42170
22:52 nopaste "mikehh" at 81.149.189.7 pasted "benchmark_tests failure at r42170" (87 lines) at http://nopaste.snit.ch/18517
22:53 mikehh just for your perusal :-}
22:58 dalek partcl: 91b64c8 | coke++ | docs/spectest (3 files):
22:58 dalek partcl: another high water mark.
22:58 dalek partcl: review: http://github.com/partcl/partcl/commit/9​1b64c853acf844bbb07c9887102fdff18a33d1b
23:12 diakopter joined #parrot
23:12 diakopter boo
23:16 japhb pmichaud, what are your plans for putting an nqp-rx snapshot into the parrot repo?
23:17 pmichaud japhb: I'm still working that out.
23:17 pmichaud and based on discussion with allison on wednesday, it's still more at "proposal stage" than actual commit
23:17 japhb pmichaud, OK.  I was starting to plan the move of Plumage and went "Oh drat, bootstrapping issue for my users ..."
23:18 japhb ur?  She disagrees with the plan we had on Tuesday?
23:18 pmichaud I may just do it as "experimental", but it could get taken out pretty quickly
23:18 pmichaud I'll have to review the tuesday plan, then
23:19 dalek left #parrot
23:19 japhb My understanding is that you would just be occasionally snapshotting the generated PIR into compilers/nqp-rx/ or so, and adding it in to the makefile so that the rest of us could count on an nqp executable.
23:19 dalek joined #parrot
23:19 mikehh FYI those tests failed in the pcc_reapply branch (+ test 21 as well) at r41925 but passed at 41939
23:19 pmichaud yes, that was my understanding as well
23:20 pmichaud but during our design meeting on wednesday it seemed less certain
23:20 japhb :-(
23:20 pmichaud it's also the case that I was a bit distracted on wednesday, so I might have it wrong
23:20 pmichaud (was having to do other things at the same time as the call)
23:20 japhb And Allison seems to be offline for the night.
23:21 pmichaud well, it's not likely to happen tonight
23:21 pmichaud it might, though
23:21 japhb pmichaud, oh sure, I just wanted to get the plan finalized, so that is no longer a blocker.
23:21 pmichaud again, let me review things from Tuesday and from the Wednesday meeting notes and see what I can come up with
23:21 japhb But if you JFDI and mark it experimental, I won't cry.  :-)
23:21 japhb nodnod
23:27 cotto_work After 40m 37s, I can safely say that pprof2cg is a pain point.
23:28 diakopter Infinoid: I added smth to nqp_rxlog.pm (I know; I should've created a sep file).
23:28 japhb cotto_work, how much effort has gone into optimizing it?  I'm a bear of little brain today, but if it's essentially unoptimized, I might be able to gain you a little.
23:30 chromatic examples/benchmarks/oo1.pasm fails because I removed the double-underscore implicit vtable overriding behavior.
23:30 cotto_work japhb, I haven't tried optimizing it at all.
23:30 cotto_work any optimizations would be most welcome.
23:30 chromatic Either we expand PASM's parsing in IMCC to allow attributes on PASM subs or we rewrite that benchmark into PIR.
23:30 mikehh chromatic: yes
23:31 mikehh I think the latter option is the better one
23:31 Coke moritz: having tclsh8.5 would be nifty.
23:32 chromatic Fortunately, rewriting is easy.
23:32 cotto_work japhb, the inline POD should help you figure out what's going on
23:32 Coke I think pasm needs a way to override vtables, no?
23:32 japhb cotto_work, yeah, was browsing that now.
23:33 chromatic I'd add it to IMCC for PASM, but why in the world would you write raw PASM these days?
23:33 japhb cotto_work, can you give me an example of a profile that will be quick enough to process in a minute or so, but big enough to actually be a decent exercise of the processing code?
23:35 cotto_work japhb, you could try oofib.
23:35 japhb cotto_work, OK, will do.  thx
23:36 cotto_work you might lower the number of iterations
23:37 japhb NOW you tell me.  ;-)
23:38 cotto_work apparently running oofib with an arg is broken.
23:42 japhb cotto_work, fix just about to arrive
23:43 cotto_work japhb++ !
23:43 cotto_work how much of an improvement?
23:44 cotto_work or were you referring to oofib?
23:44 japhb oofib
23:44 japhb sorry
23:45 japhb one fix at a time.  :-)
23:45 dalek parrot: r42175 | japhb++ | trunk/examples/benchmarks/oofib.pir:
23:45 dalek parrot: [examples] Fix argument handling in oofib.pir
23:45 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42175/
23:48 cotto_work I'd recommend 18 for oofib.  it takes about 8s, so you should be able to see an improvement without having to wait too long.
23:50 darbelo cotto_work: has anyone tried to run the profiling core under valgrind?
23:50 * japhb applies NYTProf to pprof2cg.pl
23:51 cotto_work darbelo, I have.
23:51 cotto_work That's how I decide how to optimize.
23:51 cotto_work s/to/what to/
23:51 darbelo Cool. Any interesting data you haven't acted upon yet?
23:51 * darbelo lacks valgrind on OpenBSD.
23:52 cotto_work iirc fprintf is the biggest hog so I'd like to switch to a compressed binary format, but that's not something I can do in 5 minutes.
23:53 darbelo The curse of textual interfaces.
23:54 chromatic Is it buffer flushing or merely writing out that much information?
23:54 s1n joined #parrot
23:54 cotto_work it's just using fprintf, so buffering might help too
23:55 darbelo Oh, it fprintf()s data as it goes?
23:55 cotto_work yeah
23:56 darbelo Getting some buffering there should help quite a bit then.

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

Parrot | source cross referenced