Camelia, the Perl 6 bug

IRC log for #parrot, 2010-03-11

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 hercynium joined #parrot
00:04 * Whiteknight hates that "exit" is an unrecognized command in gdb
00:05 * darbelo just Contrlo-D's everything this days.
00:06 darbelo Works much more often than quit, exit, etc.
00:08 Whiteknight damnit, chromatic disappears when I want to bounce ideas off him
00:08 dukeleto Whiteknight: i can pretend that I am him and give you a random answer, if that helps :)
00:08 Tene /nick chromatic
00:10 dukeleto we really should create a TT to look into cloning chromatic
00:11 Whiteknight dukleto: ok. I suggest that for mathematics ops, we should delegate to the proxy first, fallback to MMD second, and default last
00:12 dalek winxed: r435 | julian.notfound++ | trunk/examples/pirado.winxed:
00:12 dalek winxed: .param and .local directives, some register allocation and const string
00:12 dalek winxed: arguments in calls in pirado
00:12 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=435
00:12 dukeleto Whiteknight: these are for regular math ops or the dynops or both?
00:13 Whiteknight dukeleto, math vtables for subclasses of numeric bultin types
00:14 dukeleto Whiteknight: "the proxy" refers to PMCProxy ?
00:14 * dukeleto puts on dunce hat
00:14 Whiteknight yes
00:14 dukeleto Whiteknight: what is the reasoning behind PMCProxy coming before MMD ?
00:15 Whiteknight take a read through the generated code of src/pmc/object.c sometime. It's obnoxious
00:15 * dukeleto puts that on my TODO mountain
00:15 Whiteknight meh, fugedaboudit
00:15 dukeleto Whiteknight: what generates object.c ?
00:16 Whiteknight lib/Parrot/pmc2c/PMC/Object.pm
00:16 dukeleto Whiteknight: i am hoping that my dumb questions maybe help you answer some of your questions. That may be too much to hope for, though
00:18 NotFound Now that pirado is able to do some PCC without generating the stringized hex flags I'm wondering what is the reason to have that things in the pbc. If they are used only to check calls in pasm mode, why we store it in the pbc?
00:20 darbelo NotFound: because we don't know better?
00:21 darbelo Coke: ping
00:23 NotFound darbelo: I'm unable to follow imcc internal logic, but maybe someone...
00:24 darbelo I tried to understand IMCC once...
00:24 darbelo After that I decided we should migrate to pirc *yesterday*
00:26 NotFound Looks like the problem is that the string is stored in the constant table and checked from it, so is not easy to isolate.
00:28 dukeleto darbelo: yeah, reading the source of IMCC is the best motivation to work on pirc
00:30 NotFound I'd like better to be freed from lex, yacc and family.
00:30 nopaste "whiteknight" at 68.46.29.192 pasted "patch for chromatic++" (38 lines) at http://nopaste.snit.ch/19907
00:31 Whiteknight purl msg chromatic take a look at http://nopaste.snit.ch/19907. Fixes the two tests from TT #542 and TT #768, but we fail new tests in multidispatch.t and objects.t. I'm looking a those tests now to make sure they are sane
00:31 purl Message for chromatic stored.
00:31 darbelo purl: msg Coke The rm_dynoplibs_make was introducing some unportable makefile constructs. r44860 fixes BSD make, but I can't vouch for other platforms.
00:31 purl Message for coke stored.
00:31 dalek parrot: r44860 | darbelo++ | branches/rm_dynoplibs_make/src/dynoplibs/Rules.in:
00:31 dalek parrot: [Makefile] Avoid using $< in non-suffix rules to make BSD make happy.
00:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44860/
00:37 snarkyboojum joined #parrot
00:42 snarkyboojum_ joined #parrot
00:48 eternaleye joined #parrot
00:57 abqar joined #parrot
01:00 Whiteknight damnit, I made commits to the wrong branch
01:00 darbelo purl: msg Coke Also, see r44859. I think that fixes your liking issues on this branch.
01:00 purl Message for coke stored.
01:00 darbelo And with that. I'm going to sleep.
01:01 darbelo See y'all later.
01:02 cotto_work night
01:04 dalek parrot: r44861 | darbelo++ | branches/rm_dynoplibs_make (2 files):
01:04 dalek parrot: Read the LINKARGS variable, taken from the old dynoplibs template, and use it for linking.
01:04 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44861/
01:20 dalek parrot: r44862 | whiteknight++ | branches/tt389_fix (3 files):
01:20 dalek parrot: [tt389_fix] I committed this to the wrong branch. undo.
01:20 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44862/
01:23 snarkyboojum joined #parrot
01:42 Austin joined #parrot
01:42 * Whiteknight thinks he has the fix_hll_mmd problems licked
01:47 Austin I think it's kind of bizarre that I order something from Amazon.com, select "standard shipping", and the package arrives before the confirmation email.
01:47 Austin Not that I'm complaining, since it showed up overnight...
01:51 cotto_work I'd appreciate thoughts on a more refined plan for Lorito:
01:51 nopaste "cotto" at 131.107.0.111 pasted "plan for Lorito" (32 lines) at http://nopaste.snit.ch/19908
01:53 * cotto_work goes home
02:34 ash_ joined #parrot
02:44 patspam joined #parrot
02:54 snarkyboojum joined #parrot
02:55 Coke msg cotto - does lorito sit on top of existing bytecode?
02:55 purl Message for cotto stored.
02:56 Coke ->
03:01 patspam joined #parrot
03:21 preflex joined #parrot
03:25 Austin Coke: I think the idea is the other way around - that existing bytecode sits on pmc/ops that is written in lorito.
03:25 Austin Essentially, it's the lower-level vm.
03:28 patspam joined #parrot
03:32 cotto Coke, what stage of the plan are you talking about?
03:33 cotto The long-term plan is what Austin said.
03:35 janus joined #parrot
03:41 plobsing cotto: what about the ability to have bytecode in the interpreter by default on startup so that core VM features can be implemented in PIR but be transparent to users?
03:41 plobsing do we have that already?
03:42 cotto not sure what you mena
03:42 cotto *mean
03:42 cotto I think what you're saying is part of the plan.
03:43 plobsing yes, but I don't see it explicitly there, and it's a feature I think would help start us along (and might be useful in other areas)
03:44 cotto I'm adding it now.  It's just something I forgot to mention.
03:44 Austin Not only that, but I think a significant fraction of the pmc stuff should already be in pir.
03:44 eternaleye joined #parrot
03:44 plobsing Austin: exactly. one of the reasons it's not is not wanting to have to "load_bytecode 'RPA.pbc'"
03:45 cotto plobsing, I see what you mean.
03:46 cotto something like parrot_bootstrap.pbc that does all kinds of magical interp init stuff
03:46 Austin Sure, and there's a couple of pmc's that are clearly always going to be in C for performance. But why are there all these "methods" - that are clearly aimed at being called from pir - in C? Why not just write 'em in pir and be done.
03:50 plobsing that's a good point. Another point this would improve is ops-based security. If you made Filehandle PMC in PIR over ops/dynops, you eliminate loopholes in op-filter based security (as pitched in TT #1500)
03:51 cotto plobsing, sure.  If everything goes through Lorito we can have a high degree of control over what's allowed to run.
03:53 tetragon joined #parrot
03:53 plobsing cotto: that depends... If Lorito is as low level as I have come to understand it to be, it may be difficult to distinguish between permissable and forbidden operations.
03:53 szabgab joined #parrot
03:54 cotto How so?
03:55 bacek joined #parrot
03:55 cotto a wild bacek appears
03:56 bacek I'm not wild. I'm mad!
03:56 * plobsing uses sanity. It's not very effective.
03:56 * cotto agrees with whatever the mad bacek says and backs off slowly
03:57 * bacek keeps silence
03:58 plobsing cotto: Say Lorito implements filehandle open as with a syscall op. There will be cases when I cannot statically determine what syscall is being made. Maybe its open, maybe its write, maybe its unlink, etc.
04:00 cotto That'll be a good case to bring up when discussion on Lorito starts in earnest.
04:00 plobsing Do I a) risk it and allow this or b) explain to an HLL end user why they have to jump through hoops so that their invariants can translate downwards
04:03 cotto I don't see requiring a constant to be used for syscalls creating extra difficulty for HLL users.
04:04 cotto they'll say $f = open("foo","w") and the HLL will eventually generate syscall x, ..., where x is a compile-time constant.
04:04 cotto (assuming we go that route)
04:05 plobsing cotto: that's a simple case. There will be cases where the programmer can guarrantee invariance while either the HLL compiler or Lorito analyser cannot
04:07 cotto I'd encourage you to send something to the list about it.  It sounds like a point that's worth getting right early.
04:21 cotto bacek, thoughts on a more fine-grained Lorito plan?:
04:21 nopaste "cotto" at 96.26.227.153 pasted "cotto attacks the wild bacek with a Lorito plan" (38 lines) at http://nopaste.snit.ch/19909
04:21 bacek cotto, looks about all right.
04:22 cotto Call that v1.1
04:23 cotto What would you add or modify?
04:23 Austin What's the purpose of the plan? More to the point, what's the purpose of lorito?
04:24 bacek cotto, may be move "pmc" into later stages.
04:25 cotto bacek, why?
04:25 purl bacek, why is the conditional in mark_context_start() in sub.c? Why do you need to check if it is 0? Why not just do context_gc_mark = 1, and skip the check?
04:26 bacek Does almost nothing on early stages. We can implement ops first and than implement pmc in HLL from stage 2
04:28 cotto We'd still need to flesh out how to implement/use core PMCs written in HLLs.
04:28 cotto i.e. the mangled-C PMCs would have to stick around longer
04:29 bacek But after implementing ops it will be much easier.
04:30 cotto So you're saying that we should focus on ops until they're all Lorito-y, then use the lessons from that transition on PMCs?
04:34 bacek exactly
04:34 cotto That makes sense.
04:34 bacek small steps
04:34 purl small steps are easier to debug than big ones.  We could get :todo<...> working and not know it due to other errors :-)
04:46 cotto bacek, are you saying that the nqp-rx pmc compiler should go later or just that we should wait before implementing PMCs in HLLs?
04:46 bacek just wait
04:47 * cotto waits
04:47 bacek nqp-rx pmc compiler is independent stream of work.
04:47 bacek It can be done in parallel with main ops/lorito work
04:48 cotto I think I understand; once Lorito's sufficiently far along, we won't need a separate pmc compiler to build PMCs?
04:49 cotto so the pmc compiler eventually becomes irrelevant
04:51 dukeleto 'ello
04:51 cotto i
04:52 * cotto goes shopping
04:52 Austin_Hastings joined #parrot
04:53 dukeleto Austin_Hastings: howdy
04:53 purl hola, dukeleto.
04:53 Austin_Hastings Hey, duke.
04:54 bacek not quite true.
04:54 bacek We still need main Grammar for PMC.
04:54 bacek But grammar for vtable/methods bodies will be shared with opsc
05:01 dukeleto msg particle what is your gsoc link id? i need it for the gsoc app
05:01 purl Message for particle stored.
05:05 tuxdna joined #parrot
05:23 dalek parrot: r44863 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops (2 files):
05:23 dalek parrot: Remove redundant
05:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44863/
05:23 dalek parrot: r44864 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops (2 files):
05:23 dalek parrot: Implement generating C code for new Ops::Op past
05:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44864/
05:26 bacek msg cotto new grammar doesn't parse ops correctly... E.g. "opcode * next = expr NEXT();" will be parsed without <macro>.
05:26 purl Message for cotto stored.
05:33 * dukeleto is hacking on the gsoc app and making tests pass
05:33 dalek rakudo: e634b58 | (Martin Berends)++ | src/Perl6/Module/Loader.pm:
05:33 dalek rakudo: [Perl6/Module/Loader.pm] patch by jnthn++ need's %name_adverbs argument optional
05:33 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​634b58ea8d3b686b27a32d3585726d855d9cb11
05:42 eternaleye joined #parrot
05:51 cotto bacek, good catch
05:53 dukeleto can someone tell me the difference between: new 'Foo' and new ['Foo'] and where that is documented?
05:54 Austin Duke: I think there's no current difference, but the second way is preferred because of .... mumble mumble mumble ... it's NEW!
05:54 dukeleto Austin: ah, but there is a difference. tewk's recent patch that allows new 'Foo', 5 does not work with the ['Foo'] syntax
05:55 cotto 'Foo' would be sc and ['Foo'] would be kc
05:55 dukeleto cotto: sc and kc ?
05:56 cotto They might need to be handled explicitly.  not
05:56 cotto string const and key const
05:56 cotto referring to the op variant that's executed
05:56 cotto new_p_sc_i vs new_p_kc_i
05:56 dukeleto cotto: interesting. do 'Foo' and ['Foo'] have different semantics? where can I read about that?
05:57 cotto I don't think they do but I'm also unclear about why the change is a good idea.
05:58 dukeleto cotto: which change are you talking about?
06:00 dukeleto Austin: here is how they are different: http://gist.github.com/328889
06:02 Austin Huh. That's an interesting output format for FSA. Is that built-in, or did you put something in the namespace?
06:04 dukeleto Austin: no, that is built in. it stringifies
06:04 Austin Well, cool.
06:04 dukeleto Austin: yes. a pleasant surprise for us both :)
06:16 chromatic joined #parrot
06:19 dukeleto chromatic: howdy
06:19 purl hello, dukeleto.
06:20 chromatic howdy
06:20 purl hey, chromatic.
06:20 dukeleto chromatic: it seems that new 'Foo' and new ['Foo'] go down different code paths, such that new 'Foo', 10 works, but new ['Foo'], 10 does not
06:20 dukeleto chromatic: http://trac.parrot.org/parrot/ticket/1507
06:23 chromatic new 'Foo', 10 is the new_s(c?)_i(c?) op and new [ 'Foo' ], 10 is the new_p(c?)_i(c?) op.
06:23 chromatic 'Foo' is a STRING (and maybe constant) while [ 'Foo' ] is a PMC (and maybe constant).
06:24 chromatic If tewk didn't add variants for the latter, that syntax won't work.
06:24 dukeleto chromatic: yes, cotto was telling me that. do you have a hint on how I would change VTABLE_init_int to allow the ['Foo'] usage ?
06:25 chromatic I don't think the problem is in VTABLE_init_int.
06:25 dukeleto chromatic: tewk was saying that it may be the order that the opcodes are listed
06:26 chromatic I don't think that's the case either, but let me look at it.
06:27 bacek joined #parrot
06:28 chromatic bacek, did you find anything with compact_pool?
06:28 dalek parrot: r44865 | dukeleto++ | trunk/t/pmc (5 files):
06:28 snarkyboojum joined #parrot
06:28 dukeleto chromatic: thanks
06:28 dalek parrot: [t] Enable various tests that test VTABLE_init_int. Note that it does not work for key constants (i.e. Foo?) but works on string constants. This needs to be fixed.
06:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44865/
06:29 dukeleto wow, dalek totally munged my commit msg
06:31 dalek TT #1507 created by dukeleto++: VTABLE_init_int does not work on key constants
06:37 dukeleto has anybody tried to write File::Temp in PIR yet?
06:38 dukeleto lots of tests are stuck in perl-land because they need temp files
06:38 Austin Write it in nqp instead.
06:39 dukeleto Austin: i hear what you are saying, but it is for the parrot core test suite, which doesn't use NQP
06:40 Austin And of course nqp doesn't compile to pir, so there's no way to use it....
06:40 dukeleto Austin: ;)
06:42 dukeleto Austin: yeah, i guess you are correct. it seems that parrot does not currently come with any .nqp files, but there is no reason why it can't
06:42 Austin Just because the source is nqp doesn't mean you can't ship pir - look at nqprx itself.
06:43 Austin The point of nqp is to be a hll, because hlls are easier to write, etc.
06:46 chromatic dukeleto, patch on the way.
06:46 dukeleto chromatic: sweet!
06:48 nopaste "chromatic" at 67.168.199.244 pasted "dukeleto: fix init_int when instantiating from Key" (52 lines) at http://nopaste.snit.ch/19910
06:48 chromatic All tests pass here with that.  I can commit it if you're satisfied with your tests.
06:50 dukeleto chromatic: there are no tests currently that test new ['Foo'], 5 . but go ahead and commit and I will test
06:51 dukeleto chromatic: did you try to something like in http://gist.github.com/328889 ? perl tools/dev/parrot_shell.pl and paste the second command for a quick verification
06:52 chromatic I did.
06:52 chromatic Straight out of TT #1507.
06:52 dukeleto chromatic: sweet!
06:52 dukeleto chromatic: please commit and i will add lots of tests
06:53 dukeleto chromatic: so the previous code was not checking for PMC's created from PIR?
06:54 chromatic It was, but it assumed that Parrot_oo_get_class() would only return a PMC for PMCs written in PIR.
06:55 chromatic "Not true," says the hacker who still has scars from wrestling with PMCProxy.
06:55 chromatic And that's why it was the Best. Day. Ever.
06:55 dukeleto chromatic: interesting. i am still trying to wrap my head around PMCProxy. It seems a lot bigger than my head, currently.
07:01 dalek parrot: r44866 | chromatic++ | trunk/src/ops/experimental.ops:
07:01 dalek parrot: [ops] Fixed the experimental new PPI op to use the init_int VTABLE directly
07:01 dalek parrot: instead of trying to go through the associated PMCProxy instantiate.
07:01 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44866/
07:02 dukeleto chromatic++
07:20 uniejo joined #parrot
07:34 dalek parrot: r44867 | dukeleto++ | trunk/t/op (2 files):
07:34 dalek parrot: [t] Convert some more tests for transcendental ops to PIR
07:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44867/
07:41 bacek joined #parrot
07:42 dukeleto bacek: o hai
07:44 bacek aloha dukeleto
07:47 dukeleto bacek: may the force be with you. I am going to bed.
07:47 bacek Good idea :)
07:48 iblechbot joined #parrot
07:50 dalek parrot: r44868 | dukeleto++ | trunk/t/pmc (5 files):
07:50 dalek parrot: [t][TT#1507] Add tests for VTABLE_init_int with a key constant
07:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44868/
07:53 dalek TT #1507 closed by dukeleto++: VTABLE_init_int does not work on key constants
08:06 dukeleto chromatic: $P0 = new ['FixedStringArray'], -5 causes a VM panic, but I can't seem to throw the exception correctly. I should really go to bed
08:12 chromatic Sounds like a malloc problem.
08:13 chromatic Yep.
08:15 chromatic Cannot instantiate PMC with negative size -5
08:15 chromatic How's that work for an exception message?
08:19 JimmyZ joined #parrot
08:30 AndyA joined #parrot
08:38 fperrad joined #parrot
08:56 bacek joined #parrot
08:57 lucian joined #parrot
09:04 bacek msg chromatic ...and rakudo creates A LOT of very long strings. E.g. for ~80k
09:04 purl Message for chromatic stored.
09:11 dalek parrot: r44869 | bacek++ | trunk/src/ops/core.ops:
09:11 dalek parrot: Use str_new_constant in pop_eh/count_eh
09:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44869/
09:13 chromatic bacek, I wonder if allocating STRINGs out of fixed size pools would be more useful.
09:13 chromatic ... except sweeping is hard.
09:14 bacek chromatic, indeed. non-mutable strings will be better.
09:15 chromatic The biggest problem with compact_pool is that the pool size grows without bounds.
09:15 chromatic It'll always hit a high water mark.
09:16 chromatic I tried modifying it never to create pools larger than a megabyte in size and copying over that way, but I couldn't get it to work in an hour.
09:17 bacek I think it worth to try to split it into set of pools instead of allocating everything from one
09:20 chromatic I ran into two bits of trouble.
09:20 chromatic The first is that you have to make sure to copy from and free multiple pools instead of one, when you compact.  That's not a big deal.
09:21 chromatic The second is that you might have to deal with cases where the current fresh pool isn't large enough to hold the next STRING to copy.
09:21 chromatic I think that's what caused problems in my implementation.
09:22 bacek yeah... It can be bit of problem.
09:22 bacek Ok. Main slow down of rakudo in core.pm is _many_ calls to "escape $S0" with same string.
09:23 bacek Very large one
09:23 bacek Like 100 kilobytes.
09:23 chromatic That's probably the output file.
09:23 Austin Why would it be escaping the string multiple times?
09:24 bacek "[0]) };\n", ' ' <repeats 12 times>, "} elsif @lhs[1] / @lhs[0] == @lhs[2] / @lhs[1] {\n", ' ' <repeats 16 times>, "@lhs[0] ... { $_ * (@lhs[1] / @lhs[0]) };\n", ' ' <repeats 12 times>, "} else {\n", ' ' <repeats 16 times>, "fail \"Unable to figure out pattern o"
09:24 bacek Austin, something like :node(~$/)
09:24 Austin ?
09:24 Austin Escaping is not idempotent.
09:25 Austin If its re-escaping the unescaped string, that's a bit wierd. If it's repeatedly escaping the escaped string, that's probably a bug.
09:26 Austin FWIW, maybe escape could benefit from a one-entry cache.
09:27 bacek May be NQP "bug".
09:27 bacek ./src/stage0/Regex-s0.pir:    $S0 = escape token
09:28 AndyA joined #parrot
09:28 chromatic That's escaping a substring though.
09:29 Austin Humorously enough, it's doing the escape so it can print a debugging message.
09:30 Austin Maybe !cursor_debug should do it's own escaping, *after* it decides to print the string.
09:30 chromatic Are the tokens really that long?
09:34 Austin chromatic: ^^ bacek says ~100k. Probably one of the top-level productions.
09:34 bacek It's !cursor_debug from NQP.
09:34 bacek Trying to fix it now
09:34 chromatic They should be COW... but can you try this patch?
09:34 dalek tracwiki: v3 | mj41++ | Lorito
09:34 dalek tracwiki: see also
09:34 purl see also is traditionally near the end of the pod...
09:34 dalek tracwiki: http://trac.parrot.org/parrot/wiki​/Lorito?version=3&amp;action=diff
09:34 nopaste "chromatic" at 67.168.199.244 pasted "bacek: fewer escapes in NQP-rx" (29 lines) at http://nopaste.snit.ch/19911
09:35 bacek chromatic, I'm working in same direction
09:36 Austin Why not just put the escape in the !cursor_debug sub?
09:36 chromatic How do you know what you can escape safely in there?
09:37 Austin Well, I'm figuring that most of the "static" bits will be immune to escaping.
09:37 Austin token=
09:37 Austin token1=
09:37 chromatic self.'!cursor_debug'( "Got here!\n" )
09:38 chromatic I don't want that newline to turn into \\n.
09:38 Austin -> self.'!cursor_debug'("Got here!")
09:38 Austin !cursor_debug already does \n
09:38 chromatic I want two newlines.
09:38 chromatic I also don't want my double quotes to turn into \"
09:39 chromatic Or my tabs to \\t
09:39 dalek rakudo: 9786b03 | moritz++ | t/spectest.data:
09:39 dalek rakudo: enable passing test files
09:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​786b03ee228de1eb76adab5a91c89d7f0983a49
09:39 dalek rakudo: 9ef3c7c | moritz++ | src/core/Parcel.pm:
09:39 dalek rakudo: methods ACCEPTS in class Parcel
09:39 dalek rakudo: It is a bit incomplete since the spec doesn't really say what it should
09:39 dalek rakudo: do; this patch just implements the case where the invocant has no items, which
09:39 dalek rakudo: is also known as Nil.
09:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​ef3c7c51e498964a959cec60496e4cb31444094
09:39 dalek rakudo: 04ad775 | moritz++ | build/Makefile.in:
09:39 dalek rakudo: install Test.pir, since we can't load .pm modules right now
09:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​4ad775644666559d2e604073d88ed99c60eb081
09:40 Austin Well, then, in that case the right answer is clearly to impose the whole check-if-debug, branch-to-nodebug, escape, call !cursor_debug, :nodebug tax all over the place, on the off chance you want two newlines. :)
09:41 cotto bacek, grammar fix committed
09:41 chromatic Only one place in this file escapes the strings it sends.
09:41 bacek cotto, good!
09:41 chromatic ... the strings it sends to !cursor_debug(), that is.
09:41 knewt joined #parrot
09:41 cotto night
09:43 chromatic msg dukeleto See r44872 for one FSA fix; tests welcome.
09:43 purl Message for dukeleto stored.
09:44 bacek Good night, cotto
09:44 dalek parrot: r44870 | cotto++ | branches/ops_pct/compilers/opsc (2 files):
09:44 dalek parrot: [opsc] force op_macro to first try an empty string for body_word so that
09:44 dalek parrot: subsequent punctuation doesn't get eaten when there's no argument
09:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44870/
09:44 dalek parrot: r44871 | mikehh++ | trunk/src/pmc/fixedbooleanarray.pmc:
09:44 dalek parrot: fix codetest failure - line length
09:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44871/
09:44 dalek parrot: r44872 | chromatic++ | trunk/src/pmc/fixedstringarray.pmc:
09:44 dalek parrot: [PMC] Made FSA throw an exception when initialized with a negative integer.
09:44 dalek parrot: The text and type of this exception can change; this is a suggestion that
09:44 dalek parrot: prevents weird memory panics for now anyhow.
09:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44872/
09:58 bacek chromatic, reducing escaping doesn't help much in terms of performance...
10:00 bacek chromatic, holy shit...
10:00 dalek parrot: r44873 | mikehh++ | trunk/src/ops/experimental.ops:
10:00 bacek Parrot_mmd_build_type_tuple_from_sig_obj calls CallContext.get_string
10:00 dalek parrot: fix codetest failure - space before closing parenthesis
10:00 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44873/
10:00 dalek parrot: r44874 | mikehh++ | trunk/src/pmc/fixedstringarray.pmc:
10:00 dalek parrot: fix codetest failure - space before closing parenthesis
10:00 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44874/
10:00 Austin Well, you would expect that 'escape' is C, and probably fast.
10:01 bacek which allocates new string
10:01 Austin What does it do with the string?
10:06 mikehh post-config test failure - t/steps/init/hints/linux-01.t - Failed tests:  3-5
10:08 mikehh make corevm/make coretest failure - t/pmc/nci.t - Parse errors: Bad plan.  You planned 71 tests but ran 0 -- this tests PASSSes after I run make world/make test
10:10 darbelo Austin: That hardly matters, it's the string *creation* that's expensive.
10:11 darbelo Even with COW, which cuts down on buffer allocations, the string header overhead is sizable.
10:11 Austin darbelo: That's if there's one being created. I was wondering if this was part of the pcc refactor, or if it was really to-stringing the thing for some reason.
10:12 Austin (Like maybe get_string was overridden to return the signature, or something...)
10:13 darbelo "07:00 <@bacek> which allocates new string", whatever it's doing there, it's teh allocation that's expensive.
10:14 darbelo Looking at the source it "Returns the short signature for the CallContext."
10:15 Austin Shouldn't that be a constant, and pretty much free?
10:16 darbelo Probably, right now it allocates and constructs the string at runtime.
10:17 darbelo Oh, wait. It's cached.
10:23 gaz joined #parrot
10:24 mikehh post-config FAIL - t/steps/init/hints/linux-01.t - Failed tests:  3-5
10:24 mikehh coretest FAIL - t/pmc/nci.t - Non-zero exit status: 2 - Parse errors: Bad plan.  You planned 71 tests but ran 0. (PASS in test/smoke)
10:24 mikehh all other tests PASS (pre-config, smoke (#32607), fulltest) at r44874 - Ubuntu 9.10 amd64 (g++ with --optimize)
10:26 bacek darbelo, inside CallContext. Which created on every PCC call.
10:27 darbelo Oh. Ouch.
10:27 darbelo I see how that might be a problem...
10:40 mikehh I get the same test failures and passes with gcc and g++ (with or without --optimize)
10:41 mikehh going to try on i386
10:41 mikehh rebooting - bbiab
10:52 payload joined #parrot
11:08 lucian joined #parrot
11:10 mikehh joined #parrot
11:12 snarkyboojum joined #parrot
11:13 moritz there's something wrong with parrots GC behaviour
11:13 moritz when I compile rakudo, it uses up all memory (about 3.5GB including swap space)
11:13 moritz and makes the computer thrash like mad
11:13 moritz but when I ulimit it to 1GB, it still works (a bit slow, but it does work)
11:14 moritz so parrot uses huge amounts of memory that it doesn't actually need
11:14 moritz we're talking about a factor of 3 here, at  least
11:20 darbelo WTF? I've never seen it do that.
11:20 lucian i'm a newbie, what kind of GC does parrot use? (trac and google revealed nothing useful)
11:22 dalek rakudo: 26a9a3e | (Solomon Foster)++ | src/core/ (2 files):
11:22 dalek rakudo: Merge branch 'series'
11:22 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​6a9a3ebbce34b0a2792c8d40c286c6160a1b889
11:25 lucian allison: i get very weird behaviour for dict(one=2, two=3) and the has_mapping inside
11:25 darbelo lucian: homegrown stop-the-world mark and sweep.
11:26 darbelo bacek's trying to add bohem as an option in a branch right now.
11:27 lucian darbelo: right. boehm isn't particulary good either
11:29 darbelo His first attempt had some performance issues due to bohem not being precise. But I think he had found ways to make that work acceptably after the last gc encapsulation branch landed.
11:30 darbelo I don't recall what exactly was stoping him from merging the branch to trunk.
11:30 lucian the PyPy folks have quite a few nice generational GCs, perhaps some useful research
11:33 lucian allison: http://pastie.org/864788
11:38 dalek parrot: r44875 | darbelo++ | trunk/t/steps/init/hints/linux-01.t:
11:38 dalek parrot: [hints] Adjust icc flags test on linux to search for a flag we actually set.
11:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44875/
11:45 dalek rakudo: 595ec0e | (Solomon Foster)++ | t/spectest.data:
11:45 dalek rakudo: Turn on basic series test files.
11:45 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​95ec0e326f81a75cf11db2705f9387a94cb831c
11:45 darbelo msg mikehh does r44875 fix your post-config failures?
11:45 purl Message for mikehh stored.
11:48 mikehh darbelo - yes - wtf is wd269/we167
12:03 darbelo Magic icc command line option.
12:04 darbelo The -wd??? options are warnign related, so I moved them to the appropiate config step.
12:10 cognominal joined #parrot
12:14 lucian joined #parrot
12:16 mikehh coretest FAIL - t/pmc/nci.t - Non-zero exit status: 2 - Parse errors: Bad plan.  You planned 71 tests but ran 0. (PASS in test/smoke)
12:16 mikehh all other tests PASS (pre/post-config, smoke (#32611), fulltest) at r44875 - Ubuntu 9.10 i386 (g++ with --optimize)
12:20 bluescreen joined #parrot
12:26 sjn joined #parrot
12:29 Coke msg cotto - perhaps a little ascii-o diagram showing the layers of parrot with lorito in it.
12:29 purl Message for cotto stored.
12:31 Coke looks like the rm_dynoplibs_make branch is fixed. (darbelo++, yes?) - someone wants to merge that back to trunk, I'd appreciate it.
12:32 dalek TT #1508 created by parthm++: broken links on parrot.org
12:35 mikehh ok headed back to amd64 - bbiab
12:35 Coke ->
12:36 ruoso joined #parrot
12:40 iblechbot joined #parrot
12:57 lucian allison: i pushed a working but incomplete version of dict
12:59 darbelo Coke: ping
13:05 dalek TT #1509 created by dukeleto++: "new ['FixedStringArray'], -5" core dumps
13:09 mikehh joined #parrot
13:09 dukeleto 'ello
13:10 mikehh hi dukeleto
13:11 mikehh dukeleto - I am getting a failing test in coretest - t/pmc/nci.t which runs under test
13:12 dukeleto mikehh: howdy! i will see if that fails for me
13:12 mikehh I was just wondering if anyone else had the same problem (all other tests PASS)
13:12 rblackwe joined #parrot
13:13 mikehh it just fails for me with make corevm/make coretest
13:13 dukeleto mikehh: can you nopaste the full output of the test file?
13:13 mikehh since the recent adjustments to make corevm
13:14 mikehh it fails before any (sub)tests are run in the perl - ===Can't use string ("Test::Builder") as a HASH ref while "strict refs" in use at /usr/local/lib/perl5/5.10.1/Test/Builder.pm line 485
13:15 dukeleto mikehh: that is peculiar
13:15 mikehh but other tests use Test::Builder so I am not sure what it is
13:15 whiteknight joined #parrot
13:16 dukeleto mikehh: what does perl -MTest::Builder -e 'print $Test::Builder::VERSION . "\n"' say ?
13:16 dukeleto mikehh: does the same thing happen when you run the test by itself vs. as part of "make test/coretest" ?
13:17 Coke http://news.bbc.co.uk/2/hi/americas/8561707.stm
13:18 Coke (nci) - does it help to move back the NCI_TEST dep from all to corevm ?
13:18 Coke darbelo: bpon
13:18 Coke ... er, pong
13:18 mikehh dukeleto 0.94 - and yes both with prove and make corevm/make coretest - but it is ok with make world/make test
13:19 Coke mikehh: you should totally upgrade to duketo 0.97
13:19 dukeleto Coke: i hear it is still buggy
13:20 dukeleto mikehh: i think maybe nci shouldn't be part of coretest, but i am not sure
13:20 Coke the cake?
13:20 purl somebody said the cake was a lie.
13:20 Coke I love you, purl.
13:20 purl Coke: huh?
13:20 dukeleto who is on first?
13:20 purl okay, dukeleto.
13:20 Coke second base?
13:20 dukeleto wow.
13:20 Coke who?
13:20 Coke the guy on first?
13:20 purl the guy on first is who
13:20 Coke purl, you need help.
13:20 purl Coke: sorry...
13:23 mikehh othere tests use Test::More
13:25 Coke ah.
13:25 Coke I added test::more lib specificially to get built by corevm.
13:25 Coke might be missing a PBC somewhere, with a LTA error message.
13:26 dukeleto is nci supposed to be part of coretest?
13:30 dukeleto should the creation of arrays of size 0 be allowed? when can that ever be useful?
13:32 mikehh damnit - I have to go and collect some paperwork in the centre of the city - parking is going to be a nightmare or something
13:33 mikehh anyway bbl
13:33 dukeleto mikehh: good luck
13:33 purl You'll need it.
13:33 dukeleto purl, go play in traffic
13:33 * purl wanders off to dent some cars.
13:35 particle dukeleto: you still about?
13:35 dukeleto particle: ahoy
13:35 dukeleto particle: do you know your gsoc link id? i guessed that it was 'particle'
13:36 particle where do i find this id you need?
13:36 particle yes, it probably is, let me check with a little help from you
13:36 dukeleto particle: hmm. well, it is the same link id that you used in last years gsoc
13:36 particle yes, where do i login?
13:36 particle socghop.appspot.com?
13:37 dukeleto particle: http://socghop.appspot.com/gsoc/org_app/​take/gsoc_program/google/gsoc2010/orgapp
13:38 particle link id: particle
13:38 particle dukeleto: is there a channel besides #soc-help that i should be in?
13:39 dukeleto particle: awesome, i guessed correctly.
13:40 dukeleto particle: no, that is the only channel, for now
13:40 particle dukesnack
13:40 dukeleto particle: the app has been submitted
13:40 particle awesome. nice work!
13:40 Coke rant: drupal & trac both sucks.
13:40 Coke *suck.
13:40 particle why this time, coke?
13:41 dukeleto Coke: i find trac usable, bit very much agree about drupal
13:41 Coke this overagressive caching in drupal makes it COMPLETELY UNUSABLE unless you're just browsing.
13:41 dukeleto particle: we should hear if we are accepted no later than "March 18, 2010 at 19:00 UTC"
13:41 Coke edit a page. save my changes. they don't show up unless I add ?drupal_sucks1
13:41 Coke I go back to make another edit. THE EDIT PAGE IS ALSO CACHED
13:41 Coke so the change I just made doesn't show up in the edit screen.
13:42 particle coke: either it's the caching layer (varnish) or your browser. are you using firefox?
13:43 Coke chrome.
13:43 particle i've found ff does some aggressive caching.
13:43 particle hrmm, i haven't seen that with chrome.
13:43 Coke (And I don't have this problem with any other server side technology. and if the app is not sending out the right caching directives, it's not the browser's fault.
13:43 * dukeleto definitely has noticed lots of wonky chrome behavior lately
13:44 * Coke gives up on TT#1508 and leaves it for someone else.
13:44 Coke what a !@#$%^&*()_ pita.
13:45 Coke (trac) and the auth stuff on trac is still broken.
13:45 Coke "save" "you're logged out" "login" "ok, you're logged in with no challenge, but I forgot where you were, and oh, I saved those changes from last time."
13:46 Coke particle: when I hit edit, my local proxy shows that I'm getting a 200 from the server, and that it's actually pulling data down.
13:47 Coke and the /server/ is giving me the old, wrong, page that I JUST edited and saved a new version of.
13:47 particle coke: that points to varnish
13:47 Coke if I instead use http://www.parrot.org/node/2/edit?drupal_sucks1
13:48 Coke I get the edit screen for that node with the correct content.
13:48 Coke is varnish part of drupal?
13:48 particle create a support ticket for osuosl with this info, it should give them a good place to look and an easy way to recreate
13:48 Coke or part of our admin setup?
13:48 Coke *admin's
13:48 particle no, it's a web caching layer
13:54 Coke bug opened, cc'd -directors
13:55 particle coke++.  i hope they get this fixed for you.
13:55 particle why is Devel::Cover such a bear to install?
13:56 particle and why doesn't screen like my PgUp key? sigh.
13:59 Coke shift-pgup, perhaps?
14:07 particle in scrollback mode, screen doesn't respond to shift-pgup, and when i hit pgup, it exits scrollback mode and gives me '[5~'
14:07 dukeleto particle: Ctrl-A-[ will put you into copy-paste mode, where you can use j/k to go scroll up/down
14:08 particle my muscle memory is tied to pgup/pgdn
14:08 particle i can use arrows and jk, but i need to scroll through 10k lines
14:08 dukeleto particle: oh boy
14:09 particle yeah, screenlogs aren't ideal, either, with all the ^Ms
14:11 darbelo Coke: I can merge rm_dynoplibs_make for you if you have no further work to do there.
14:12 darbelo Also, you might want to ask for a windows (actually nmake) test before merging.
14:20 bubaflub joined #parrot
14:20 Coke I would, but whenever I ask for that, no one does it until I merge back to trunk anyway. =-)
14:21 darbelo JFDI++
14:21 Coke Seriously, I would love to have it tested first.
14:22 darbelo As far as I can tell, we're safe. But I'm paranoid when it comes to makefile portablility.
14:22 Coke and trunk has ttbot, so we'll know soon enough.
14:22 Coke (not like it's untested, just... immediately post-tested)
14:22 dukeleto hmm. it is a bug that when one .pmc file is changed, all .pmc's get re-compiled ?
14:22 dukeleto s/it is/is it/
14:22 Coke dukeleto: yes.
14:22 dukeleto has it always been that way?
14:22 Coke because that doesn't happen. =-)
14:23 Coke which pmc are you changing?
14:23 Coke default?
14:23 purl rumour has it default is sub { } => just the same as not having a default, right
14:23 darbelo For dynpmcs yes, for regular pmcs, no.
14:23 mls joined #parrot
14:23 dukeleto Coke: i changed fixedfloatarray.pmc and all pmc's got regenerated
14:23 Coke dukeleto: did you edit that .pmc and just type "make" ?
14:23 dukeleto Coke: yep
14:23 Coke (and had you done a full make first?)
14:24 darbelo svn--
14:24 dukeleto Coke: yes
14:24 Coke dukeleto: let me see if I can duplicate yoru bug.
14:24 dukeleto Coke: and i just got it to happen again with "touch src/pmc/fixedfloatarray.pmc; make"
14:24 darbelo Coke: it's allways been like that, AFAIR.
14:24 mls particle: regarding screen, that's probably because $TERM doesn't match your terminal
14:24 dukeleto Coke: after a full make
14:25 Coke unless the other pmcs are depending on that pmc file, there's no reason for that; it should be respecting the pmc inherits chain (plus a few that are depending on by everything)
14:26 particle mls: in screen, $TERM is screen. outside, it's xterm.
14:26 particle centos-5.4
14:26 dukeleto Coke: i don't think many (or any) pmc's depend on FFA. maybe something thinks they do?
14:27 Coke RFA does.
14:27 mls particle: what's the output of 'infocmp | grep kpp' outside of screen?
14:27 particle $ infocmp | grep kpp
14:27 particle knp=\E[6~, kpp=\E[5~, kri=\E[1;2A, mc0=\E[i, mc4=\E[4i,
14:27 dukeleto Coke: ok, does that cause all other PMC's to get pulled in?
14:27 Coke nope. nothing else seems to depend on RFA.
14:28 dukeleto Coke: can you reproduce the issue?
14:28 Coke build is warning me with: /home/coke/sandbox/parrot/blib/lib/libparrot.so: undefined reference to `SUPER'
14:28 Coke dukeleto: no, I cannot duplicate the issue.
14:29 Coke ah. probably due to the SUPER error.
14:29 mls particle: does ^A:bindkey -m contain a :kP: line?
14:30 particle kN is set to stuff ^F, kP to stuff ^B
14:30 particle maybe that's it!
14:30 mls No, that's good.
14:30 particle hrmm
14:30 mls terminfo says that \E[5~ is kpp (i.e. kP in termcap)
14:31 mls so \E[5~ should be mapped to ^B
14:31 particle can i set those to C-u and C-f ?
14:31 particle ...the vim commands for scroll up/down a page.
14:32 Coke needed a realclean.
14:32 mls Doesn't ^U/^F already work?
14:32 bluescreen joined #parrot
14:32 particle hrmm, yes, it does.
14:33 particle i want pgup to do what ^u does
14:33 ttbot Parrot trunk/ r44876 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/225555.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
14:33 Coke dukeleto: ok. realclean, my build works. I touch src/pmc/fixedfloatarray.pmc, It rebuilds FFA, RFA, and that's about it until after parrot is rebuilt and rebuilds all the pbcs.
14:34 mls If you press ^V and then PgUp, you get ^[[5~?
14:34 Coke so, it's just you. =-)
14:34 dukeleto Coke: ok, will look more into it
14:34 Coke http://feather.perl6.nl/~coke/mf shows the build log after I touch ffa.pmc
14:34 Coke (that's with straight make, no -j)
14:35 Coke and trunk@44875
14:35 particle mls: i have ^a remapped to ^z for screen btw.  when i hit ^v PgUp, i get ^[[5~
14:36 particle the ^a remapping probably doesn't matter, but there it is.
14:38 payload joined #parrot
14:40 nopaste "particle" at 98.232.31.142 pasted "mls: my .screenrc" (161 lines) at http://nopaste.snit.ch/19912
14:40 mls Hmm, last idea: what do you get if you do ^A:echo $:kP:
14:40 dalek parrot: r44876 | darbelo++ | failed to fetch changeset:
14:40 dalek parrot: Merge rm_dynoplibs_make to trunk.
14:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44876/
14:40 dalek parrot: r44877 | dukeleto++ | trunk (10 files):
14:40 dalek parrot: [t][TT#1509] Prevent core dumps by preventing negative length array creation. Tests for FFA, FPA, FIA, FSA and FBA
14:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44877/
14:41 Coke arg. all those prop changes are back.
14:41 Coke someone who understands the new svn merging really needs to clean up our repository
14:41 particle mls: that shows [H in my status line
14:41 mls partile: argh, you have a bad line in you screenrc
14:41 darbelo Also, I broke the windows build.
14:41 mls particle: please remove the termcapinfo xterm 'kh=\E[1~:kI=\E[2~:kD=\E[3~​:kH=\E[4~:kP=\E[H:kN=\E[6~' line...
14:42 mls and reattach
14:42 Coke ah, linkflags.
14:42 Coke particle: can you suggest a fix on http://tt.ro.vutbr.cz/file/cmdout/225555.txt ?
14:43 dalek TT #1509 closed by dukeleto++: "new ['FixedStringArray'], -5" core dumps
14:44 Coke darbelo: guessing a pathing issue?
14:44 Coke (since that link step used to work when invoked from inside src/dynoplibs.
14:44 darbelo It could be.
14:45 Coke hurm. looks like libparrot.dll would be created in the top level dir...
14:45 darbelo It can't link with libparrot.
14:45 particle mls++ # that did it! (cargo culting)--
14:45 Coke (the link step for libparrot.dll succeeded earlier in the build...)
14:45 particle coke: looking...
14:47 darbelo s/LIBPARROT/LIBPARROT_SHARED/ ?
14:48 Coke OH.
14:48 Coke darbelo:
14:48 Coke the old LIBPARROT in the subfile was -LIBPARROT     = @libparrot_ldflags@
14:49 ttbot Parrot trunk/ r44877 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/225603.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
14:49 particle coke: you should be using libparrot.lib, not .dll
14:49 Coke the new one is a different config var.
14:49 Coke rather, the one in the core makefile is a different config var.
14:50 brooksbp joined #parrot
14:50 Coke swap LINKARGS's $(LIBPARROT) to @libparrot_ldflags@ and that should do it.
14:50 Coke "different things should be named differently"
14:51 Coke easy thing to miss, though.
14:51 darbelo Testing...
14:51 purl testing is the best thing ever ZOMG
14:53 payload joined #parrot
14:56 darbelo Coke: works for me, lets see if it pleases ttbot.
14:57 dalek parrot: r44878 | darbelo++ | branches/rm_dynoplibs_make:
14:57 dalek parrot: Branch has merged to trunk and is no longer needed at HEAD.
14:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44878/
14:57 dalek parrot: r44879 | darbelo++ | trunk/config/gen/makefiles/root.in:
14:57 dalek parrot: [Makefile] Fix pasto that had us using the wrong libparrot when linking dynoplibs.
14:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44879/
15:02 Coke ttbot?
15:02 purl ttbot is TapTinder build bot owned by mj41 and reporting http://tt.ro.vutbr.cz/buil​dstatus/pr-Parrot/rp-trunk build errors. or a master of timing.
15:02 Coke darbelo++: 44879 is green.
15:03 darbelo http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ shows as 'not yet'
15:03 Coke whoops. green is a terrible color for not yet.
15:03 darbelo '-' instead of 'ok'
15:03 Coke yup. definitely misread it, I did.
15:06 mj41 Coke: fixed http://tt.ro.vutbr.cz/buil​dstatus/pr-Parrot/rp-trunk
15:06 darbelo One 'ok' now...
15:11 Psyche^ joined #parrot
15:13 particle aha! thanks to getting my screen session fixed (mls++) i found out that Devel::Cover wasn't installing because it doesn't like being tested in parallel.  'export HARNESS_OPTIONS=; make test' works!
15:16 darbelo Both errors are now green. I'm calling this fixed.
15:16 Coke darbelo++
15:17 Coke darbelo: if you're bored, you can work on the dynpmc target now. =-)
15:17 Coke (I'll probably hit that this evening.)
15:17 darbelo All in all, faster than waiting for testers.
15:31 tewk joined #parrot
15:33 tewk chromatic++ dukeleto++ finishing up init_int
15:35 Andy joined #parrot
15:39 whiteknight I didn't think init_int would be such a huge hassle when I first proposed it
15:40 tewk It wasn't bad, I just ran out of time to rethink how new_p_*_i[c]  should be written.  chromatic did a fine job.
15:42 whiteknight has chromatic been around this morning?
15:47 Coke it's early yet for him.
15:58 whiteknight early? bah! I demand people work on MY schedule
16:03 NotFound init_int now works with new? Fine. What about root_new?
16:06 darbelo You are getting pretentious.
16:07 whiteknight root_new doesn't work?
16:07 darbelo If you keep it up you'll be demanding the vm stops segfaulting.
16:07 whiteknight segfaults are part of our tradition! our software heritage!
16:07 NotFound I'm looking, but asked anyway just to keep you en garde.
16:08 NotFound error:imcc:The opcode 'root_new_p_pc_ic' (root_new<3>) was not found. Check the type and number of the arguments..
16:09 tewk NotFound, it should be trivial to write root_new_p_p_i its a quick combo of new_p_p_i and root_new_p_p_p
16:10 tewk If no one bites at the karma, I'll do it.
16:10 tewk So what do people thing about deprecating Fixed*Array ability to set size post creation?
16:11 darbelo I'm +0.1 on it.
16:12 NotFound tewk: I think we must solve before the issue with size 0.
16:12 darbelo It *does* say fixed on the name, but I don't care enough to think through it's implications :)
16:13 NotFound Currently setting size 0 is a nop, you can resize later.
16:13 NotFound I hardly call that a fixed size.
16:14 tewk NotFound, thats bad behavior you fix a Fixed* at size 0 it should always be size 0
16:14 darbelo http://nopaste.snit.ch/19915 for the obvious fix ;)
16:15 darbelo A size 0 array is rather unuseful thing.
16:16 NotFound darbelo: I think is highly useful, it avoids the need of treating zero as an special case.
16:17 tewk I'm advocating removeing set_integer_native entirely from Fixed*
16:17 tewk You specify size only at construction time.
16:17 darbelo +0.5
16:17 purl 0.5
16:18 darbelo tewk: ask the list.
16:19 NotFound I think is a liitle early when init_int usage is still in experimental ops.
16:21 dukeleto 'ello
16:22 NotFound A quick winxed benchmark shows less than 1% speed improvement using init_int, but no wonder, the compiler and the tests use very few fixed size arrays.
16:23 shockwave joined #parrot
16:23 shockwave Hi all.
16:23 davidfetter hi
16:24 dukeleto NotFound: yeah, i think it is mostly easier to type and more intuitive.
16:26 tewk Parrot needs more types that dont resize and immutable types.  These are important for parallelism performance
16:27 NotFound An InmutableString PMC?
16:27 dukeleto tewk: i think that is the purpose of parrot-data-structures, i.e. to experiment with new types that hopefully make it back to core
16:27 shockwave I can't think of a good reason why I would want to create a NULL variable every time I want to pass null to a sub. Is there any reason it would be a bad idea for me to create the a NULL pmc once, store it in the HLL global space, and fetch that when I need to pass null to subs: set_hll_global 'nil', $P0; $P1 = get_hll_global 'nil'; 'foo'($P1); 'bar'($P1)
16:27 payload joined #parrot
16:28 NotFound shockwave: what is the advantage? I just see generating more code.
16:28 shockwave Actually, I would use the same null object everywhere, not just to pass to subs.
16:28 shockwave NotFound: The fact that I don't have to create a new 'NULL' object every time.
16:29 shockwave NotFound: And the way I'm describing, it's actually less code.
16:29 shockwave s/it's/is/
16:29 NotFound shockwave: I think 'null $P1' is short enough.
16:30 shockwave NotFound, is not about that. I'm not really going to be working with the generated code, except while developing the compiler itself. It's about what's more efficient.
16:30 NotFound shockwave: measure it.
16:31 shockwave NotFound: The answer should be clear. One is better than the next, for X reasons, and someone here ought to know.
16:31 shockwave NotFound: I'll post some code, for a better illustration.
16:32 shockwave NotFound, btw, I'm not trying to be agressive, if I sound like it :)
16:32 davidfetter so eggyknap++ did yeoman work yesterday on pl/parrot, but there's clearly something not quite right
16:32 NotFound shockwave: null $P1 just put a value on a register. Is hard to beat that both in shortness and in performance.
16:33 lucian joined #parrot
16:33 davidfetter http://github.com/leto/plparrot/tree/load_pir
16:33 dukeleto davidfetter: what is up?
16:34 davidfetter well, in particular, i'm not sure what embed_string.h was supposed to do, or what should be happening instead
16:36 nopaste "shockwave" at 76.119.137.239 pasted "Code generation for 'bar()' call." (58 lines) at http://nopaste.snit.ch/19916
16:37 shockwave NotFound, the code at ^^^ shows how I arrived at the conclusion.
16:37 shockwave In the HLL snippet, the important part is the call to bar()
16:38 shockwave In version 1, $P5000004 and $P000006 are NULL instances.
16:38 NotFound You are using new 'Null', instead of the null opcode.
16:38 shockwave In version 2, I realized I can reuse the same register for nil.
16:39 shockwave In version 3, I realized that I don't have to create Null everytime. So, I only fetch it once, and use it 2 (could be more) times.
16:40 shockwave NotFound, I can substitute the call to get_hll_global for the opcode easily. Thanks for the tip.
16:40 shockwave But, is there any possible issues with using the same null object everywhere I use null in the HLL?
16:41 shockwave Let me know if I'm not making sense anymore.
16:41 NotFound shockwave: PMCNULL is a singleton, new 'Null' gives you always the same object. The null opcode does the same, but fast.
16:43 shockwave NotFound: Cool. That means the answer is clear. In each sub, store null in a register once, using the null opcode, and use the same register everywhere.
16:43 shockwave NotFound: Thanks
16:44 NotFound Think of it as a NULL that throws exception when used instead of segfaulting.
16:44 shockwave NotFound: oh, one more question. doing $P1 = null; is the same as using the opcode you mentioned before, correct?
16:45 NotFound shockwave: yes, the = syntax is pir sugar.
16:45 shockwave NotFound: Cool. Thanks again.
16:47 kjeldahl joined #parrot
17:10 iblechbot joined #parrot
17:29 zpmorgan joined #parrot
17:41 cognominal joined #parrot
17:55 dalek parrot: r44880 | tewk++ | trunk/src/ops/experimental.ops:
17:56 dalek parrot: root_new_p_p_i
17:56 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44880/
17:59 tewk NotFound, tag you're it, you want to add tests?
18:01 whiteknight fperrad: ping
18:01 NotFound tewk: I'll test usage in winxed first.
18:02 tewk NotFound, I didn't add init_int for speed, I added it for safety in parallel programs, but chromatic thinks it could improve the performance of CallingContext.
18:03 whiteknight what does the root_new opcode do?
18:03 tewk If fixed arrays are still used in PCC it could help there too, but the performance difference may be small.
18:03 NotFound tewk: shortening some code is good, also
18:03 * tewk needs to commit his changes to the thread subsystem some time.
18:04 NotFound whiteknight: always start keying from root, regrdless o current HLL
18:04 whiteknight tewk: make a branch. I would love to see the changes
18:05 whiteknight purl msg fperrad the setup.nqp script for kakapo doesn't do anything on "install". Any pointers about why not? http://www.gitorious.com/kakapo​/kakapo/blobs/master/setup.nqp
18:05 purl Message for fperrad stored.
18:06 tewk whiteknight, its minimal right now. but the idea is we need different PMCs that represent lightweight threads(futures) that share the same GC and heavyweight threads (places) that are completely separate interpreters that communicate only through message passing.
18:06 whiteknight ah, okay. Like the difference between "threads" and "fibres" on windows
18:07 whiteknight fibers
18:07 tewk thats differnet, lightweight threads is a bad name.
18:07 tewk my futures are kernel threads scheduled by the OS. so you get true parallelism.
18:08 whiteknight gotcha
18:08 tewk We also need to add green threads(user threads) at some point.
18:08 whiteknight what would be the difference between green threads and places in this model?
18:10 tewk green threads are not scheduled by the os, they would be scheduled by parrots concurrency scheduler
18:11 tewk Our embedding interface needs extending here is a prototype,  comments? http://github.com/leto/plparrot/commit/a​c6f4e97a0ad3c80a30db869b2f5fc01e2e15b23
18:12 whiteknight tewk: all sounds very cool. I would love to see a design doc or even a branch sometime with the ideas
18:15 NotFound tewk: PARROT_EXPORT should be PARROT_API
18:19 tewk NotFound, embed.h doesn't use PARROT_API, there was even a ticket to remove all PARROT_API references.  From the list archives it sounds like PARROT_API was removed until an embedding api stablizes at which point we might bring it back.
18:19 tewk I wouldn't say we have a stable embeddign api yet.
18:20 NotFound tewk: yes, but that looks like an stabilizing step.
18:21 dalek plparrot: 38c47d2 | (David Fetter)++ | HACKING.parrot:
18:21 dalek plparrot: Started on parrot hackery.
18:21 dalek plparrot: review: http://github.com/leto/plparrot/commit/3​8c47d2c3824b026569eb29d47b7e67eb02dd2b2
18:21 dalek plparrot: 0970b81 | (David Fetter)++ | HACKING.parrot:
18:21 dalek plparrot: Fixed up wrt. -j arguments.
18:21 dalek plparrot: review: http://github.com/leto/plparrot/commit/0​970b8148d6c349bab22fdd6dd64bea38389824f
18:21 NotFound tewk: Class '[ 'parrot' ; 'FixedIntegerArray' ]' not found
18:23 fperrad whiteknight, the setup.nqp of Kakapo was writen by Austin. I just fix the distutils library when called from NQP.
18:24 tewk NotFound, does just plain root_new work?
18:24 NotFound tewk: yes
18:24 dalek tracwiki: v25 | tewk++ | GitObjections
18:24 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Git​Objections?version=25&amp;action=diff
18:25 whiteknight fperrad: it calls setup()
18:27 whiteknight fperrad: to help with debugging, is there some kind of way to turn on diagnostic messages in the distutils library?
18:27 fperrad whiteknight yes, setup() is the entry point of distutils
18:27 whiteknight because it fails silently, and I'm trying to figure out why
18:28 dalek parrot: r44881 | mikehh++ | trunk/src/pmc/fixedpmcarray.pmc:
18:28 dalek parrot: fix codetest failure - there should be one space or a newline after a comma
18:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44881/
18:28 tewk NotFound, what about root_new [ 'FixedIntegerArray' ], 10
18:29 NotFound tewk: that is not root at all.
18:29 tewk yeah, but I bet it works because of how I wrote it.
18:32 NotFound Shit, we are still using a global class hash?
18:34 fperrad whiteknight, Kakapo produces only pbc files. There are installed only if an 'inst_lib' is set
18:35 whiteknight fperrad: okay, so if I add an inst_lib with an array of .pbc file names, they will get installed?
18:44 dalek parrot: r44882 | mikehh++ | trunk/src/ops/experimental.ops:
18:44 dalek parrot: fix codetest failure - no documentation for root_new(out PMC, in PMC, in INT) - boilerplate only
18:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44882/
18:46 chromatic joined #parrot
18:47 whiteknight fperrad++ # inst_lib works! Thanks!
18:49 whiteknight hello chromatic
18:51 chromatic hello
18:51 whiteknight get my emails last night? I think that fix_hll_mmd branch is doable along those lines
18:52 chromatic I saw it, but I haven't had a chance to review the code yet.
18:53 dalek kakapo: fce690d | whiteknight++ | setup.nqp:
18:53 dalek kakapo: update setup.nqp to properly install files. Thanks to fperrad++ for guidance.
18:53 whiteknight okay, that's fine. As I mentioned, the patch doesn't even build PGE. We do have some questions about order of resolution to worry about
18:53 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/fce690dd55ecb7b2b4b01b25f225bd026f44950a
18:59 mikehh make corevm/make coretest FAIL - t/pmc/nci.t - No tests run - remaining tests PASS - (PASS in make world/make test)
18:59 mikehh all other tests PASS (pre/post-config, smoke (#32616), fulltest) at r44882 - Ubuntu 9.10 amd64 (gcc with --optimize)
19:04 joeri joined #parrot
19:05 whiteknight purl msg Austin I pushed a commit to get kakapo installing properly. I want to use it to implement the test suite and harness of the parrot-linear-algebra project soon. Could I pick your brain about how to do that?
19:05 purl Message for austin stored.
19:05 Austin whiteknight: ?
19:05 Austin purl, messages
19:05 whiteknight ah, I didn't see you standing there
19:05 Austin :)
19:05 Austin whiteknight++ # commits = karma
19:06 whiteknight I already got karma for it. Don't need to double-dip
19:06 Austin Did you? I didn't know kakapo was on the karma list.
19:06 Austin Well, then karma for being an early adopter..
19:06 Austin What's the question about pla?
19:06 whiteknight backscroll a few lines
19:06 whiteknight I want to implement the test harness and test suite there using kakapo's unit tests
19:06 Austin Okay.
19:07 whiteknight so I'm just wondering how to go about doing it
19:07 Austin Grab the top N lines from one of the files in the t/ directory.
19:07 Austin That's what I do.
19:07 whiteknight Kakapo's test tools arent TAP-based, correct?
19:07 Austin Kakapo emits tap.
19:07 whiteknight oh, it does? So I can use the same harness?
19:07 Austin But it does it differently.
19:08 Austin Yeah.
19:08 whiteknight Austin: Okay, I want the INIT blocks, the MAIN sub, and the set_up() sub in my copypasta?
19:09 Austin The kakapo UnitTest library treats each test case as a single test. So if you have three assert_...() statements, they all get rendered into a single ok 1 - Verify ... TAP entry
19:09 whiteknight okay, nice
19:10 whiteknight I like this because it's much more similar to NUnit and the unit tests in visual studio
19:10 Austin Yes. You want to load the lib, pick your own class name :), then do the boilerplate MAIN (which just figures out what class it's a part of). The set_up is optional.
19:10 whiteknight ah, okay
19:10 Austin Also, you'll want to use the UnitTest::Assertions module
19:11 Austin Do you have the latest master?
19:11 whiteknight yeah
19:11 Austin Can we look at t/Program.nqp, then...
19:11 whiteknight sure
19:12 Austin At line 16 there's nothing. That's where you would declare something (I usually call it $!sut) that you were going to initialize in set_up
19:12 Austin $!sut := My::Class.new
19:12 Austin Line 14 has the test class name. Pick your own.
19:13 Austin Line 28 is an example of how to bypass the TAP and view the output directly (comment out the suite.run and just invoke the test method). This kind of sucks, and I'm working on a cli way..
19:14 Austin Everything after line 30 is testcase specific. I usually start with the same test_new(), just to make sure things work.
19:17 whiteknight Austin: Okay, so how does it know which methods to run as tests?
19:17 Austin The ones that start with test_
19:18 whiteknight ah, that's what I was missing
19:19 Austin Of, if you prefer, you can start like testFoo
19:19 Austin or test99
19:19 whiteknight gotcha, so long as the prefix is "test"
19:19 Austin Basically test as a separate word at the front of the name. (So *not* testing)
19:19 whiteknight ok
19:19 whiteknight ls
19:20 Austin m/ test [ :digit: :upper: _ ]
19:20 Austin /
19:20 whiteknight okay
19:20 whiteknight okay, my first test file uses Kakapo, runs, and passes
19:21 whiteknight so that's a good first step
19:21 Austin nopaste ?
19:21 purl it has been said that nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels)  or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others) or http://gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or https://trac.parrot.org/parrot/br​owser/trunk/tools/dev/nopaste.pl
19:21 whiteknight give me a second, I'll nopaste it
19:22 Austin I'm gonna put it up as a template.
19:22 nopaste "whiteknight" at 173.12.37.77 pasted "first kakapo-based test in pla, for Austin++" (29 lines) at http://nopaste.snit.ch/19917
19:23 whiteknight it's a stupid-simple test
19:23 Austin Always start with a pass.
19:23 whiteknight but, it's necessary to make sure we can load the dynpmc and fail early or all the other tests fail with cryptic error messages
19:25 Austin One thing you should be wary of is that the test name and the assertion have different purposes. The test name, or the string you pass to verify_that(), is used as the ok/not ok comment. The assertion message shows up as a diagnostic.
19:26 whiteknight okay
19:26 Austin So your assertion messages should be diagnostic (fix-whats-wrong) rather than positive (declare-what's-right)
19:26 whiteknight gotcha
19:26 Austin "expected two entries in array"
19:27 whiteknight these matrix types have methods that iterate a callback over all elements. I'm very much looking forward to using mocks for that
19:27 Austin Heh. Me too.
19:28 Austin That should be a good workout for Cuckoo
19:28 whiteknight I'm definitely going to push some bounds
19:28 Austin :)
19:29 Austin wtf? Your test just passed
19:29 whiteknight ...wut?
19:29 whiteknight isn't it supposed to?
19:30 Austin Not on my box.
19:30 Austin Unless PLA is part of core?
19:30 whiteknight definitely not part of core
19:30 Austin Ahh.
19:30 whiteknight okay, we's gots some debuggering to do
19:30 Austin loadlib returns undef, not null.
19:30 whiteknight oh, damnit
19:30 whiteknight that's stupid
19:30 Austin pir::trace++
19:31 Austin And of course, why would we document the return codes?
19:31 dalek rakudo: d07f647 | (Martin Berends)++ | src/Perl6/Module/Locator.pm:
19:31 dalek rakudo: [Perl6/Module/Locator.pm] insert a / between path and filename if the name occurs after a :: separator
19:31 whiteknight so I would do an assert_not_instance_of($pla, "Undef")
19:31 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​07f647bd2c3d163a7227470dbcb9395d3f8b91c
19:31 Austin Yeah, dynlibs.c explicitly creates the undef.
19:32 whiteknight as they say on TEH INTERNETZ: FAIL
19:33 Austin For now, not_isa or not_instance_of is right.
19:33 Austin Or you could add "assert_defined"
19:33 Austin :)
19:33 whiteknight true
19:33 whiteknight Austin: in NQP, how do I include another NQP file?
19:33 whiteknight use?
19:33 Austin You don't.
19:34 whiteknight .....damnit
19:34 Austin My use() assumes the file is loaded, and imports any symbols the other module exported.
19:34 Austin But you can load the bytecode.
19:34 whiteknight fuggit. I'll just copy+paste the code
19:35 Austin The other choice is to compreg to get the nqp compiler, and then ...
19:35 Austin What are you trying to do?
19:35 whiteknight ...and kakapo is going to get a loader class to do this when?
19:35 Austin After I extract the use cases from my first user...
19:35 Austin ... and then collect some round tuits.
19:36 whiteknight All my tests are going to have an identical header: load kakapo, setup the UnitTest, and load the linalg library
19:36 whiteknight I would like to include in a file that does this automatically, in like a :load Sub
19:36 whiteknight and then every test has only one or two lines of boilerplate instead of two dozen
19:36 Austin Okay.
19:37 Austin You can't do #include in nqp.
19:37 whiteknight yeah, no language is perfect
19:37 whiteknight :)
19:37 Austin So you could hide the first init block.
19:37 whiteknight I saw a hilarious example one time of a "program" that wrote out the lyrics of 99 Bottles of Beer using only C preprocessor directives
19:38 Austin Yeah, I've seen that. Proving that C, or at least the C preprocessor, is a purely functional language..
19:38 darbelo http://99-bottles-of-beer.net/
19:38 whiteknight that's the on
19:39 whiteknight one
19:39 darbelo s/one/hundeds/
19:39 Austin That is sick.
19:39 darbelo Austin: check out th one in Malbolge.
19:39 darbelo *thats* sick.
19:40 Austin I wasn't complaining about the C, but about the site.
19:41 PerlJam heh, there's an old parrot version I put up in 2005
19:41 PerlJam you guys should submit alternate parrot versions
19:42 Austin Mmm....socialists... http://failblog.org/2010/03/10/grammar-fail/
19:47 whiteknight Austin: what's the difference between assert_same and assert_equals?
19:48 whiteknight the former a reference compare?
19:48 Austin Yes.
19:48 Austin opcode same vs iseq
19:49 whiteknight I didn't know we had a "same" opcode
19:49 Austin Of course we do.
19:49 whiteknight of course, we have ALL the other possible opcodes
19:50 * Austin sings "One of these things isn't like the others, one of these things just doesn't belong..."
19:50 whiteknight Austin: I don't know if you were here for it, but not long ago we had an "hcf" opcode
19:50 Austin Hell, we had a factorial opcode. How could we not have a "same" opcode...
19:50 whiteknight had?
19:50 purl had is like HAND, but BOFHier.
19:50 Austin Isn't that dead?
19:50 whiteknight I think we still have "fact"
19:50 whiteknight hcf is gone, thankfully
19:50 whiteknight I'll be damned if there was a good way to test it
19:51 whiteknight I wonder if NQP supports multidimensional array indexing
19:51 Austin Well, Kakapo does.
19:51 Austin my $key := Key.new(...)
19:51 Austin say( $array{$key} )
19:52 whiteknight that's hardly the same
19:52 Austin I do what I can..
19:52 whiteknight and you've done quite well heretofore
19:56 whiteknight you like that? I feel threatened by your vocabulary so I'm whipping out the big guns
19:57 whiteknight Is there a way to specify that tests should run in a partcular order?
20:00 bacek joined #parrot
20:00 Austin whiteknight: No, the order is deliberately random. (Although not random enough.)
20:00 purl okay, Austin.
20:04 whiteknight what do I need to do to make my type CharMatrix2D instantiable using the syntax "my foo := CharMatrix2D.new;"?
20:04 whiteknight using("CharMatrix2D")?
20:06 Austin What's that type? a pmc?
20:07 whiteknight yeah
20:08 Austin Hmm...
20:08 Austin You could use Parrot::new( 'CharMatrix2D' )
20:09 Austin Or P6metaclass.register_pmc_type( 'CharMatrix2D' )
20:09 Austin (which would then allow CharMatrix2D.new() calls
20:10 whiteknight ah, okay.
20:16 Austin whiteknight: http://code.google.com/p/k​akapo-parrot/wiki/UnitTest   You're more famous than you already were.
20:16 whiteknight w00t
20:25 whiteknight awesome page
20:27 Austin You going to do assert_(not_)defined for me?
20:27 whiteknight yeah, I can add that
20:27 whiteknight I'm picking my way through translating a test file right now
20:28 Austin okay, cool.
20:28 Austin What kind of test file?
20:28 nopaste "whiteknight" at 173.12.37.77 pasted "test problem for Austin++" (23 lines) at http://nopaste.snit.ch/19919
20:29 whiteknight I'm translating the whole test suite of pla to use kakapo-based tests
20:29 dukeleto whiteknight: wow. nice
20:29 whiteknight right now it uses "NQP", but every single test is Q:PIR{}
20:29 Austin Heh. Needs a semicolon at the end
20:29 Austin Q:PIR { };
20:30 whiteknight I'm running into problems that NQP never calls get_string_keyed_int like I am trying to test, since all variables are PMCs
20:30 whiteknight so $c[0] = "ABCD" calls VTABLE_set_pmc_keyed_int
20:30 whiteknight ...which is why I need to use Q:PIR for this stupid test to make sure I exercise the correct VTABLE
20:31 whiteknight Austin++ # semicolon works
20:31 Austin I think you can do that with pir::set__SPI
20:31 whiteknight yeah, maybe
20:31 purl it has been said that yeah, maybe is what i need for optional positionals
20:31 whiteknight shuddap purl
20:31 Austin But maybe not if it's a key.
20:32 whiteknight that's the problem. For matrices I really need 2-d keys, and I need to use a shitload of them
20:32 whiteknight so bulky "new Key" syntax isn't going to be any good
20:33 Austin Create a sub:
20:33 Austin Or better yet a method.
20:34 whiteknight like I said, all the tests are already in Q:PIR form. so it's almost zero effort to keep them that way if it's a hassle
20:34 Austin Okay.
20:34 whiteknight Austin: how to mark a test TODO?
20:35 Austin Heh.
20:35 Austin I dunno.
20:36 whiteknight well, in a pinch verify_that("# TODO"); works
20:36 Austin Should the whole test be todo, or just one assertion?
20:36 whiteknight the whole test
20:36 purl i think the whole test is sql only
20:36 Austin Dude! That's clever
20:36 Austin whiteknight++
20:36 whiteknight I imagine making just one assertion todo is not easy
20:37 whiteknight I'm also pleased to say that in Q:PIR-land, assert_equal works with Parrot native strings
20:38 shockwave Is it fair to say that 'self' can be used anywhere a PMC register can appear?
20:38 Austin Yes.
20:38 shockwave Austin, that's for me, right?
20:38 Austin shockwave: yes. self is an automatic .local pmc
20:38 whiteknight shockwave: funny story. "self" is really just a ".local pmc self"
20:38 lichtkind joined #parrot
20:38 whiteknight so it is a pmc
20:38 shockwave Cool, thanks both.
20:38 Austin shockwave: note: that's .local, not .lex. If you want a lexical variable self, you have to DIY
20:39 lichtkind any hints what i could add to http://www.perlfoundation.​org/perl6/index.cgi?parrot ?
20:39 lichtkind thanks
20:39 shockwave Austin, I haven't had to use .lex yet. But I'll keep that in mind for the future.
20:39 Austin Whiteknight:  At the assertion level, I could do:    assert_equal( $a, $b, 'a and b are not equal', :todo('Equality is overrated') );
20:39 whiteknight Austin: yeah, I suppose that's cool too
20:40 whiteknight would add a lot of checking logic to all of the assert_* functions though
20:40 Austin But I'm going with your whole-test idea.
20:40 whiteknight for now it's the most important for my needs
20:43 bacek ~~
20:45 dalek parrot-linear-algebra: 31b7cbb | Whiteknight++ | t/sanity.t:
20:45 dalek parrot-linear-algebra: convert t/sanity.t to use Kakapo's unit test framework.
20:45 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/31b7cbb7a3241008d47d10fedfa9c0ed16d75f07
20:45 purl I don't know how to convert t/sanity.t to use Kakapo's unit test framework..
20:45 dalek parrot-linear-algebra: 5516941 | Whiteknight++ | src/pmc/charmatrix2d.pmc:
20:45 dalek parrot-linear-algebra: some changes to charmatrix2d. set_string_keyed* and set_pmc_keyed* methods now act like string-setters, while number/integer variants act element-wise
20:45 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/5516941e0ccff3a1f99e45dd703e29c25de39fd4
20:45 dalek parrot-linear-algebra: 5e99208 | Whiteknight++ | t/pmc/charmatrix2d.t:
20:45 dalek parrot-linear-algebra: migrate the charmatrix2d tests to use kakapo.
20:45 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/5e99208076b38aa6bee89d588c4cc46c9dbbee1c
20:45 dalek parrot-linear-algebra: 2bb1210 | Whiteknight++ | t/sanity.t:
20:45 dalek parrot-linear-algebra: fix sanity.t to actually test what I want. loadlib returns Undef, not Null, on failure. Austin++ for the catch
20:45 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/2bb12103d86fea2a26186fc8e3742c9467add012
20:45 Austin Damn, purl. I didn't know you were working on that.
20:45 particle somebody please teach purl to ignore dalek!
20:45 Austin Is that what that is?
20:46 dukeleto particle++
20:46 Austin I occasionally see spontaneous messages from purl...
20:46 lucian particle: no, teach it to understand dalek instead
20:46 Austin I thought she was getting smarter.
20:46 lucian s/it/her/
20:46 dukeleto Austin: purl reacts to commit messges. Someone thought it was a good idea, evidently
20:46 lucian i'd love to see a conversation between purl and dalek
20:46 Austin lucian: Stick around. You will.
20:47 lucian i got my phenny bot to talk to a sister once, but i did it on purpose
20:48 darbelo dukeleto: If purl doesn't react to dalek's messages whe can't keep track of commit karma.
20:48 dukeleto karma dalek
20:48 purl dalek has karma of 9
20:48 bacek msg cotto More grammar bugs: { goto OFFSET(argc + 2); }
20:48 purl Message for cotto stored.
20:48 cotto_work hi
20:48 purl hello, cotto_work.
20:48 bacek aha!
20:49 dukeleto darbelo: i am sure it is possible to make it count karma, but not talk to dalek.
20:49 dukeleto purl, you have a big mouth
20:49 purl dukeleto: i'm not following you...
20:49 bacek cotto_work, also JUMP handling in C emitting
20:49 dukeleto purl, big mouth is YEAH I HAVE ONE
20:49 purl OK, dukeleto.
20:49 darbelo dukeleto: she could not *reply* to dalek, but she should definitely listen to him.
20:49 darbelo projectname: commit_id | author++ | (touched flies):
20:50 dukeleto darbelo: agreed
20:52 cotto_work bacek, what do you mean about jump handling?
20:53 lucian karma lucian
20:53 purl lucian has karma of 1
20:54 whiteknight Austin: doesn't look like tests in t/UnitTest/*.nqp are run as part of the normal test suite
20:54 whiteknight ls
20:54 dukeleto rm -rf /
20:54 purl rm -rf / is the oldest warhorse in the book
20:55 Austin Yeah, I turned them off. I think the tests were old.
20:55 whiteknight ah, nevermind. They get moved to t/bootstrap?
20:55 Austin The bootstrap tests are minimal tests, to get the unittest code working.
20:55 Austin The "good" tests should be in t/UnitTest
20:55 dalek parrot: r44883 | bacek++ | branches/ops_pct/compilers/ops​c/src/Ops/Compiler/Actions.pm:
20:55 dalek parrot: Add ';' after implicit goto_next
20:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44883/
20:55 dalek parrot: r44884 | bacek++ | branches/ops_pct/compilers/ops​c/src/Ops/Compiler/Actions.pm:
20:55 dalek parrot: Fix generating PAST
20:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44884/
20:56 whiteknight Austin: assert_defined and assert_not_defined committed and pushed. Enjoy
20:56 Austin You rock.
20:56 purl Dis is the drum
20:57 nopaste "bacek" at 114.72.185.13 pasted "JUMP handling b0rked for cotto++" (9 lines) at http://nopaste.snit.ch/19920
20:58 bacek $dayjob time
20:58 bacek see you!
20:59 theory joined #parrot
21:00 dalek kakapo: e350825 | whiteknight++ |  (2 files):
21:00 dalek kakapo: add assert_defined and assert_not_defined, plus tests (though I don't think these particular test files run as part of the normal suite).
21:00 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/e350825d5f1e011f292f79332397ba097f7bd882
21:00 whiteknight ...and with that, I'm OUT
21:31 Coke rakudo: "what?".say
21:32 Austin No bot for you!
21:32 cotto_work coke++
21:34 * Coke cries.
21:45 AndyA joined #parrot
21:47 Coke msg chromatic - the biggest single problem I have with rakudo right now is build time.
21:47 purl Message for chromatic stored.
21:48 Coke msg chromatic (if you're looking for pain points)
21:48 purl Message for chromatic stored.
21:52 PerlJam Coke: you're fine with the memory consumption though?
21:53 Austin "biggest single problem"  =/=> "only problem"
21:55 chromatic I think memory consumption hurts build time.
21:55 Coke PerlJam: only on my osx box. everywhere else it dies.
21:58 pjcj joined #parrot
21:59 shockwave I just read that namespaces are PMC objects. So am I right in thinking that to emulate static class variables in a HLL, i could get the namespace object that represents the class and do: getattribute nsObj, 'attName' ; ?
22:02 cotto_work chromatic, do you have a little time to give input on an expanded Lorito roadmap?
22:02 cotto_work http://gist.github.com/329720
22:04 chromatic Will do in a bit, cotto_work.
22:04 cotto_work thanks
22:04 cotto_work Feel free to edit directly
22:06 snarkyboojum joined #parrot
22:09 NotFound shockwave: nsObj['attName'], I think.
22:10 NotFound shockwave: or get_global, if used inside the namespace, and you don't need to get the ns object.
22:11 shockwave NotFound: Nice. I was mostly concerned if there was a reason *not* to store attributes in ns objects.
22:11 shockwave NotFound, thanks.
22:13 NotFound shockwave: you'll need to use addattribute first, and I think that in order to do that you must define your own namespace class.
22:13 Austin pmichaud: Is there a way in nqp to tell a lexical block that it should have a 'self' lexical?
22:14 shockwave NotFound, define my own namespace class as in within C?
22:15 Austin shockwave: You could just put it in a namespace global
22:15 Austin My::Class:variable := 1
22:15 Austin My::Class::variable := 1
22:15 Austin The NameSpace pmc defines add_var() method for this
22:16 shockwave Austin, That's actual PIR syntax?
22:16 Austin nqp
22:16 shockwave Austin, I'm not using nqp.
22:16 Austin Pir would be sth like $P0 = get_hll_global [namespace;path], 'variable'
22:16 cotto_work github++
22:16 Austin And set_hll_global [], var, $P0
22:17 shockwave Austin or NotFound: So in order to use the addattribute method, I would have to write some C?
22:18 shockwave The reason I would preffer the addattribute method is to have my own a bit more consistent.
22:18 shockwave my own code*
22:18 Austin Give it a try.
22:18 NotFound shockwave: a pir class derived from Namespace will do the job, I think.
22:19 shockwave NotFound: I'm sorry, I don't know what you mean by 'derived from Namespace'.
22:19 NotFound But I think that usage is not tested, don't know if it work well.
22:19 NotFound shockwave: inheriting from it.
22:20 shockwave NotFound: Do you mean a) derrived from the 'Namespace' pmc, if there is one, or b) write some C class that derrives the internal Namespace object?
22:20 NotFound I tend to use C++ jargon, base and derived.
22:20 shockwave NotFound, I'm all C++ too.
22:21 shockwave NotFound, I'm not sure if we're talking about C or PIR, though.
22:21 Austin You'll have to extend the namespace, since it doesn't support set_attr
22:21 NotFound shockwave: no, a pir class that inherits from the Namespace PMC.
22:21 shockwave NotFound, ok, gotcha.
22:21 shockwave Austin, thanks.
22:21 nopaste "Austin" at 68.39.12.202 pasted "Trying to attribute-ify namespaces" (4 lines) at http://nopaste.snit.ch/19922
22:22 NotFound But you must have the namespace in pir in order to write methods, so there is a chicken and egg problem and I don't know if there is a solution.
22:23 shockwave NotFound: I'll mess around with it. I'll post something whether I was successful or not.
22:25 Hunger joined #parrot
22:28 dalek rakudo: eac348a | (Solomon Foster)++ | src/core/operators.pm:
22:28 dalek rakudo: CHEAT: Directly implement Whatever versions of the most common &infix:<+> and &infix:<-> operations, so that we have them available even though the full Whatever closure code is not done.
22:28 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​ac348a12e75694966a6d45d588874346b8ae629
22:28 dalek rakudo: 2cdf434 | (Solomon Foster)++ | t/spectest.data:
22:29 dalek rakudo: Turn on series.t.
22:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​cdf434cc7035c5ea6e7a8d67e768267ca361360
22:29 dalek rakudo: 6e6096d | (Solomon Foster)++ | src/Perl6/Module/Locator.pm:
22:29 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
22:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​e6096d8cf837b41e56396f56797ac5acc05ac11
22:33 dalek parrot: r44885 | jonathan++ | trunk/src/pmc/os.pmc:
22:33 dalek parrot: [os.pmc] Correct an oversight in the Win32 implementation of readdir - should handle being passed directory name that already has a trailing slash.
22:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44885/
22:36 PacoLinux joined #parrot
22:40 Austin If this works, I'll have to give Pmichaud a big smooch.
22:42 Austin Whew! Thank God, a bug.
22:43 cotto_work I'm sure pmichaud will be relieved to see that too.
22:44 Austin ayup
22:46 cognominal joined #parrot
23:13 cognominal joined #parrot
23:20 dalek rakudo: 73cc9f2 | jonathan++ | src/Perl6/ (2 files):
23:20 dalek rakudo: Implement need and import, and make use just boil down to calls to the two of them.
23:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​3cc9f251cd82b7f19893d3a1970763d9ea6f2d0
23:20 dalek rakudo: 5faf418 | jonathan++ | build/PARROT_REVISION:
23:20 dalek rakudo: Bump PARROT_REVISION to get Win32 readdir fix.
23:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​faf41895617f94d61485e0ca22b69faf5e6d737
23:20 dalek rakudo: dab10dd | jonathan++ | src/Perl6/Module/Locator.pm:
23:20 dalek rakudo: Fix for Win32 - stat with a trailing / on Win32 doesn't work out so well.
23:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​ab10dd9362aa08b1de90d0a480b0f5235d40735
23:20 dalek rakudo: 69ce6d7 | jonathan++ | src/Perl6/Module/Loader.pm:
23:20 dalek rakudo: If there's no PIR pre-compiled file to hand, use the .pm instead. Still need to do checks for which is newer, and generating the PIR file if we can haz write access. Also, awesomize module not found error to show any version and authority if they are passed.
23:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​9ce6d76a0a83bab2ed215a558785461ab815c81
23:23 jan joined #parrot
23:24 davidfetter joined #parrot
23:28 davidfetter joined #parrot
23:35 cotto_work seen whiteknight
23:35 purl whiteknight was last seen on #parrot 2 hours, 34 minutes and 6 seconds ago, saying: ...and with that, I'm OUT
23:36 lucian seen allison
23:36 purl allison was last seen on #parrot 1 days, 1 hours, 51 minutes and 5 seconds ago, saying: Coke: also true  [Mar 10 21:45:08 2010]
23:37 chromatic Nobody in here but us working peeps.
23:39 cotto_work seen cotto
23:39 purl cotto was last seen on #parrot 13 hours, 57 minutes and 41 seconds ago, saying: night

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

Parrot | source cross referenced