Camelia, the Perl 6 bug

IRC log for #parrot, 2008-12-29

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 tewk Coke: I'm cleaning up the class registry an your t/pmc/key.t TclProc test is coming back to haunt me.
00:01 Coke good luck with that. =-)
00:01 tewk This time it has to do with all the Namespaces,
00:02 Coke glad I got that test in. one less thing that is likely to bork tcl. =-)
00:02 Coke compiling src/ops/core_ops_cgp.c is WICKED slow on this ole *bsd box.
00:03 tewk Why the '_Tcl' namespace and then 'tcl' namespace.
00:04 tewk I just spent hours trying to figure out why TclProc lookup wouldn't work.
00:09 uniejo joined #parrot
00:10 AndyA joined #parrot
00:10 Infinoid 600 functions marked with headerizer asserts, 1200 more to go
00:10 * Infinoid finds a place where string_make_direct() is called with a NULL charset
00:23 Coke tewk: 'tcl' is the parrot namespace that corresponds to the top level user-visible tcl namespace.
00:24 Coke '_tcl' is the one that corresponds to the top level of a ``private'' namespace for compiler/interpreter builtins that aren't user-visible.
00:24 tewk what is _Tcl a typeo ?
00:24 Coke no. HLLs are case insensitive.
00:24 tewk that makes sense now,
00:25 Coke or, rather, if I do .HLL '_Tcl', that corresponds to an hll namespace of '_tcl'
00:25 tewk right
00:27 * Coke tries to build parrot on 3 different machines.
00:27 nopaste "tewk" at 209.193.100.96 pasted "'TclProc' test change" (15 lines) at http://nopaste.snit.ch/15107
00:29 tewk Coke: does that look reasonable, thats how things will work after the class registry fix.
00:31 Coke I'm instantiating a namespace?
00:31 Coke what if I try to instantiate a namespace that isn't actually a class?
00:33 tewk TclProc is a class no?
00:33 Coke (in general, I don't particularly care about the syntax, btw.
00:33 tewk ok
00:33 Coke Yes; what would happen if I did 'TclProcFoo' in that example, where i hadn't done a newclass?
00:34 tewk no your getting the TclProc from the namespace it was created in.
00:34 tewk yeah you would get a namespace,
00:34 Coke I assume that's so parrot and the various HLLs will be able to have their own similarly named classes this way
00:34 Coke ?
00:34 tewk yes,
00:35 tewk get_class is probably the better method, but that doesn't quite work yet.
00:35 Coke k. I'll probably wrap it up in a .macro anyway. (my defense against deprecation)
00:37 nopaste "tewk" at 209.193.99.80 pasted "'TclProc' test change attempt 2" (14 lines) at http://nopaste.snit.ch/15108
00:37 tewk Sorry it will look like this.
00:37 * Coke wonders how much he'll fubar his *bsd sytem if he runs the system 'cpan'.
00:38 Coke tewk: that looks slightly saner.
00:39 Coke hurm. I wonder if it would be useful to make a tcltest option that caused it to generate TAP instead of the normal output.
00:39 Coke (then I could use smolder.)
00:47 dalek r34528 | pmichaud++ | branches/rvar/languages/perl6/src (2 files):
00:47 dalek : [rakudo]:  Add 'readonly' property to parameters.
00:47 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34528
00:52 Coke removing experimental ops doesn't require updates to PBC_COMPAT, neh?
00:52 uniejo left #parrot
00:58 Coke is trac.parrot.org non responsive for anyone else?
01:00 Tene yes
01:01 dalek r34529 | coke++ | trunk (2 files):
01:01 dalek : Remove the experimental 'slice' ops.
01:01 dalek : (don't think we need to touch PBC_COMPAT for experimental ops.)
01:01 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34529
01:02 Coke I'll email the OSU admins.
01:02 pmichaud ...so trac.parrot.org is finally slower than rt?  ;-)
01:06 Coke wow. it's almost taking as long to run cpan> i/TAP::Archive::harness/ on this bsd box as it did to build parrot.
01:07 * Coke wonders if osu has something like log.perl.org
01:14 pedr joined #parrot
01:16 pedr left #parrot
01:16 dalek r34530 | coke++ | trunk/tools/dev:
01:16 dalek : note what generates this generated file.
01:16 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34530
01:18 dalek r34531 | coke++ | trunk (2 files):
01:18 dalek : Avoid deprecated open modes (This allows the build to complete if they are removed.)
01:18 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34531
01:20 dalek r34532 | pmichaud++ | branches/rvar/languages/perl6/src (3 files):
01:20 dalek : [rakudo]:  Add is rw, is copy traits to parameters.
01:20 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34532
01:26 pedr1 joined #parrot
01:26 pedr1 left #parrot
01:29 pedr2 joined #parrot
01:29 pedr2 left #parrot
01:32 leto joined #parrot
01:33 dalek r34533 | pmichaud++ | branches/rvar/languages/perl6/src/parser:
01:33 dalek : [rakudo]:  Fix case where params have no explicit traits.
01:33 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34533
01:41 leto joined #parrot
01:42 Coke hurm. $P1 = open 'foo', 'a' doesn't seem to work.
01:47 Coke is it intended that it has to be 'wa' ?
01:53 dalek r34534 | coke++ | trunk/t (10 files):
01:53 dalek : Remove all deprecated open types from 'make test'
01:53 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34534
02:01 dalek r34535 | coke++ | trunk (2 files):
02:01 dalek : Remove [DEPRECATED] open file modes.
02:01 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34535
02:12 Coke msg allison Sent a mail to list about open mode 'a' vs. open mode 'wa'.
02:12 purl Message for allison stored.
02:29 dalek r34536 | pmichaud++ | branches/rvar/languages/perl6/src/parser:
02:29 dalek : [rakudo]: (simple) multisubs work again
02:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34536
02:31 tetragon joined #parrot
02:47 dalek r34537 | pmichaud++ | branches/rvar/languages/perl6 (3 files):
02:47 dalek : [rakudo]:  Complain about declaring a lexical twice in same scope.
02:47 dalek : * Fix some double-declarations in 00-parrot tests.
02:47 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34537
03:09 zostay joined #parrot
03:10 dalek r34538 | pmichaud++ | branches/rvar/languages/perl6/src/parser:
03:10 dalek : [rakudo]:  Restore type bindings (::T) in signatures.
03:10 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34538
03:12 GeJ nopaste ?
03:12 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
03:12 purl nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ 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)
03:14 zostay_ joined #parrot
03:16 nopaste "GeJ" at 202.22.229.231 pasted "[open modes] Diff applied to "compilers/tge/tgc.pir" to fix build." (21 lines) at http://nopaste.snit.ch/15109
03:17 GeJ Coke: could you have a look at it if you have a few minutes?
03:36 Coke gej;looks good. you have a commit bit?
03:37 Coke (oddly, my build doesn't break without that.)
03:39 dalek r34539 | coke++ | trunk/compilers/tge:
03:39 dalek : Update mode usage for TGE.
03:39 dalek : Courtesy GeJ++
03:39 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34539
03:39 GeJ Coke: nope. no commit bit.
03:39 GeJ thank you
03:40 Coke thank you.
03:40 Coke I note that "examples_tests" is also borked if you're bored. =-)
03:40 Coke (fixing that one now.)
03:40 GeJ Well, lucky you, I'm bored :)
03:40 kid51 joined #parrot
03:41 Coke oooh, really? danke.
03:41 * Coke backs away from the examples/ directory.
03:41 kid51 https://trac.parrot.org/parrot/ is back on line.
03:42 GeJ hum, can't find . -name "*examples_tests*" though...
03:42 Coke it's a make target, sorry.
03:42 GeJ Ah ok... I'm on it.
03:42 Coke GeJ++
03:47 kid51 Coke:  I don't see anything wrong with 'make examples_tests'.  Are you talking about something other than top-level dir in trunk?
03:47 Coke kid51: yes, that's what I mean.
03:48 kid51 I just ran both 'prove t/examples/*.t' and 'make examples_tests".  Setting aside TODOed tests, all tests passed.
03:49 nopaste "kid51" at 68.237.2.168 pasted "make examples_tests" (31 lines) at http://nopaste.snit.ch/15110
03:49 Coke kid51: what revision?
03:49 purl revision is 0, unless it's an svn co, then it's whatever svn reports
03:49 kid51 34497
03:50 Coke I'm sure it worked fine back then. =-)
03:50 rurban_ joined #parrot
03:51 Coke r34535 - Remove [DEPRECATED] open file modes.
03:54 dalek r34540 | pmichaud++ | branches/rvar/languages/perl6/src/parser:
03:54 dalek : [rakudo]:  Restore placeholder vars.
03:54 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34540
03:56 Coke I wonder if there's a "fulltest" analog with just the one core.
03:59 dalek r34541 | pmichaud++ | branches/rvar/languages/perl6/src/parser:
03:59 dalek : [rakudo]:  Restore .arity on signatured blocks.
03:59 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34541
03:59 kid51 Okay, I see the failures you were talking about.
04:01 nopaste "kid51" at 68.237.2.168 pasted "make examples_tests at r34539" (271 lines) at http://nopaste.snit.ch/15111
04:01 Coke ayup.
04:01 elmex_ joined #parrot
04:01 Coke should be a simple fix; GeJ is working on it now.
04:01 GeJ almost done
04:02 kid51 It's almost my bedtime, so I'm glad it's daytime for Gej to work on it ;-)
04:02 Coke =-)
04:05 kid51 Coke:  Earlier today I posted about the non-working links here:  http://www.parrot.org/docs/
04:05 kid51 Do you know what the plan is to get them working?
04:05 Coke there's a ticket about that, neh?
04:05 * kid51 checks
04:05 Coke ah. the original ticket was probably re: parrotcode.
04:05 Coke (plan) ISTR particle is working on it.
04:06 Coke basically: have a trunk/release version of the docs, and try to create them with "make html".
04:07 kid51 Woah:  Trac problem:
04:07 kid51 Trac detected an internal error:
04:07 kid51 OperationalError: database is locked
04:07 kid51 There was an internal error in Trac. It is recommended that you inform your local Trac administrator and give him all the information he needs to reproduce the issue.
04:08 kid51 (Cleared up)
04:10 Coke Wow. it is more challenging to cpan install a module on this box than it was to build parrot.
04:11 Coke (swap on this old machine hurts)
04:14 kid51 'make coretest' passes at r34539.
04:14 nopaste "GeJ" at 202.22.229.231 pasted "[open modes] fix `make examples_tests'" (101 lines) at http://nopaste.snit.ch/15112
04:15 GeJ I should note that I SKIP some GMP-related tests...
04:15 Coke if some committer would like to apply that, looks good here.
04:16 Coke (I'm in the middle of something in my normal checkout dir0
04:16 GeJ so I may have missed some.
04:17 Coke gej;if no one gets to that, plz. open a ticket. I'm not sure I'll remember once I finish this task.
04:17 Coke (or that I'll finish this task tonight)
04:18 GeJ Will do. Thanks.
04:21 dalek r34542 | jkeenan++ | trunk (6 files):
04:21 dalek : Fix PIR used in 'make examples_tests' to reflect discontinuation of certain open modes.  Patch courtesy of Geraud Continsouzas.
04:21 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34542
04:22 kid51 'make examples_tests' now PASS
04:22 GeJ Thanks kid51
04:22 kid51 Thank *you* -- that was fast work for that number of files.
04:23 * kid51 must sleep
04:23 purl $kid51->sleep(8 * 3600);
04:26 Coke kid51++ GeJ++
04:26 GeJ Coke: if there's anything else I can do. I still have some CPU cycles available.
04:27 Coke ack --parrot 'open.*[<>]' ?
04:27 Coke (see if we missed any?)
04:28 dalek r34543 | coke++ | branches:
04:28 dalek : Branch to remove store_global & find_global opcodes
04:28 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34543
04:30 dalek r34544 | coke++ | branches/global_cleanup (4 files):
04:30 dalek : Remove the opcodes themselves.
04:30 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34544
04:32 GeJ yup... found some. On it.
04:36 GeJ do the new modes also apply to PASM files?
04:38 Coke yup.
04:39 Coke it's the opcode, so it's same on both.
04:39 * Coke stares balefully at the ncurses library.
04:41 GeJ What are the new modes for '<>' and '+<' ?
04:41 Coke I'm assuming <> == rw
04:42 Coke I think +< also means rw.
04:42 Coke +> would mean something else, though.
04:43 Coke guessing this based on the code removed in r34535
04:43 GeJ I got a hit in book/ch05_pasm.pod
04:43 GeJ it describes '+<' as read-write and '<>' as append.
04:45 Coke >> was append.
04:45 Coke so replace <> with 'wa'
04:45 Coke (fixing the typo)
04:45 Coke and +< with 'rw'
04:46 GeJ noted. thanks
04:53 GeJ Hum, pdd22_io.pod defines : C<open> opcode: 'r' for read, 'w' for write, 'a' for append, and 'p' for pipe.  (l 125-126)
04:54 Coke yup. but 'a' by itself is (currently) not enoughy.
04:54 Coke I sent an email to the list noting that.
04:54 Coke (when trac was down)
04:54 GeJ oh yes, I remember you mentioning that earlier.
04:54 * GeJ should subscribe to The list.
04:56 dalek r34545 | coke++ | branches/global_cleanup/runtime/parrot/library (19 files):
04:56 dalek : Fixup (just compiles, not tested)  any _global variants needed to complete 'make'
04:56 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34545
05:00 GeJ rebuilding parrot with patches, restarting tests.
05:01 GeJ there's one file in pipp I'm not 100% sure about. And I probably b0rked the quine example.
05:02 Coke I hate that quine. :|
05:03 Coke bah. I've borked test/builder/tester in the branch.
05:03 Coke picked the wrong _global variant as a replacement somewhere. :|
05:05 dalek r34546 | pmichaud++ | branches/rvar/languages/perl6/src/parser:
05:05 dalek : [rakudo]:  Clean up package variable vivification.
05:05 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34546
05:05 dalek r34547 | pmichaud++ | branches/rvar/languages/perl6/src/classes:
05:05 dalek : [rakudo]:  Autovivify @!params in Signature.
05:05 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34547
05:08 * Coke gives up on global_cleanup for the evening.
05:09 Coke making t/library/test_builder_tester.t pass in the branch will probably be most illuminating.
05:23 nopaste "GeJ" at 202.22.229.231 pasted "[open modes] Yet another batch of conversions. Coke++ for the assignment." (377 lines) at http://nopaste.snit.ch/15113
05:26 Coke GeJ: I'm heading abed. If no one grabs it, could you open a ticket? Thanks.
05:26 Coke zzzzzzzzz
05:26 Coke GeJ++
05:28 GeJ Will do. Thanks
05:29 GeJ Good night Coke.
05:46 Andy joined #parrot
05:49 TiMBuS dumb question: is there a way to redefine a sub block in parrot?
05:50 TiMBuS ive changed undefined functions to throw an error when executed instead of spitting out a 'null pmc' error, but i'd like to be able to change the sub definition if the function is later implemented before it is ran
05:51 dalek r34548 | pmichaud++ | branches/rvar/compilers/pct/src/PAST:
05:51 dalek : [pct]:  Make PAST::Block.symbol smart about adding attributes to existing entry.
05:51 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34548
05:56 dalek r34549 | pmichaud++ | branches/rvar/languages/perl6/src/parser:
05:56 dalek : [rakudo]:  Fix up symbol table handling a bit.
05:56 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34549
06:17 dalek r34550 | petdance++ | trunk/src:
06:17 dalek : removed unused var; did some consting
06:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34550
06:23 dalek r34551 | petdance++ | trunk/lib/Parrot/Pmc2c (2 files):
06:23 dalek : removed unused include
06:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34551
06:32 dalek r34552 | pmichaud++ | branches/rvar/languages/perl6/src/parser:
06:32 dalek : [rakudo]:  Restore &-sigil vars.
06:32 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34552
06:34 dalek r34553 | petdance++ | trunk/lib/Parrot/Pmc2c (3 files):
06:34 dalek : pruned unused imports
06:34 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34553
06:36 dalek r34554 | petdance++ | trunk/lib/Parrot/Pmc2c:
06:36 dalek : pruned unused imports
06:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34554
06:38 dalek r34555 | petdance++ | trunk/lib/Parrot/Pmc2c (5 files):
06:38 dalek : renamed gen_ret() to return_statement()
06:38 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34555
06:45 Theory joined #parrot
06:46 tuxdna joined #parrot
06:47 Zaba_ joined #parrot
06:53 dalek r34556 | pmichaud++ | branches/rvar/languages/perl6/src/classes (2 files):
06:53 dalek : [rakudo]:  Add Hash() coercion and hash parameters.
06:53 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34556
06:53 dalek r34557 | pmichaud++ | branches/rvar/languages/perl6/src/parser (2 files):
06:53 dalek : [rakudo]: Do something reasonable with the 'returns' trait.
06:53 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34557
06:55 dalek r34558 | petdance++ | trunk/lib/Parrot/Pmc2c:
06:55 dalek : removed unused include
06:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34558
08:02 dalek r34559 | chromatic++ | trunk/src (4 files):
08:02 dalek : [src] Tidied some source code; no functional changes.
08:02 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34559
08:07 dalek r34560 | chromatic++ | trunk (24 files):
08:07 dalek : [src] Converted several old file modes to new form (patch by Geraud
08:07 dalek : CONTINSOUZAS).
08:07 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34560
08:09 tewk chromatic: mmd canidate types_names are converted to type_ids at invocation right.
08:10 iblechbot joined #parrot
08:13 GeJ chromatic: thanks
08:17 chromatic tewk, yes, for MMD cache keys and such.
08:17 chromatic GeJ, I believe we should be thanking *you*.
08:29 GeJ Not really like it was a critical patch. I just helped Coke with the dirty repetitive work so he could do something that really matters.
08:30 GeJ But if any other tasks like these would come up (and if time permits) I'd be happy to help.
08:31 chromatic https://trac.parrot.org/parr​ot/wiki/ConvertTestsToParrot is always good.
08:31 GeJ Oh, do you happen to know if some tools are publicly available to convert PseudoPod to PDF? I tried pod2pdf, but some data gets lost in the process.
08:32 chromatic We use Pod::PseudoPod::Latex at Onyx Neon, then a LaTeX to PDF converter with a custom stylesheet.
08:35 GeJ I'm going to try that. thanks for the tip.
08:52 lathos 'Ken Lunde has just notified me of the release of the Second Edition of _CJK Information Processing_. '
09:12 kj joined #parrot
09:24 TiMBuS arg. I tried to subclass ResizablePMCArray, but now I get told it 'doesnt array' when I use :flat
09:24 TiMBuS how to I let it array?
09:33 skv joined #parrot
09:36 tomyan joined #parrot
09:38 dalek r34561 | kjs++ | trunk/compilers/pirc/new (5 files):
09:38 dalek : [pirc] for now, stick to current :multi syntax; not sure whether :invocant will be 1.0 feature.
09:38 dalek : + Count the number of :multi types during parsing.
09:38 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34561
09:53 alvar joined #parrot
10:24 dalek r34562 | kjs++ | trunk/compilers/pirc/new (6 files):
10:24 dalek : [pirc] decouple bcgen module from rest of PIRC. Define some new structs for multi_types. Add some helper functions.
10:24 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34562
10:32 masak joined #parrot
10:33 tuxdna joined #parrot
10:33 dalek r34563 | kjs++ | trunk/compilers/pirc/new (3 files):
10:33 dalek : [pirc] create a signature pmc for :multi(), without any types.
10:33 dalek : + add the trick stolen from imcc, that numtypes=1 means :multi(), n=2 means :multi(Type1), n=3 means :multi(Type1,Type2), etc. n is always 1 higher than actual type. If n=1, "__VOID" signature is generated.
10:33 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34563
10:46 dalek r34564 | kjs++ | trunk/compilers/pirc/new:
10:46 dalek : [pirc] implement parts of generate_multi_signature().
10:46 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34564
10:50 TiMBuS i had to make the pmclass have a 'provides array' in the declaration
11:12 dalek r34565 | kjs++ | trunk/compilers/pirc/new (6 files):
11:12 dalek : [pirc] create an array of :multi types, and convert the PIRC AST expression nodes into multi_type nodes. This is to keep bcgen module apart from PIRC, otherwise we could have used expression nodes, which are PIRC AST specific.
11:12 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34565
11:17 dalek r34566 | kjs++ | trunk/compilers/pirc/new (2 files):
11:17 dalek : [pirc] fix a bug, and add a few comments.
11:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34566
11:50 rurban_ joined #parrot
11:50 ruoso joined #parrot
12:01 Tene seems like my RSI rest is mostly over.  starting work on HLL stuff tomorrow.
12:39 ask_ joined #parrot
12:52 dalek r34567 | rurban++ | branches/pdd30install_stage3/t/tools:
12:52 dalek : Trac #97: Current tests do not test the installables, esp.
12:52 dalek : if the prefix is correctly set from the build_dir to the
12:52 dalek : configured prefix, i.e. if config.fpmc is linked, in contrary
12:52 dalek : to the build-time config_lib.pasm
12:52 dalek : t/tools/parrot_config.t checks parrot_config prefix against
12:52 dalek : installable_parrot_config prefix.
12:52 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34567
13:01 Coke I'm going to get this *bsd box working and then realize how horribly outdated it is and probably not worth smoking. =-)
13:18 dalek r34568 | kjs++ | trunk/compilers/pirc/new (7 files):
13:18 dalek : [pirc] work on lexical registering.
13:18 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34568
13:20 apeiron joined #parrot
13:27 dalek r34569 | kjs++ | trunk/compilers/pirc/new (5 files):
13:27 dalek : [pirc] prefix sub_flags with "PIRC", to prevent collisions with libparrot.
13:27 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34569
13:30 masak joined #parrot
13:31 Theory joined #parrot
13:35 dalek r34570 | rurban++ | branches/pdd30install_stage3/tools/build:
13:35 dalek : [cage] RT#56998 cygdll_versioning moved the dll to build_dir,
13:35 dalek : so this check is not needed anymore.
13:35 dalek : RT#57548 CONDITIONED_LINE_enh added a platform check so the
13:35 dalek : cygchkdll config entry is also not needed anymore.
13:35 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34570
13:36 Coke msg timbus (redefine sub block) - if the sub is in a namespace, you can just get the namespace and shove a newly defined sub into it.
13:36 purl Message for timbus stored.
13:37 Coke ... it's sad that I can tell when this box is waiting for me to hit enter because the hard drive noise drops below audible. :|
13:42 Coke karma orkut?
13:42 purl orkut has karma of -8
13:42 Coke orkut--
13:42 dalek r34571 | kjs++ | trunk/compilers/pirc/new (4 files):
13:42 dalek : [pirc] bits of find_outer_sub().
13:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34571
13:44 dalek r34572 | rurban++ | trunk/t/tools:
13:44 dalek : [cage] prefer $PConfig{perl} over perl
13:44 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34572
13:54 Andy joined #parrot
13:56 apeiron joined #parrot
13:58 dalek r34573 | kjs++ | trunk/compilers/pirc/new (2 files):
13:58 dalek : [pirc] bits for namespace stuff in PMC_sub.
13:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34573
14:05 apeiron_ joined #parrot
14:28 dalek r34574 | kjs++ | trunk/compilers/pirc/new (4 files):
14:28 dalek : [pirc] remove lex_name field from target; no longer used. + some documentation updates.
14:28 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34574
14:35 jimmy joined #parrot
14:52 workbench joined #parrot
14:54 dalek r34575 | rurban++ | branches/pdd30install_stage3 (5 files):
14:54 dalek : [test] add parrot_utils tests #101
14:54 dalek : https://trac.parrot.org/parrot/ticket/101
14:54 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34575
14:57 AndyA joined #parrot
15:05 dalek r34576 | kjs++ | trunk/compilers/pirc/new (2 files):
15:05 dalek : [pirc] first draft of optimization suggested by chromatic++. box_p_ic becomes set_p_pc.
15:05 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34576
15:06 workbench joined #parrot
15:13 jsut|work joined #parrot
15:15 dalek r34577 | kjs++ | trunk/compilers/pirc/new:
15:15 dalek : [pirc] optimize box_p_sc and box_p_nc also as set_p_pc. + refactor.
15:15 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34577
15:23 gryphon joined #parrot
15:35 dalek r34578 | rurban++ | branches/pdd30install_stage3:
15:35 dalek : [install] add missing files which need to installed, languages not yet
15:35 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34578
15:41 dalek r34579 | pmichaud++ | trunk/languages/perl6/docs:
15:41 dalek : [rakudo]: spectest-progress.csv update: 264 files, 5802 passing, 141 failing
15:41 dalek : Failure summary:
15:41 dalek :     S16-filehandles/io.rakudo aborted 57 test(s)
15:41 dalek :     S16-filehandles/io_in_for_loops.rakudo aborted 49 test(s)
15:41 dalek :     S16-filehandles/io_in_while_loops.t aborted 13 test(s)
15:41 dalek :     S16-io/basic-open.t aborted 9 test(s)
15:41 dalek :     S16-unfiled/slurp.rakudo aborted 9 test(s)
15:41 dalek :     integration/say-crash.t aborted 4 test(s)
15:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34579
15:42 masak some IO failures there.
15:43 Andy joined #parrot
15:45 * jonathan wonders where they came from.
15:45 pmichaud I suspect the filemode changes to FileHandle
15:45 jonathan ah, should be easy to fix then
15:46 jonathan pmichaud: How's paramters going? I glanced over what you've been checking in earlier and it looks good.
15:46 pmichaud it's going well thus far
15:46 pmichaud still a ways to go
15:46 jonathan Lot of regressions to fix up?
15:47 pmichaud but we now handle   sub foo(@a) { ... }    and sub foo(%h) { ... }
15:47 pmichaud well, I've ripped out huge portions of actions.pm that haven't gone back in yet
15:47 jonathan We didn't before?
15:47 pmichaud no, we didn't before.
15:47 pmichaud before it was treating all parameters as Perl6Scalar
15:48 pmichaud so, for example,   sub foo(%h?) { ... }   would result in %h being an undef instead of an empty Hash
15:48 jonathan Ah.
15:48 jonathan OK.
15:48 pmichaud and
15:48 pmichaud sub foo(@a) { ... };   foo(1);   would leave @a as an Int instead of an Array containing an int
15:49 pmichaud anyway, the typechecking and binding code is no longer in actions.pm
15:50 pmichaud it's now in a separate function that does the typechecking and binding based on the $!signature object
15:50 jonathan Right, as we agreed a while back. :-)
15:50 * jonathan is happy to see this implemented.
15:51 pmichaud right now I'm trying to figure out if   STD.pm   chooses to parse   @( ... )   as a variable or a circumfix:  (and why there are two choices)
15:51 hercynium joined #parrot
15:56 tetragon joined #parrot
15:57 pmichaud looks like it uses circumfix:sigil .  I have no clue why.
15:57 barney joined #parrot
15:58 dalek r34580 | pmichaud++ | branches/rvar/languages/perl6/src/parser:
15:58 dalek : [rakudo]:  Make <sigil>(...) parse as circumfix again.
15:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34580
16:00 elmex_ joined #parrot
16:14 Coke does parrot support a namespace path?
16:14 Coke (like @INC for namespaces)
16:16 dalek r34581 | bernhard++ | trunk (5 files):
16:16 dalek : RT #61800: [PATCH] implement array_fill() within pipp.
16:16 dalek : Courtesy of Daniel Keane.
16:16 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34581
16:16 Coke Actually, I suppose I can easily do that on my own, since I have a hook on every command invocation. Ne'ermind.
16:24 dalek r34582 | bernhard++ | trunk (7 files):
16:24 dalek : RT #61786: [PATCH] docs/book typo corrections
16:24 dalek : Courtesy of Ovid.
16:24 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34582
16:27 Coke looks like we misspell precidence a bit, too, if someone wants to grab that.
16:29 Zaba joined #parrot
16:29 dalek r34583 | bernhard++ | trunk (4 files):
16:29 dalek : RT #61812: [PATCH] Fixed typos in docs -- removed duplicate example code
16:29 dalek : Courtesy of Saleem Ansari.
16:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34583
16:31 jhorwitz joined #parrot
16:42 dalek r34584 | bernhard++ | trunk:
16:42 dalek : [docs] order entries in CREDITS
16:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34584
17:10 rurban I cannot change the tiackt status of my trac tickets. Who's admin?
17:10 dalek r34585 | pmichaud++ | branches/rvar/languages/perl6/src/classes:
17:10 dalek : [rakudo]:  Protoobjects are already scalars.
17:10 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34585
17:15 dalek r34586 | bernhard++ | trunk/languages/pipp/src/common:
17:15 dalek : [Pipp] The Perl-like file modes have been removed from Parrot.
17:15 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34586
17:18 tomyan joined #parrot
17:29 mberends joined #parrot
17:30 rurban The cygwin distro is now out (0.8.2)
17:31 rurban I'll report any cygwin feedbacks here.
17:40 Zaba joined #parrot
17:40 ask_ joined #parrot
17:41 leto joined #parrot
17:47 davidfetter joined #parrot
17:48 Zaba_ joined #parrot
17:52 dalek r34587 | rurban++ | branches/pdd30install_stage3/ports/cygwin (7 files):
17:52 dalek : [ports] parrot-0.8.2-1 release
17:52 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34587
18:26 allison joined #parrot
18:49 register joined #parrot
18:55 dngor joined #parrot
19:10 ffwonko joined #parrot
19:26 chromatic joined #parrot
19:28 dalek r34588 | bernhard++ | trunk (3 files):
19:28 dalek : [codingstd] remove a trailing space.
19:28 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34588
19:28 dalek r34589 | jkeenan++ | branches/pdd30install_stage3 (2 files):
19:28 dalek : Update MANIFEST and MANIFEST.SKIP.
19:28 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34589
19:35 allison chromatic: (reviewing gc branch commits) quick question about r34113, was that a merge from trunk?
19:36 chromatic Checking.
19:36 chromatic Oh, I'm sure it was.
19:36 chromatic I tried to check out the branch with SVK and it played helpful.
19:37 jhorwitz allison++ # i see pdd22io_part3 branch is coming along nicely :)
19:37 allison chromatic: cool, I'll update the merge history
19:38 allison jhorwitz: just about ready to merge in, fixing a few failing tests
19:38 allison jhorwitz: well, all existing tests pass, I just added some new ones for the StringHandle PMC
19:39 jhorwitz allison: can i subclass using a parrot class or do i have to write a new PMC?
19:40 chromatic That was my question too.
19:40 allison jhorwitz: you can subclass using a Parrot Class, and if you do you can use all the internal I/O functions. The one catch is that a subclass has to have the same basic struct members as FileHandle
19:40 jhorwitz as attributes?
19:41 allison ah, you mean a PIR class, rather than a C class
19:41 jhorwitz yeah
19:41 allison the only way to do that at the moment is by delegation
19:41 allison largely because Parrot's mechanism for subclassing across the C->PIR barrier isn't complete
19:42 * jhorwitz nods
19:43 allison I created StringHandle as a demonstration that any PMC with the right methods can polymorphically substitute for a FileHandle
19:44 jhorwitz so it would seem that for me it would be easiest to write a new PMC using StringHandle as a template.
19:44 allison the things that won't work are the 'tell', 'seek', and 'peek' functions, which currently work with types that aren't supported in PIR
19:46 jhorwitz all i need is open, read and write (or their equivalents).  :)
19:46 allison (though, I notice the opcodes handle these by casting the long as an int or two ints
19:46 allison jhorwitz: and, yes, using StringHandle as a template will work fine
19:46 jhorwitz excellent
19:47 * jhorwitz loves it when a plan comes together....
19:47 allison are you using internal I/O functions at all?
19:47 jhorwitz PIO functions?
19:48 allison aye, or the Parrot_io_* functions
19:48 allison (I'm guessing not)
19:48 jhorwitz nope
19:48 allison then StringHandle is definitely the way to go
19:49 allison (it doesn't use them either)
19:49 jhorwitz any IO that i do is abstracted by apache
19:49 jhorwitz keeps me out of trouble.  :)
19:50 allison and StringHandle, btw, is safe to subclass from PIR
19:51 jhorwitz cool
19:53 rurban_ joined #parrot
19:57 tomyan joined #parrot
20:02 Coke is it possible to use the trick to get your pir subclasses proxy attribute to override the invoke vtable?
20:03 Coke I want to have my TclProc (a pir class that subclasses Sub) have some setup/teardown on invoke.
20:03 Coke $P0 = getattribute self, ['Sub'], 'proxy'
20:03 Coke $P0()
20:05 Coke (the overriden vtable is getting invoked, I just can't seem to use that trick to get at the original invoke vtable.)
20:07 Coke (the $P0 there is NULL)
20:07 chromatic Hm, the new IO file modes are undocumented except for the book -- nothing in the PDD, the ops, nor the Parrot_io_* function docs, as far as I can see.
20:07 Coke they're in the PDD.
20:08 Coke pdd22, search for "append"
20:09 Coke (which has duplicated docs which say "same as open opcode", and yah, I don't think their documented at the opcode.
20:09 Coke ah, in fact, the opcode file lies and says 'perl style'
20:09 chromatic Hence my comment.
20:09 Coke my fault, I suppose; I didn't update the docs when I ripped out the old syntax.
20:10 chromatic I'm running Rakudo tests now, having updated the code there to fix things.  Hopefully.
20:13 Coke chromatic: fixed.
20:14 dalek r34590 | coke++ | trunk/src/ops:
20:14 dalek : reference mode types at the opcode docs, where the PDD points us to.
20:14 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34590
20:14 Coke (oh good, I had already switched back to trunk earlier today. )
20:15 Coke my note can probably be cleaned up a bit.
20:15 Coke The way the code is written now, you must specify one of 'r' or 'w'
20:24 nopaste "Coke" at 72.228.52.192 pasted "without an arg, this errors out on # of params. With args, the typeof gives the type of the first argument. (where'd self go?)" (25 lines) at http://nopaste.snit.ch/15115
20:25 Coke I would expect that to print "IN UR VTABLE\nTclProc"
20:28 tewk I have a class registry patch ready for review.
20:28 allison tewk: excellent
20:28 tewk t/library/p6object.t, fails several tests that need to be modified, I just dont' know how to fix them.
20:29 chromatic t/spec/S05-substitution/subst.rakudo TODO passed:   22, 25, 35, 38
20:29 dalek r34591 | chromatic++ | trunk/languages/perl6/src/builtins:
20:29 dalek : [Rakudo] Fixed IO open modes; all spectests pass again.
20:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34591
20:32 masak chromatic++
20:35 dngor joined #parrot
20:40 PacoLinux joined #parrot
20:41 nopaste "tewk" at 209.193.99.80 pasted "class_registry.diff" (2857 lines) at http://nopaste.snit.ch/15116
20:49 pmichaud I'd be surprised if p6object.t fails tests.  That might indicate that the class registry patch isn't as transparent as it needs to be.
20:52 Coke allison: ping
20:52 Coke for open modes, is it intentional that you have to specify "write append", not just "append" ?
20:53 allison Coke: yes
20:53 allison well, wait...
20:53 Coke if you use an open mode of just 'a', it fails.
20:53 Coke (because 'a' doesn't imply WRITE)
20:54 Coke (and you have to specify either read or write, at least on unix.)
20:54 allison Coke: yes, that's how it works
20:54 Coke ok.
20:54 allison Coke: why?
20:54 Coke because i would expect 'a' to imply 'w'
20:54 Coke (because 'ra' doesn't make any sense to me.)
20:54 chromatic +>
20:56 allison the way the internal flags work is you specify "WRITE" and either TRUNCATE or APPEND
20:56 Coke there is no declared way to specify truncate.
20:56 chromatic w
20:56 allison so, made truncate the default
20:56 allison and then set APPEND if 'a' is also found
20:56 allison (that is, unset TRUNCATE and set APPEND)
20:57 Coke right.
20:57 Coke <shrug> I don't particularly care, I just wanted to make sure it was intentional.
20:57 Coke I am going to have to map tcl's modes to parrots anyway.
20:57 allison the PDD is non-specific
20:57 allison at this point, it can really go either way
20:58 allison it's early enough that changing 'a' to imply 'w' isn't going to mess anyone up
20:58 Coke again, I don't care. I just wanted to make sure it was intentional.
20:58 allison so, how strong is your first reaction that 'a' should imply 'w'
20:58 Coke it surprised me.
20:58 allison yes, but the first reactions of the first users are important
20:59 allison so, want to capture it
20:59 Coke if I didn't have access to the source code, I would have very confused.
20:59 tewk pmichaud: I don't put classes in the registry anymore. its just bound to raise its nasty head later.
20:59 pmichaud tewk: then we need to go through a deprecation cycle for it.
20:59 allison Coke: ok, I'll change that right after I merge in the stringhandles branch
21:00 tewk hasn't the old oo system been deprecated for months
21:00 pmichaud (filehandle modes)  my first reaction is that they look like stdio modes, so I'd expect them to work as such.
21:00 Coke I thought we already replaced the old OO system. =-)
21:00 pmichaud tewk: afaik the class registry has not been deprecated.
21:00 workbench joined #parrot
21:01 allison the class registry is still used to create unique ids
21:01 Coke running one spec test via tclsh8.5 takes 0.055s; via partcl, it takes 5m.
21:01 allison and unique ids are still necessary
21:01 Coke 5*60/0.055
21:01 purl 5454.54545454545
21:01 allison and, the new OO system still enters all PIR classes in the registry
21:02 tewk allison: creating unique ids hasn't changed, you just can't assume a flat namespace
21:02 allison tewk: right, isn't that what your patch is fixing?
21:02 allison eliminating the flat namespace?
21:02 tewk yes but there is code where people assume a flat namespace, and I'm not providing backwards compat for that.
21:03 allison mmmm... diff -u is not producing a terribly comprehensible result on this one
21:03 Tene someone want to remind me how to create a branch with svn?
21:03 allison Tene: svn copy
21:03 purl svn copy is, like, a good idea
21:04 Coke svn cp https://svn.perl.org/parrot/trunk https://svn.perl.org/parrot/branches/new_branch
21:04 Tene thanks
21:05 tewk if you create class foo in namespace A and then in switch to namespace B and do $I0 isa Foo_obj "Foo"
21:05 tewk because it can't find "Foo" in namespace B
21:06 tewk $I0 isa Foo_obj Foo_class is the right way to do that of course.
21:06 Tene isa_*_s should probably look in the same place that new_*_s does
21:08 tewk Continuing to support a flat namespace is dangerous, as an example, I could introduce my own version of P6object early in the load process and break everything that uses PCT
21:08 Coke Anyone have any ideas on overriding the invoke vtable? (need it to support tcl's [trace])
21:09 GeJ Good morning everyone
21:09 pmichaud tewk: actually, that *wouldn't* break PCT because PCT tries never to use the flat namespace in the first place.
21:09 pmichaud that's kinda the point.
21:10 pmichaud (if PCT is using the flat namespace for anything other than Parrot builtin PMCs, it's a bug in PCT.)
21:10 pmichaud HLLCompiler being the potentially notable exception, as it needs an overhaul
21:10 tewk pmichaud: ok. bad example
21:10 tewk good news: perl6 only has a couple of failures with the new patch
21:11 tewk good news: perl6 only has a couple of failures with the resgistry hack.
21:11 tewk good news: perl6 only has a couple of failures with the class registry fix.
21:11 pmichaud I would expect Rakudo to have a couple of failures, yes -- there's still some code that uses new_p_sc
21:12 pmichaud but that's partially why I think we need to keep the registry around a while, to give people a chance to adapt
21:12 nopaste "tewk" at 209.193.99.80 pasted "rakudo.class_registry_fix.results" (9 lines) at http://nopaste.snit.ch/15117
21:13 pmichaud tewk: that's _all_ that fail?
21:13 pmichaud if so, I'm totally and utterly shocked.  :-)
21:13 tewk pmichaud: yep, which supports your statement that PCT is doing the right thing.
21:14 tewk I think it is further evidence that the change won't be as painfull as maybe we expected.
21:15 pmichaud Rakudo and PCT have the advantage that I've been designing away from the class registry for nearly a year.
21:15 pmichaud I suspect other languages don't have that luxury.
21:15 tewk new_p_sc continues to work if you use it in the same namespace where you declared the class.
21:15 tewk Who doesn'
21:15 tewk t use PCT? tcl, ...
21:15 pmichaud same namespace == same hll namespace?
21:16 Tene oh, I should probably wait until after class registry fixes go in
21:16 pmichaud it's not just the compiler, it's also the builtins
21:16 pmichaud PCT just takes care of the compiler part.
21:16 Tene tewk: you going to commit class registry stuff today?
21:17 pmichaud and if "continues to work if you use it in the same namespace" really means "same hll namespace", then things may break horribly when we start using .hll
21:17 Tene pmichaud: no, same .namespace
21:17 tewk no it means the same namespace
21:17 pmichaud so,   new 'Integer'   would fail if I don't have an Integer class in my current namespace?
21:17 * pmichaud is confused.
21:18 tewk Integer is a core PMC, so it will work
21:18 pmichaud "core PMC" means "any PMC"?
21:18 pmichaud how about dynamically loaded PMCs?
21:19 Tene I thought that _sc meant [parrot;*]
21:20 pmichaud that wasn't what I proposed, no.
21:20 tewk Tene: no _sc means string constant.
21:20 tewk I think all PMC still go into the registry
21:20 Tene tewk: s/_sc/the _sc variants of the class registry ops/, but i'm wrong anyway
21:21 tewk the _sc variants go into the current namespace.
21:23 tewk We don't support dynpmcs in namespaces yet do we?
21:24 pmichaud every PMC type has a corresponding namespace, yes.
21:24 pmichaud I don't know if there's a way to have a PMC type in anything other than parrot;
21:32 * Coke switches to the list for his invoke() question.
21:33 Coke tewk: tcl doesn't use PCT; neither does pheme, IIRC.
21:34 tewk Coke: I'm trying to fix Tcl
21:34 Coke would you like commit bits for partcl?
21:35 tewk tewk: no, not yet.
21:35 Coke talking to yourself is not a good sign.
21:35 tewk I'm not going to check in the registry fix yet I'm just trying to gauge how bid a disruption it is.
21:36 tewk Coke: got: 'Class '[ 'TclExpr' ; 'PAST' ; 'Grammar' ]' not found
21:36 tewk where does this lookup occur?
21:36 * pmichaud suspects it's a tge-generated item.
21:36 Coke very likely.
21:36 tewk pmichaud++ sounds right
21:38 dalek r34592 | tewk++ | branches:
21:38 dalek : Gut the class registry :)
21:38 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34592
21:38 tewk no worries I just created a branch :)
21:52 Tene Coke: pheme will use PCT soonish.
21:52 tewk pheme passes all its tests
21:56 Tene tewk: when do you plan to commit?
21:58 tewk Tene: when/if people think it is a good idea.
21:58 Coke Tene: I thought pheme was meant not to use pct.
21:58 Coke ISTR chromatic explaining it as a canary in the coal mine for tcl.
21:59 Tene Coke: chromatic said that it's meant to be a simple demonstration of the right way to do things, and so should ddefinitely use PCT
21:59 Coke must have been a happy coincidence.
22:00 Coke I would happily accept a patch to let tcl use PCT. =-)
22:01 chromatic Canary in the coal mine for TGE.
22:01 chromatic (but it would be easier to add features to Pheme if it used PCT)
22:02 dalek r34593 | chromatic++ | trunk/src/ops:
22:02 dalek : [ops] Removed trailing whitespace.
22:02 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34593
22:03 Whiteknight joined #parrot
22:03 Coke wozzat me? sorry
22:06 chromatic Was that me complaining that someone checked in accurate, concise, and timely documentation?  No way!
22:07 Coke sorry about the whitespace, still.
22:08 chromatic Check in more documentation and I will happy fix any apostrophe or whitespace fixes if they exist.
22:09 Coke I cannot think of a comment that doesn't invoke tcl and snark.
22:12 pmichaud including that one.  :-P
22:15 Coke exactly!
22:15 purl somebody said exactly! was it not awesome?
22:23 Coke aside from --optimize, how I can make parrot go faster?
22:23 Coke (3*60+46)/0.055
22:23 purl 4109.09090909091
22:24 pmichaud perhaps a better GC?
22:24 * pmichaud ducks.
22:25 Coke I should definitely run future spec test runs against an optimized parrot, though.
22:25 Coke 5/(3+46/60)
22:25 purl 1.32743362831858
22:25 Coke (3+46/60)/5
22:25 purl 0.753333333333333
22:25 Tene pmichaud: don't we already think that that the class registry fix is a good idea?
22:26 pmichaud I think the class registry fix is important.  But tewk's details differ slightly from what I was imagining, and we can't cause existing code relying on the registry to break without going through a deprecation cycle first.
22:26 pmichaud s/important/critical/
22:27 pmichaud (well, we can skip the deprecation cycle, but only by breaking a long-standing policy.  I'm not sure it's critical enough to warrant that.)
22:27 tewk I've got an idea about quickly adding backwards compat.
22:27 tewk I'll give it a try
22:28 Coke note that we are running out of deprecation cycles for 1.0
22:28 pmichaud if fixing the registry involves modifying existing tests or language implementations, then by definition we need a deprecation cycle.
22:28 Coke (presuming we're sticking with our target date.)
22:28 Tene and we don't currently need this for HLL stuff, right?
22:29 pmichaud I think we can move forward on HLL stuff w/o the registry fix, but as you observed it might be good to get the registry fix in place first.
22:29 pmichaud I don't see one as blocking on the other, no.
22:30 Tene I mostly wanted to avoid conflicts, but if it's not going in soon, I should be fine.
22:30 pmichaud I don't think there should be (m)any conflicts.
22:30 Tene Can we at least get a deprecation note in DEPRECATED, though?
22:30 pmichaud I'd like to know what exactly we're deprecating, first.
22:30 Coke getting the note in only matters on release boundaries.
22:31 pmichaud again, what tewk described is different from what I proposed, so I'd like to understand that better first.
22:32 Tene Coke: yes, and I'd like to make sure this can be fixed after the next release.
22:32 Tene pmichaud: okay.
22:33 pmichaud if fixing the class registry requires a deprecation, then almost by definition we missed the Jan 2009 target for it.  :-|
22:34 Tene Ah.
22:34 pmichaud (although we can certainly have it fixed on the day-after-Jan-2009-release :-)
22:34 Tene food with the girl &
22:35 dalek r34594 | pmichaud++ | branches/rvar/languages/perl6/src (6 files):
22:35 dalek : [rakudo]:  Fix a brain-o; we can't have Scalar(), Array(), Hash() subs
22:35 dalek : because those are actually types.  So work around it for now.
22:35 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34594
22:35 * jonathan is back
22:36 Coke jonathan!
22:36 purl i guess jonathan is mailto:jnthn@jnthn.net or trying to put together a grant application.
22:36 jonathan Coke!
22:36 Coke How much would I have to pay you to work on tcl for a day? =-)
22:36 jonathan Seriously?
22:36 purl Totally!
22:36 jonathan I don't exactly know the codebase... ;-)
22:36 Coke come up to speed on your own time! =-)
22:37 jonathan Is it using PCT, or written in PIR, or hybrid (like PGE parser, PIR rest...)?
22:37 Coke PGE/TGE
22:37 Coke lots of runtime invocations of stuff written in PIR.
22:38 jonathan Ah, it's sorta interpreted-ish as much as it is compiled?
22:38 pmichaud Coke:  we might get a bigger win if we could get Jonathan to instrument Parrot with some profiling stuff :-)
22:38 Coke of more general use would be a ....
22:38 Coke what pmichaud said.
22:38 jonathan Ah. So what you really want is performance stuff?
22:38 Coke If we had sub level profile information (PIR & C), that would be awesome.
22:38 Coke then I can properly blame patrick! =-)
22:38 jonathan At least, performance analysis...
22:38 pmichaud Coke's goal is to make Tcl less annoyingly slow.
22:39 pmichaud s/annoyingly/agonizingly/
22:39 Coke with an optimized bird, one spec test for tcl is currently 4100 times slower than tclsh8.5.x
22:39 chromatic Even just knowing where the hotspots in PGE and PCT are would help.
22:39 jonathan Given the recent OMFG 2000 TIMES SLOWER THAN LUA post on the list, I'm struggling to have much faith in Parrot performance right now.
22:39 Coke (5400 with a regular build.)
22:39 Coke I feel his pain.
22:40 chromatic We have to fix calling conventions to NOT COPY DATA AROUND MULTIPLE TIMES WHEN WE COULD JUST POKE IN REGISTERS WHICH IS THE POINT OF REGISTERS NOT STACKS to get some of that back.
22:40 jonathan First step would be to revert the MMD changes on ops. *sigh*
22:40 jonathan Bluntly, I think that change was a mistake.
22:40 chromatic MMD doesn't hurt as much as you think.
22:40 jonathan But IANTA.
22:40 Coke profiling. need profiling. =-)
22:40 jonathan chromatic: No, it didn't hurt before.
22:41 chromatic It only hurts now because argument passing is slow.
22:41 jonathan Like, when it was a lookup in a 2D array which gave us a function pointer (OK, a couple of indirections...)
22:41 jonathan No, a candidate sort or even hitting an MMD cache is *way* more expensive than a 2D array lookup.
22:41 chromatic I made a quick patch to run MMD from ops through the cache lookup, and it was only a few percent faster.
22:41 jonathan That's because even MMD *with* a cache hit now is more costly than what we used to do.
22:41 chromatic It was not worth abstracting out.  I was surprised.
22:42 chromatic It's not the MMD that's the problem.  It's Parrot_pcc_invoke_from_sig_object().
22:42 jonathan That doesn't surprise me that much. The marshalling is costly, however.
22:42 jonathan Yes.
22:42 chromatic There's at least one spot to optimize in MMD caching, and that's the string creation for cache keys.
22:43 chromatic I haven't thought of a simple solution there though.  It'd be very nice to make keys usable with const_string().
22:43 jonathan chromatic: I only used Parrot STRING*s because of what happened with a cstring cache...
22:43 jonathan (I forgot about NULL termination ;-))
22:43 chromatic Exactly.
22:43 jonathan If we didn't piggy-back of hash or tried to do something smart we could do better.
22:43 jonathan s/of/off/
22:43 chromatic I hate to multiply entities, but a trie wouldn't hurt there at all.
22:44 jonathan But I was going more for first cut than optimal.
22:44 jonathan that'd be wroth looking at.
22:44 chromatic Yeah, that's still only at most a 10% improvement though.
22:44 jonathan But as you said, efforts on marshalling less and stuff would be a big win.
22:44 chromatic Right now we pay a huge cost in argument processing because we *may* have named parameters.
22:44 jonathan What worries me plenty is that other VMs can JIT calling.
22:44 jonathan For simple calls.
22:44 chromatic Agreed.
22:45 jonathan leo got some amazing performance when he made us able to do that.
22:45 jonathan But we've lost it.
22:45 jonathan (We've gained a lot of correctness and cleaner code, mind...)
22:45 pmichaud keep in mind that PGE always has to assume there are named parameters.
22:45 chromatic We need to start by unifying all calling through sig objects, and then pull more information into sig objects so we don't create some 4 - 7 PMCs for each invocation.
22:46 pmichaud if there's a way to optimize that, I'm in favor of it.
22:47 chromatic At compile time, we know if we have named parameters or named arguments.
22:47 chromatic We can make a fast path there.
22:47 jonathan We know on the caller side.
22:47 chromatic We know on the callee side too.
22:47 chromatic Not for any given pair, but for each element of the pair.
22:47 jonathan We don't know the callee at compile time. ;-)
22:47 pmichaud I'll rephrase
22:47 jonathan Yes, we're saying the same thing. :-)
22:48 pmichaud PGE always has to assume there are slurpy named params
22:48 pmichaud so a hash gets built for every regex invocation even when it might not be needed.
22:49 * jonathan wonders how many places modify the thingy that collects the slurpy parameters.
22:49 pmichaud a few, but I know where they are.
22:49 chromatic .sub "name" :method
22:49 chromatic .param pmc adverbs      :unique_reg :slurpy :named
22:50 jonathan If we know there are no named being passed, and we expect a slurpy, and we can promise non-modification, then we can just have one global read-only Hash.
22:50 pmichaud correct.
22:50 pmichaud I was even thinking of a COW hash :-)
22:50 jonathan .param pmc adverbs :slurpy :named :ro
22:50 jonathan We can't easily do that I fear.
22:50 pmichaud right. :-)
22:50 chromatic No, it's named adverbs'
22:50 pmichaud but there's another approach
22:50 chromatic not 'ro'
22:51 pmichaud (more)
22:51 * Coke kicks off an --optimized run of partcl's spec tests.
22:51 pmichaud it would be nice if there was a way to say "ignore any extra arguments the caller happens to send" without having to create slurpies for them
22:51 pmichaud in fact, this is a problem in general
22:52 pmichaud right now we can't throw exceptions when a caller sends arguments to a sub taking zero params
22:53 jonathan Erm?
22:53 purl Erm is it bat shit crazy?  It's just unprovable right?
22:53 pmichaud iwbni we could have a way to differentiate subs that ignore extra arguments from those that expect a specific set of extra arguments
22:53 pmichaud s:2nd/extra//
22:53 jonathan pmichaud: Ah, you mean, this can take any params, but we ignore them and don't bind them anywhere?
22:53 pmichaud yes.
22:53 pmichaud "if there are extra params, it's okay, just ignore them"
22:53 jonathan That sounds like a quite specific and odd thing.
22:54 pmichaud actually, it'd be very common
22:54 jonathan In PGE?
22:54 pmichaud yes.
22:54 pmichaud PGE regexes are technically methods
22:54 jonathan If it'd get a PGE win, it's probably an optimization worth considering.
22:54 pmichaud PGE regexes are technically Perl 6 methods
22:54 pmichaud and Perl 6 methods always have an assumed *%_ param
22:54 chromatic At compile time in PIR we know that we have named parameters; we could convert those to hash lookups.
22:54 pmichaud (i.e., a slurpy hash)
22:54 chromatic At least the first assignments.
22:55 pmichaud so therefore when PGE generates its regexes, it always has to put that slurpy param at the end, even though it's not going to use anything it gets there.
22:55 pmichaud because calling a regex with extra named arguments shouldn't throw an exception.
22:55 pmichaud the same is true for any method in Perl 6
22:56 pmichaud so, PGE ends up creating these slurpy hashes on every regex invocation
22:56 jonathan *nod*
22:56 pmichaud better would be
22:57 pmichaud PGE generates specific named parameters for the ones it's interested in, and ignores the rest
22:57 jonathan In Perl 6 it's harder to staticly know when ignoring the extra nameds is possible, but we likely can. And for PGE, I guess it's much easier.
22:58 pmichaud for PGE it's pretty easy.
22:58 pmichaud we don't expect PGE to be dealing with CALLER::<%_>
22:58 pmichaud (at least, I don't.)
22:59 TiMBuS joined #parrot
22:59 pmichaud but this is also part of the reason I'm in favor of a :capture  PMC type
22:59 pmichaud i.e., make it easy for me to unpack the arguments in whatever way I want.
23:00 pmichaud s/PMC type/param type/
23:01 pmichaud note that :capture doesn't have to imply creating a hash and array -- it just means that when I do
23:01 pmichaud .param pmc args :capture
23:01 pmichaud then args[0] gives me the first positional argument and  args['name']  gives me the named argument
23:02 GeJ From the i-have-some-free-time-to-do-the-gruntwork dept., could someone point me to a Perl-to-PIR converted test so I can work on some others?
23:02 pmichaud 'args' itself can be something that is very smart about locating the corresponding argument
23:03 pmichaud i.e.,   $I0 = args[0]   doesn't have to involve going through a PMC if the sub was invoked with an integer register as the first argument.
23:04 chromatic GeJ, http://rt.perl.org/rt3/Tic​ket/Display.html?id=60682
23:04 jonathan pmichaud: Laziness good. :-)
23:04 chromatic All this makes me want to have a smarter register allocator and SSA-based optimizations of PCT before generating PBC.  Or I could eat pie and play video games with my family.
23:05 pmichaud mmmmm pie
23:05 pmichaud but it could also mean that I could avoid doing   :flat   and :named :flat if I just wanted to pass all of the arguments on to another sub (e.g., in a delegation or tailcall)
23:06 GeJ chromatic: Ah, thanks. I'll try to warm up with some easy ones first and hopefully will go ballistics later this afternoon.
23:06 chromatic Problem is, we're not thinking of the advantages of registers, nor laziness.
23:06 pmichaud we aren't?
23:06 chromatic GeJ, I look forward to applying patches.
23:06 chromatic Currently we aren't.
23:06 pmichaud which "we" are we referring to?  ;-)
23:06 chromatic "We" as in "the current code".
23:07 pmichaud correct, the current code does not do this.
23:07 pmichaud I was hoping that the calling conventions branch might head in this direction, but I'm doubtful now.
23:08 chromatic I talked to allison about this yesterday, and she convinced me that unifying multiple disparate invocation styles into one is an advantage to making them fast and saner later.
23:08 pmichaud if you're convinced, then I feel much better.
23:09 chromatic It's much easier to optimize decent code than accreted, half-working experiments.
23:10 jonathan While that's true, releasing a 1.0 with a Lua compiler that is 2000 times slower than the standard engine isn't going to fly too well.
23:11 jonathan And I don't think it's slow because the Lua on Parrot compiler is bad, though there's doubtless room for optimization there too.
23:11 chromatic I agree, but I don't want to fall into the trap of thinking that we should delay 1.0 for this feature or that feature.
23:12 chromatic We could release a new version of Parrot every day if we wanted.
23:12 jonathan Sure, we're not saying 1.0 is production, but "a stable platform for building compilers" implies we want to attract compiler writers.
23:12 jonathan We all know that. It's a perception game. And of course, performance isn't a feature.
23:12 pmichaud jonathan: I'm cheerful -- the roadmap says that GC, contexts, and calling conventions will all be refactored in the Jan 2009 release.  1/2 :-)
23:13 jonathan pmichaud: And if it happens by then I'll be overjoyed. :-)
23:13 chromatic Our advantage isn't "Faster than LuaJIT"; it's "Interoperable with other languages, unencumbered and free, and the world's best compiler toolkit."
23:13 jonathan chromatic: I didn't say we had to be faster. I said we had to be under three orders of magnitude slower. :-)
23:14 chromatic Make PGE use fewer PMCs and we can probably double its speed.
23:14 jonathan Slower doesn't bother me. *This* much slower does.
23:14 chromatic The trick is knowing which PMCs we don't need and where.
23:14 pmichaud give me a way to ignore extra named params and I can likely save one pmc per regex invocation :-)
23:15 jonathan :capture :-)
23:15 jonathan It's just a...simple matter of implementation...
23:15 pmichaud (more than that, because we won't be converting named arguments into PMCs)
23:16 chromatic Write me a simple test case, and I'll see what I can do.
23:16 pmichaud (writing.)
23:17 chromatic Thanks.
23:18 nopaste "pmichaud" at 72.181.176.220 pasted "ignore extra named arguments test for chromatic" (12 lines) at http://nopaste.snit.ch/15119
23:18 nopaste "pmichaud" at 72.181.176.220 pasted "ignore extra named arguments test for chromatic (with current execution)" (12 lines) at http://nopaste.snit.ch/15120
23:18 pmichaud arggggh
23:18 nopaste "pmichaud" at 72.181.176.220 pasted "ignore extra named arguments test for chromatic (with current execution) FOR REAL THIS TIME" (17 lines) at http://nopaste.snit.ch/15121
23:19 pmichaud ideally I'd think something like
23:20 pmichaud .param pmc args   :slurpy :named :ignore
23:20 pmichaud .param pmc args   :slurpy :ignore
23:20 chromatic_away the :ignore flag
23:20 chromatic_away ?
23:21 pmichaud basically it means "accept extra arguments for purposes of calling this sub, but don't bother creating the slurpy pmc"
23:21 pmichaud (pick a more suitable flag or name besides :ignore)
23:21 pmichaud or if not a flag, then a directive.
23:22 pmichaud a flag is nice because we could also then do
23:22 pmichaud ($P0, $P1, $P2 :slurpy :ignore) = 'foo'()
23:22 ruoso joined #parrot
23:22 pmichaud which allows 'foo' to return extra (named) arguments that are also ignored.
23:23 pmichaud right now they're ignored by default, because chip rightly disliked the idea that we would have to always do
23:23 pmichaud ($P0, $P1 :slurpy) = 'foo'()
23:23 pmichaud when we only wanted the first return value back from foo
23:25 pmichaud _another_ possibility would be to turn the whole thing around.
23:25 pmichaud right now we throw exceptions when the number of (named) arguments doesn't match the params
23:26 pmichaud _except_ when a sub doesn't declare params, in which case they're ignored
23:26 pmichaud if we could have a flag or directive that tells the sub whether or not to do parameter arity checking, that'd be another way to approach it.
23:29 pmichaud i.e., I'm thinking we should perhaps try to solve RT #39844 while we're at this.
23:30 * pmichaud shuts up now.
23:30 Limbic_Region joined #parrot
23:31 * jonathan gets some rest now
23:31 jonathan Taking family to Vienna tomorrow, so don't know that I'll be around much.
23:32 jonathan It'll be January before I really dig back into stuff properly.
23:32 pmichaud jonathan: okay.
23:32 pmichaud jonathan: can you give me a quick overview of how subset types work?
23:32 pmichaud (I haven't looked at the code yet.)
23:32 jonathan pmichaud: From what angle?
23:32 pmichaud I'll ask slighly differently.
23:32 jonathan But basically, all you need to know from a type-checking angle is to tall .ACCEPTS - just smart-matching.
23:32 jonathan *call
23:32 pmichaud what's the difference between "type" and "constraints" in Signature?
23:33 jonathan Ah. That matters. :-)
23:33 jonathan If you have a simple type, either a single role or a single class name, then it goes in type
23:34 jonathan If you have either multiple type names or one type name that refers to a subset type, it goes in constraints.
23:34 jonathan Examples
23:34 purl hmmm... Examples is http://shorl.com/bynygruhofrebru
23:34 jonathan sub foo(Int $a) { ... } # type is Int, constraints is empty
23:34 pmichaud then iiuc, 'type' is an optimization for mmd on simple types, while everything else goes in constraints?
23:35 jonathan sub foo(R1 R2 $a) { ... } # R1 and R2 go in constraints
23:35 jonathan It's deeper than optimization.
23:35 jonathan Note that
23:35 purl somebody said Note that was a really bad picture of me, but it was the only thing I could find at this hour.
23:36 jonathan sub foo(Int where { $_ > 0 }) { ... } # type Int, plus one constraint
23:36 jonathan oh
23:36 jonathan I meant sub foo(Int $a where { $_ > 0 })
23:36 jonathan And was calling to follow it with
23:36 jonathan sub foo(Int where { $_ > 0 } $a)
23:36 jonathan Which mean the smae thing.
23:37 jonathan Basically if there's at most one type that is a class or a role, it goes in type.
23:37 jonathan If there is more than one class/role it's more complex and they go in constraints.
23:37 pmichaud what would happen if that example ended up with Int and where in constraints ?
23:37 pmichaud (and type empty)
23:37 apeiron joined #parrot
23:38 jonathan Type should never be empty, but rather Any, otherwise auto-threading won't work. But the direct answer to what you asked, is that MMD would not consider the Int type when doing type narrowness analysis.
23:38 jonathan And thus if you wrote a sub foo(Num $a) { ... }
23:38 pmichaud is the dispatcher currently smart enough to handle the case when a parameter isn't a subclass of Any?
23:39 jonathan And you'd not put Int in the type slot
23:39 jonathan Then the Num would come out more narrow.
23:39 pmichaud sorry, argument isn't a subclass of Any
23:39 jq joined #parrot
23:39 jonathan Multi-dispatch will currently say no applicable candidates, I believe.
23:40 jonathan perl6: multi foo(Int $x) { say 42 }; foo(1); foo(1 | 2);
23:40 pmichaud that might have some implications for language interop
23:40 polyglotbot OUTPUT[42␤No applicable candidates found to dispatch to for 'foo'␤current instr.: '_block14' pc 100 (EVAL_13:46)␤called from Sub '!UNIT_START' pc 16073 (src/builtins/guts.pir:327)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir:508)␤called from Sub
23:40 polyglotbot ..'parrot;PCT;HLLCompiler;evalfiles' pc 1217 (src/PCT/HLLCompiler.pir:...
23:40 jonathan We'll worry about that when we have .HLL and some languages to interporate with.
23:40 pmichaud I already have languages to interoperate with:  PGE
23:41 cognominal_ joined #parrot
23:41 jonathan Then we'll have to make Any do something special when the call comes from a different HLL.
23:41 jonathan Or handle it in signature binding.
23:41 pmichaud right.
23:42 pmichaud again, I was just curious.
23:42 jonathan I don't fancy hanlding it until we have .HLL in place unless we really have to.
23:42 jonathan When we have that, it's a dynop that cheaply checks if the caller is from a different HLL.
23:42 pmichaud I give about a 40% estimate that Perl 6 ends up re-thinking Junction handling before we're done.  :-)
23:43 pmichaud (note "Perl 6" not "Rakudo" :-)
23:43 jonathan I like the way it works from a typing point of view.
23:43 jonathan But I agree it makes language inter-op a tad interesting.
23:43 Limbic_Region pmichaud: the synopses officially live in pugs repo now right?
23:43 pmichaud L_R:  that's correct.
23:43 pmichaud L_R:  we still haven't done the magic to make all of the related websites point to the right place.
23:44 pmichaud (and I'm not necessarily the person with that magic.)
23:44 jonathan pmichaud: If you're actually going to enforce the Any type - which I don't think we are right now - we might get some interesting things showing up.
23:44 Limbic_Region my question has more to do with the draft synopses that only lived there
23:44 Limbic_Region for instance - S17
23:44 jonathan (As in, during sig binding.)
23:44 pmichaud jonathan: actually, I was wondering what happens if I don't enforce it.
23:44 pmichaud if not enforcing it is what we do now, great.
23:44 jonathan pmichaud: If it's easy for you to try and see the fallout, please try it.
23:45 jonathan If you don't, I will have to in a couple of weeks anyway.
23:45 pmichaud it will be easy to do after the refactor.
23:45 pmichaud I'm _very_ pleased with the way this refactor is shaping up.
23:45 jonathan (Because we need to for junctions.)
23:45 Limbic_Region pmichaud: http://svn.pugscode.org/pugs/doc​s/Perl6/Spec/S17-concurrency.pod  # there is no mention of coroutines anywhere else so I am wondering if these draft synopses should be moved?
23:45 shorten Limbic_Region's url is at http://xrl.us/beay9z
23:45 pmichaud so far actions.pm is about 1500 lines shorter.
23:45 jonathan I didn't look at everything, but I did look at actions.pm after your changes and liked what I saw.
23:45 jonathan ...wow...
23:45 pmichaud (there's a lot of code left to be restored, but it's a lot shorter)
23:46 jonathan How many less comments do we now have? ;-)
23:46 jonathan I think one of us has a tendancy to write more of those than the other. :-)
23:46 pmichaud some of that too.  But I'm trying to emulate your commenting style as much as I can.
23:46 jonathan I'm not sure how helpful my comments are to others.
23:46 pmichaud I can answer that:  they're very helpful.
23:46 pmichaud to me, at least.
23:46 jonathan OK, good. That's two of us. :-)
23:46 pmichaud which is why I'm trying to do the same (with lesser success)
23:47 jonathan Do you write code then comments?
23:47 jonathan Or write comments and then code?
23:47 pmichaud code then comments
23:47 jonathan Ah.
23:47 pmichaud I think in code.
23:47 jonathan That's probably where we differ. :-)
23:47 pmichaud to me, code is a more natural medium of expression than prose.
23:47 jonathan I can appreciate that.
23:48 pmichaud L-R:  moving synopsis discussion over to #perl6
23:48 jonathan I'm also the kind to write the opening and closing braces of a block and then to fill in the middle. :-)
23:48 jonathan Each to their own.
23:48 * jonathan certainly wouldn't claim to be normal.
23:49 pmichaud clearly each of our styles works for us individually, and is workable as a team :-)
23:49 jonathan Aye. Which is fine. :-)
23:50 jonathan How much % of the spectests does the refactor branch currently regress?
23:50 jonathan Like, is it mostly there, or a long way off?
23:53 pmichaud it's a way off, but that's because I'm still working on simple things like list assignment.
23:53 jonathan Ah, OK.
23:53 pmichaud Like, I found a brain-o an hour or so ago and had to re-regress a bit.
23:53 pmichaud a lot more passes than I would've expected at this point.
23:53 pmichaud mostly I'm catching little things here and there.
23:54 jonathan I guess you're reviwing/fixing a lot of stuff I've shoved in over the last year too. :-)
23:54 jonathan It's a _big_ refactor.
23:55 jonathan I expect it'll stand us in a good place for the next bunch of stuff.

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

Parrot | source cross referenced