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