Camelia, the Perl 6 bug

IRC log for #parrot, 2010-09-10

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 whiteknight is there a standalone, pure-parrot POD parser?
00:00 Coke tools/dev/ops_not_tested.pl
00:00 Coke that probably doesn't need it.
00:00 Coke (also, shouldn't that be a .t?)
00:00 Paul_the_Greek What if some configuration program ever asked for all the files in a directory tree? Then it will get backslashes.
00:00 Coke whiteknight: not SFAIK. trivial to write one in nqp, though.
00:01 Coke Paul_the_Greek: assuming that is true... so?
00:01 Coke is that configuration program written in perl5?
00:01 Paul_the_Greek Then it would be the case that matching only / would fail.
00:01 Coke (if so, it's using File::Spec, if that matters)
00:02 Paul_the_Greek Does Perl5 changed \ to / ?
00:02 Coke perl5 has modules to deal with that.
00:02 Paul_the_Greek Just wondering if we could ever get a \ programmatically.
00:03 Coke if it ever comes up, we have {slash}
00:03 dalek nqp-rx: 7188f73 | pmichaud++ | src/NQP/ (2 files):
00:03 dalek nqp-rx: Initial version of trait_mod:is and "is pirflags" trait for subs.
00:03 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7​188f73601c673c950b5f20f484e12928cfcdbd7
00:03 dalek nqp-rx: f3dabb7 | pmichaud++ | src/NQP/ (2 files):
00:03 dalek nqp-rx: Add traits to method definitions.
00:03 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/f​3dabb701a266333e448ed2307f482ed7314e373
00:03 dalek nqp-rx: 95acd86 | pmichaud++ | t/nqp/52-vtable.t:
00:03 dalek nqp-rx: Add tests for "is pirflags<:vtable(...)>".
00:03 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/9​5acd86bffd22fecd55ac4f6bb5c8e6ab1553720
00:03 dalek nqp-rx: e528a3d | pmichaud++ | t/nqp/52-vtable.t:
00:03 dalek nqp-rx: Oops.  Failing to plan() is like planning to fail().
00:03 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/e​528a3d0d0529d801a078f8e98d4ac725ff2f036
00:04 Coke in fact, headerizer should be rewritten to avoid that regex entirely and use File::*... but it's probably not worth it.
00:04 Paul_the_Greek Yes, someone else was complaining that this is really the wrong solution to the problem.
00:04 sorear whiteknight: what kind of POD do you want to parse?  Parrot uses all three
00:04 whiteknight sorear: there are types?
00:05 sorear POD5 (in our Perl5 and C), POD6 (in our NQP), and PseudoPOD (in docs/book)
00:06 Paul_the_Greek In my makefile: PERL             = c:\strawberry\perl\bin\perl.exe
00:06 pmichaud nqp-rx can now create vtable methods :)
00:06 Paul_the_Greek And this gem: LINKARGS         = $(LDFLAGS) $(LD_LOAD_FLAGS) "C:/Parrot/Develop/parrot\libparrot.dll"
00:08 Paul_the_Greek Take it easy, folks. See you tomorrow.
00:08 Paul_the_Greek left #parrot
00:10 whiteknight pmichaud++
00:11 whiteknight pmichaud: did you ever take a look at that HLL patch I msg'd you?
00:11 whiteknight I haven't wanted to play with it any further if you don't think I'm going in a good direction
00:11 pmichaud whiteknight: oops, no, I didn't.  I think it's still in my purl messages though.
00:11 dalek parrot: r48893 | coke++ | trunk/tools/dev/headerizer.pl:
00:11 dalek parrot: add a little more explanation about why we need this both ways. minor code change.
00:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48893/
00:11 dalek parrot: r48894 | nwellnhof++ | trunk (3 files):
00:11 dalek parrot: Use Hash instead of Hash PMC in PackFile_ConstTable
00:11 dalek parrot: The Hash PMC might get collected and destroyed by GC.
00:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48894/
00:12 pmichaud I'd like to finish what I'm working on now (a data_json replacement)
00:12 whiteknight pmichaud: that's okay, no rush. I've got plenty of other projects to keep myself busy too
00:12 pmichaud then I can look at the patch to see if it's in the right direction :)
00:12 cotto_work nwellnhof: does that hash get destroyed anywhere?
00:12 whiteknight thanks, I would really appreciate it
00:12 cotto_work (referring to r48894)
00:13 nwellnhof cotto: i just noticed that, too. wait for my next commit.
00:13 cotto_work nwellnhof++
00:15 dukeleto seen Austin_Hastings
00:15 purl Austin_Hastings was last seen on #parrot 30 days, 22 hours, 30 minutes and 57 seconds ago, saying: also <tt>  [Aug 10 01:44:38 2010]
00:15 aloha Sorry, I haven't seen Austin_Hastings.
00:15 dukeleto seen Austin
00:15 purl Austin was last seen on #parrot 26 days, 16 hours, 13 minutes and 44 seconds ago, saying: bah. ww  [Aug 14 08:02:00 2010]
00:15 aloha Sorry, I haven't seen Austin.
00:19 whiteknight what is \h in NQP grammar?
00:20 dukeleto whiteknight: i think \h is horizontal whitespace in Perl 6
00:20 bacek_at_work horizontal space
00:20 whiteknight okay, thanks
00:21 whiteknight I was going to try to copy the POD parsing stuff out of the NQP compiler, but it's way over my head right now
00:28 dalek parrot: r48895 | nwellnhof++ | trunk/src/packfile.c:
00:28 dalek parrot: Don't forget to free the hash in PackFile_ConstTable
00:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48895/
00:28 pmichaud and it's POD 6, if that makes a different.
00:28 pmichaud *difference.
00:32 whiteknight I'm thinking about giving up on POD entirely for this. Converting what I have into good-looking HTML is turning out to just be way too much work
00:32 davidfetter joined #parrot
00:33 whiteknight I can probably convert it all to textile without too much effort.
00:39 * whiteknight is going to bed. Will think about it tonight
00:39 whiteknight left #parrot
00:43 cotto_work clock?
00:43 purl cotto_work: LAX: Thu 5:43pm PDT / CHI: Thu 7:43pm CDT / NYC: Thu 8:43pm EDT / LON: Fri 1:43am BST / BER: Fri 2:43am CEST / IND: Fri 6:13am IST / TOK: Fri 9:43am JST / SYD: Fri 10:43am EST /
00:43 cotto_work early to bed..., I guess
00:52 Coke left #parrot
01:02 dalek parrot: r48896 | nwellnhof++ | trunk (2 files):
01:02 dalek parrot: Add PARROT_NOINLINE to valid headerizer macros
01:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48896/
01:04 NotFound I think I've finally got a fix for amd64 --optimize
01:06 cotto_work NotFound++
01:06 NotFound It was StringBuilder, after all.
01:07 tcurtis left #parrot
01:09 NotFound r48897
01:11 pmichaud http://gist.github.com/572880  # a JSON compiler written in nqp
01:12 pmichaud http://gist.github.com/572883  # some samples
01:13 pmichaud oh, I can do a little better here.
01:14 NotFound pmichaud: that's been fast
01:17 pmichaud http://gist.github.com/572889 # better version of json.nqp -- autoprint now calls _dumper automatically when in interactive mode.
01:18 AzureSto_ left #parrot
01:18 dalek parrot: r48897 | NotFound++ | trunk/src/pmc/stringbuilder.pmc:
01:19 AzureStone joined #parrot
01:19 pmichaud yeah, I'm happy with json.nqp.  Only took me an hour to write (I detoured to implement 'pirflags' trait in NQP :)
01:20 dalek parrot: use appropiate string memory management functions instead of rolling its own in StringBuilder
01:20 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48897/
01:20 dalek left #parrot
01:20 GeJ left #parrot
01:20 GeJ joined #parrot
01:20 TiMBuS left #parrot
01:20 mj41_ joined #parrot
01:21 Themeruta joined #parrot
01:21 particle1 joined #parrot
01:21 Hunger left #parrot
01:22 nwellnhof_ joined #parrot
01:22 dalek joined #parrot
01:22 TiMBuS joined #parrot
01:23 particle left #parrot
01:23 nwellnhof left #parrot
01:23 Hunger joined #parrot
01:23 NotFound left #parrot
01:23 nwellnhof_ is now known as nwellnhof
01:24 Coke joined #parrot
01:25 Themeruta is now known as NotFound
01:25 mj41 left #parrot
01:25 mj41_ is now known as mj41
01:26 cotto ~~
01:28 cotto nqp-rx: a tool that allows pmichaud to write compilers faster than previously though to be possible
01:28 NotFound Can someone confirm the fix for amd64 --optimize?
01:28 nwellnhof_ joined #parrot
01:29 dalek left #parrot
01:29 NotFound Now we just need a comparable tool for writing compiler's user manual ;)
01:29 pmichaud actually, I'm thinking this might serve as the basis for a great nqp tutorial.
01:30 dalek joined #parrot
01:30 pmichaud it's relatively short, includes a protoregex, does compilation (to PIR now, can also make it go straight to data)
01:30 particle1 left #parrot
01:31 pmichaud the only really complicated part is the creation of hashes, since PCT doesn't support those natively.
01:31 s1n left #parrot
01:31 cotto it compiles to pir that generates the data structure?
01:31 NotFound pmichaud: and you can show the pir version to compare size and legibility.
01:31 pmichaud cotto: yes -- e.g. if you needed to embed into a larger program
01:32 pmichaud so it's an example of a code generating compiler, but with a couple of additional methods it could also go straight to a data structure.
01:32 pmichaud (bypassing the pir)
01:32 NotFound I *need* a confirmation. I've been fighting this beast for hours!
01:32 pmichaud NotFound: one moment
01:32 dngor left #parrot
01:32 krunen left #parrot
01:32 dngor joined #parrot
01:32 autark left #parrot
01:33 autark joined #parrot
01:33 treed left #parrot
01:33 treed joined #parrot
01:33 krunen joined #parrot
01:33 ascent left #parrot
01:33 particle joined #parrot
01:33 ascent joined #parrot
01:33 nwellnhof left #parrot
01:33 sorear left #parrot
01:33 smash left #parrot
01:33 sorear joined #parrot
01:33 perlite left #parrot
01:33 nwellnhof_ is now known as nwellnhof
01:33 smash joined #parrot
01:33 Coke left #parrot
01:33 Coke joined #parrot
01:33 perlite joined #parrot
01:33 jsut left #parrot
01:33 cosimo left #parrot
01:33 dukeleto left #parrot
01:33 Util left #parrot
01:33 jsut joined #parrot
01:33 cosimo joined #parrot
01:34 TiMBuS left #parrot
01:34 s1n joined #parrot
01:34 TiMBuS joined #parrot
01:35 dalek parrot: r48898 | NotFound++ | trunk/tools/dev/nci_thunk_gen.pir:
01:35 dalek parrot: avoid svn playing with the Id mark for the generated files in nci_thunk_gen
01:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48898/
01:36 dalek nqp-rx: 129c25b | pmichaud++ | examples/json.nqp:
01:36 dalek nqp-rx: Add json.nqp, an example of a JSON compiler written entirely in NQP.
01:36 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/1​29c25b48e4dbb8c9fe355ce8f8a578be067f3d3
01:38 particle1 joined #parrot
01:38 Util joined #parrot
01:39 particle left #parrot
01:39 slavorg left #parrot
01:39 slavorg joined #parrot
01:42 NotFound pmichaud: here goes other difference between git and svn builds
01:43 davidfetter left #parrot
01:43 dukeleto joined #parrot
01:44 plobsing left #parrot
01:45 perlite_ joined #parrot
01:45 plobsing joined #parrot
01:45 smash left #parrot
01:45 smash joined #parrot
01:45 krunen left #parrot
01:45 theory left #parrot
01:45 krunen joined #parrot
01:45 theory joined #parrot
01:45 perlite left #parrot
01:51 pmichaud parrot r48897 builds on my machine okay
01:51 pmichaud running parrot tests and rakudo spectests
01:52 pmichaud all parrot tests pass on 48897
01:52 pmichaud (rakudo spectests take a little longer)
01:52 pmichaud testing nqp with 48897
01:55 cotto NotFound, what are you referring to?
01:55 pmichaud rakudo builds on r48897
01:55 Hunger left #parrot
01:55 pmichaud it's looking really good
01:55 Hunger joined #parrot
01:55 NotFound Sorry for the speed. I hope that now with the problem located a better solution can be found.
01:55 pmichaud it doesn't seem to be that much slower, at least not yet.
01:56 pmichaud urg, I'm getting spectest failures in rakudo :-(
01:56 NotFound cotto: The git/svn thing? r48898
01:58 cotto Yeah.  That's a fun one.
02:01 pmichaud drat.... my son shutdown the laptop while I was in the middle of the spectest run :-(
02:01 pmichaud trying again
02:02 pmichaud oh
02:02 pmichaud cotto's fix for get_class breaks Rakudo
02:03 cotto sad face
02:03 purl
02:03 pmichaud http://gist.github.com/572939
02:04 cotto Do you know how to fix that or should I dig in?
02:05 pmichaud looking
02:05 pmichaud but I suspect it means we need a revert+deprecation
02:05 cotto whee
02:08 kid51 joined #parrot
02:09 kid51 ~~
02:14 cotto let me know if you want me to back it out and add a proper deprecation notice
02:14 pmichaud I'm not sure exactly why it's failing.
02:14 NotFound winxed build and pass tests, plumage builds and works fine with trunk in amd64 --optimize
02:15 pmichaud and using --trace=1 is giving me segfaults.
02:15 pmichaud we fail a lot of 'isa' checks, though.
02:17 pmichaud anyway, backing out the change seems to be most expedient.
02:17 cotto I'll do that.
02:17 pmichaud afk for a bit -- errands
02:20 NotFound And plumage successfully fetches and builds rakudo. trunk looks stable enough for me.
02:33 cotto pmichaud, reverted
02:35 janus left #parrot
02:39 Coke left #parrot
02:42 dalek parrot: r48899 | cotto++ | trunk/src/oo.c:
02:42 dalek parrot: back out the functional part of r48851, which broke Rakudo
02:42 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48899/
02:50 kid51 Darwin/PPC: make test PASS at r48898
02:50 GeJ /e/winw
02:50 pmichaud cotto: testing
02:51 kid51 Linux/i386 (no --optimize): make fulltest pass at r48898 (absent codingstd tests which I'm now correcting)
02:51 GeJ grumph.
02:52 theory left #parrot
02:59 dalek parrot: r48900 | jkeenan++ | trunk (2 files):
02:59 dalek parrot: [codingstd] No trailing whitespace.
02:59 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48900/
02:59 dalek parrot: r48901 | chromatic++ | branches/hash_inlined_func/src/hash.c:
02:59 dalek parrot: [hash] Fixed annotations for hash_compare().
02:59 dalek parrot: See also r48879.
02:59 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48901/
02:59 dalek parrot: r48902 | NotFound++ | trunk/t/pmc/lexinfo.t:
02:59 dalek parrot: more tests for LexInfo
02:59 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48902/
03:07 janus joined #parrot
03:22 kid51 left #parrot
03:33 dalek parrot: r48903 | jkeenan++ | branches/hash_inlined_func/src/hash.c:
03:33 dalek parrot: [codingstd] No trailing whitespace.  Fix perlcriticisms.
03:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48903/
03:35 cotto pmichaud, two of the tests fail but the exception doesn't get thrown.  Is that what you'd hoped for?
03:36 dukeleto hola
03:36 purl hey, dukeleto.
03:39 cotto good evening, dukeleto
03:40 pmichaud cotto: (had to run errand -- just got back)
03:40 pmichaud yes, I get two errors also.  Looking.
03:40 pmichaud Yes, that's much better than I was getting earlier.
03:43 tcurtis joined #parrot
03:44 pmichaud something looks wrong with method dispatch, though.
03:44 pmichaud oh.
03:48 pmichaud I think we can declare the two remaining failures to be Rakudo bugs.  It's weird that they show up now and didn't before, however.
03:52 cotto There have been intervening changes.
03:52 pmichaud yes, but I don't see which change would explain this.
03:53 pmichaud what's happening is that the .trans method from Parrot's String PMC is now being called in preference to the .trans method on Rakudo's Str type
03:53 cotto The only part of the change I didn't revert was the docs fix.
03:53 pmichaud where previously it was the other way around.
03:53 pmichaud I don't think it's related to the change you made; I'm guessing it's some other change over the past 7 days that has caused the difference.
03:53 pmichaud (Rakudo hasn't built from trunk since Sep 2)
03:54 cotto Why don't we have a big red siren going?
03:54 pmichaud well, it probably built with versions of parrot after Sep 2... but we hadn't needed to bump PARROT_REVISION until a few days ago
03:55 pmichaud so I just know that something changed between 48768 and current head that is causing string dispatch to act differently.
03:55 pmichaud s/string dispatch/methods on String/
03:57 dukeleto pmichaud: sounds like bisect to the rescue
03:57 pmichaud bisect won't help here.
03:58 pmichaud because there were unrelated errors blocking the build.
03:58 dalek plparrot: 4c20d42 | leto++ | / (2 files):
03:58 dalek plparrot: Clean up data marshalling code since rakudobugs have been fixed; add a test for Mu
03:58 dalek plparrot: review: http://github.com/leto/plparrot/commit/4​c20d421fcbbe591afa072956086a651905918fa
03:58 pmichaud bisect only helps if there's *one* problem.
03:58 dukeleto pmichaud: you can exit bisect with a special exit code if the build doesn't work
03:58 dukeleto pmichaud: bisect is very flexible
03:58 dukeleto pmichaud: you can only choose to exit with a passing exit code for some arbitrary condition
03:59 pmichaud dukeleto: but if the change occurred in a version of parrot that doesn't build rakudo, how do I detect that?
03:59 dukeleto pmichaud: like running one specific test with certain params
03:59 pmichaud dukeleto: I totally don't understand.
03:59 dukeleto pmichaud: touche. but you can find bounds on what that rev is with bisect
04:00 dukeleto pmichaud: git bisect takes a script as an argument that exits with a special exit code to denote "good/bad/ignore"
04:01 dukeleto pmichaud: so you ignore the revs that don't build, and it will stop when it can't narrow down the commit range any further
04:01 pmichaud dukeleto: I don't think that's going to significantly help me locate the problem.
04:01 pmichaud but thanks.
04:01 dukeleto pmichaud: just a thought, but yes, reading the code will probably be faster :)
04:02 dukeleto pmichaud: for larger ranges of commits tho, bisect can really be the only feasible way
04:02 pmichaud well, I know the endpoint of the range already -- it's 48897
04:03 pmichaud that's the first point at which rakudo started building again
04:04 dukeleto aloha, msg whiteknight any clue about the error that i get when trying to run the PLA test suite? http://gist.github.com/572779 seems to be a kakapo issue
04:04 aloha dukeleto: OK. I'll deliver the message.
04:05 cotto you could make applying my revert part of the bisect script
04:05 pmichaud cotto: your patch isn't what was blocking rakudo prior to 48897
04:09 pmichaud I suppose I could try building without --optimize, though.
04:10 pmichaud I'll do that if I'm not able to locate it otherwise.
04:21 jsut_ joined #parrot
04:22 dalek left #parrot
04:23 pmichaud left #parrot
04:23 dukeleto left #parrot
04:23 PerlJam left #parrot
04:23 Util left #parrot
04:24 nwellnhof left #parrot
04:26 jsut left #parrot
04:29 dalek joined #parrot
04:34 dukeleto joined #parrot
04:34 PerlJam joined #parrot
04:38 pmichaud joined #parrot
04:43 Util joined #parrot
05:02 baest joined #parrot
05:17 sorear seen Infinoid
05:17 purl Infinoid was last seen on #parrot 1 days, 18 hours, 42 minutes and 19 seconds ago, saying: Ok :)  [Sep  8 10:35:21 2010]
05:17 aloha Infinoid was last seen in #parrot 1 days 18 hours ago saying "Ok :)".
05:17 sorear Infinoid: ping
05:22 theory joined #parrot
05:38 theory left #parrot
06:08 uniejo joined #parrot
06:15 fperrad joined #parrot
06:19 dukeleto fperrad: hello
06:29 dalek parrot: r48904 | fperrad++ | trunk/tools/dev/fetch_languages.pl:
06:29 dalek parrot: [languages] PIR/Pirate moves on �http://github.com/parrot/pir.git
06:29 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48904/
06:42 cottoo joined #parrot
06:42 cotto left #parrot
06:45 cottoo is now known as cotto
07:41 cottoo joined #parrot
07:41 cotto left #parrot
07:42 cottoo is now known as cotto
07:51 luben NotFound++ # for fixing amd64 optimized builds
08:05 esskar joined #parrot
08:08 dalek left #parrot
08:09 dalek joined #parrot
08:31 luben_work joined #parrot
08:32 dalek plparrot: 767e473 | leto++ | t/sql/plperl6.sql:
08:32 dalek plparrot: Test for returning Failure objects from PL/Perl6
08:32 dalek plparrot: review: http://github.com/leto/plparrot/commit/7​67e473e243556c60e23f7577fee65bb02781ef3
08:32 dalek plparrot: 8896891 | leto++ | t/sql/plperl6.sql:
08:32 dalek plparrot: Revert "Test for returning Failure objects from PL/Perl6"
08:32 dalek plparrot:
08:32 dalek plparrot: This reverts commit 767e473e243556c60e23f7577fee65bb02781ef3.
08:32 dalek plparrot: There is a failure branch tracking this now. Let's hope it isn't
08:32 dalek plparrot: aptly named.
08:32 dalek plparrot: review: http://github.com/leto/plparrot/commit/8​896891dbb4e97f06410ac2114545adb7614c731
08:45 smash mornin' everyone
08:45 dalek parrot: r48905 | luben++ | branches/hash_inlined_func (6 files):
08:45 dalek parrot: merge recent changes in master
08:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48905/
08:45 dalek parrot: r48906 | luben++ | branches/hash_inlined_func (22 files):
08:45 dalek parrot: Bring up to date with master
08:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48906/
08:45 dalek parrot: r48907 | luben++ | branches/hash_inlined_func/compilers/imcc/pbc.c:
08:46 dalek parrot: fix confilict in compilers/imcc/pbc.c
08:46 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48907/
08:49 tcurtis left #parrot
08:53 JimmyZ joined #parrot
08:56 JimmyZ_ joined #parrot
09:00 JimmyZ left #parrot
09:00 JimmyZ_ is now known as JimmyZ
09:08 pmichaud hmmmm.... the type of PMC methods changed without any deprecation notice (that I can see)
09:10 pmichaud that's what is currently causing Rakudo failures in trunk
09:22 pmichaud http://gist.github.com/573362   # type of PCC methods changed from 2_6_0 to present
09:22 pmichaud I think I can work around the change, but will have to do it later this morning after I get some sleep.
09:23 sorear How does Rakudo notice?
09:24 pmichaud Str.trans always fails
09:25 pmichaud The trans method defined in Cool (and inherited by Str)  isn't overriding the trans PCCMETHOD provided by Parrot's String PMC
09:25 sorear Yes, but how do type names affect that
09:25 pmichaud ah.  various parts of rakudo and p6object have to test specifically for pccmethods, which aren't Parrot Sub PMCs
09:25 pmichaud so all of those tests are now invalid.
09:26 pmichaud currently they test for objects of type "NCI" (which is what PCCMETHODS were instances of)
09:28 pmichaud anyway, commit r48790 is the one that broke things there, for people who want to consider the issue further.
09:29 pmichaud sleep time for me -- bbl
09:32 JimmyZ good night, pmichaud
10:00 JimmyZ left #parrot
10:06 Infinoid sorear: pong
10:08 sorear Infinoid: I was wondering if you could give me the rundown on dalek's architecture, or who else to ask
10:08 Infinoid the bot architecture, or the feed plugins?
10:09 sorear mostly the latter
10:09 sorear I had a crazy idea earlier
10:09 sorear a web interface for dalek
10:09 Infinoid Cool.  Ok
10:10 sorear when github posts to feather.perl6.nl/~dalek/rakudo, dalek immediately rechecks the feed
10:10 sorear I'm not going to ask you for this, it's too big to impose like that ;)
10:10 sorear but I'd like to try it
10:10 Infinoid Sounds interesting
10:10 Infinoid dalek runs a perl5 bot software package called botnix, which for us, defines what the plugin architecture and timer API looks like
10:11 Infinoid The way the dalek-plugins stuff is set up, each feed is a separate "plugin" (many of which are autogenerated by the googlecode, github and gitorious base classes)
10:12 luben left #parrot
10:12 Infinoid rakudo is an example of one which is not currently autogenerated, because it has a nondefault set of channels (e.g. it outputs to freenode as well as the default magnet/#parrot)
10:13 Infinoid But it's still implemented mostly by the base class, as you can see: http://github.com/Infinoid/dalek-plugins​/blob/master/modules/local/rakudolog.pm
10:14 sorear why is drain 700?
10:15 Infinoid I don't know, I didn't actually install that instance.  I'm happy to keep referring to the github repo for now so you can follow along
10:15 Infinoid As I mentioned, currently the feed checking is triggered by a timer callback.  In githubparser's case, the timer is registered by try_link (which is what detects that the link is a github link and parses out the author/project/branch stuff), and the callback function itself is process_project
10:16 Infinoid If you have an alternate update scheme, you can just call process_project directly.  Note, though, that it plays some package/class tricks to get the local state back
10:16 Infinoid botnix doesn't call it as a class instance, so there's a global hash to store per-project state.
10:17 Infinoid The run_function sub in http://github.com/Infinoid/dalek-plug​ins/blob/master/modules/local/test.pl emulates the way botnix calls the callbacks
10:18 Infinoid The rest of github probably wouldn't have to change much, but it's fairly well commented if you want to read through it.  http://github.com/Infinoid/dalek-plugins/​blob/master/modules/local/githubparser.pm
10:20 Infinoid Alternately, if you already know the hash of what you want it to output, you can skip the feed parsing stuff entirely and just use try_item()
10:21 Infinoid Oops, that POD is out of date.  It's no longer using XML::Atom::Entry objects
10:21 Infinoid s/try_item/output_item/
10:22 Coke joined #parrot
10:30 Infinoid sorear: As for the installation on feather, I'm not sure who really "owns" dalek.  I know diakopter has been involved in its maintenance in the past
11:30 aloha left #parrot
11:31 bacek left #parrot
11:37 Coke left #parrot
12:31 ruoso joined #parrot
12:35 yuriguy joined #parrot
12:36 yuriguy left #parrot
12:53 whiteknight joined #parrot
13:02 whiteknight good morning, #parrot
13:08 arnsholt How do I invoke a method in a parent class on a P6object?
13:11 whiteknight i have no idea
13:11 jnthn get the parent
13:11 jnthn $P0 = find_method the_parent, 'name'
13:11 jnthn $P0(inv, arg1, arg2, ...)
13:11 whiteknight how to get the parent?
13:12 arnsholt self.HOW.get_parrotclass(self) it turns out
13:12 arnsholt (Which was the real issue, it turns out)
13:13 arnsholt Third time's the charm it appears. I've been digging around in P6object.pir a couple times trying to figure it out
13:13 whiteknight is there anything like good documentation for P6object?
13:13 jnthn whiteknight: Well, in Perl 6 you tend to either be explicit ($foo.Parent::methodname()) or be doing deferal using nextsame etc
13:13 jnthn whiteknight: There's a bunch of POD in the P6object.pir
13:14 arnsholt Yeah, that was helpful in the end
13:14 jnthn whiteknight: But P6object.pir is a tad lacking in the introspection side of things, so you sometimes end up doing things directly on the Parrot class.
13:14 jnthn whiteknight: The new Perl 6 objects implementation will be rather better on that front.
13:15 jnthn The answer then will probably be obj.^mro[1] or some such to get the immediate "parent" though
13:16 jnthn But in an MI world parent is a bit handwavey.
13:17 arnsholt True. What I needed was essentially nextwith($fiddled_arguments)
13:17 Patterner left #parrot
13:18 arnsholt So that my compiler knows whether it's compiling a program or a query (yay Prolog =)
13:27 Psyche^ joined #parrot
13:27 Psyche^ is now known as Patterner
14:06 uniejo left #parrot
14:21 pmichaud good morning, #parrot
14:23 fperrad left #parrot
14:25 whiteknight good morning, pmichaud
14:35 patspam joined #parrot
14:37 theory joined #parrot
14:40 jan left #parrot
15:07 tadzik joined #parrot
15:25 mikehh left #parrot
15:25 luben_work left #parrot
15:26 tadzik left #parrot
15:29 bacek joined #parrot
15:35 aloha joined #parrot
15:36 dalek rakudo: c957c9f | pmichaud++ | build/PARROT_REVISION:
15:36 dalek rakudo: Bump PARROT_REVISION to update to a known working 64-bit Parrot (passes all spectests).
15:36 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​957c9fca739d896c8d5fc88e70be2ae360339f6
15:38 cotto_work ~~
15:43 dalek parrot: r48908 | pmichaud++ | trunk/runtime/parrot/library/P6object.pir:
15:43 dalek parrot: [p6object]:  PCCMETHODS changed type from 'NCI' to 'NativePCCMethod' in r48790 -- update P6object to match.
15:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48908/
15:43 dalek parrot: r48909 | pmichaud++ | trunk/src/pmc/nativepccmethod.pmc:
15:43 dalek parrot: [core]:  NativePCCMethods need to be marked "does invokable".
15:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48909/
15:45 pmichaud I'm trying to come up with a helpful response to https://trac.parrot.org/pa​rrot/ticket/1491#comment:5  and failing.  :-|
15:46 cotto_work "do it"?
15:54 dalek rakudo: c84d0d3 | pmichaud++ | build/PARROT_REVISION:
15:54 dalek rakudo: Oops.  *This* is the correct Parrot revision for 64-bit builds -- fixes c957c9f.
15:54 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​84d0d37daeec765e0836b7d739a13d50fc63d54
15:55 pmichaud yes, but "do it" means I'm likely to just come up with another create_language.pl replacement (likely in the nqp-rx directory)
15:55 atrodo The more the merrier?
15:57 cotto_work I thought they were trying to either merge the functionality of one into the other or write a replacement for both that'd obsolete (and allow us to nuke) the other two.
15:58 pmichaud yes.  But I'm not at all comfortable with the functionality of the other.
16:00 pmichaud that's one of the reasons I created 'create_language.pl'.
16:01 cotto_work do you not think anyone should be using mk_language_shell.pl
16:02 pmichaud it's not the script I have issues with, it's the setup.pir tools.
16:02 cotto_work a bus number issue?
16:02 pmichaud design issue
16:03 pmichaud afaik, setup.pir still isn't sufficiently advanced to build something like Rakudo
16:04 pmichaud (and to do it in a way that is better or on par with the use of a Makefile in terms of understandability and flexibility)
16:04 pmichaud I also expect nqp to be targetting an additional backend in the near future, and setup.pir doesn't seem like it's going to be portable in that situation.
16:05 cotto_work Lorito?
16:05 purl Lorito is "little parrot" in spanish or http://xkcd.org/707/ or http://github.com/atrodo/lorito or http://trac.parrot.org/parrot/wiki/Lorito or http://github.com/ekiru/yalp-asm
16:05 pmichaud .net, most likely.
16:05 atrodo Lorito!
16:05 cotto_work also shiny
16:05 pmichaud and by "near future" I mean "in calendar 2010"  :-)
16:06 atrodo pmichaud> How much work would be involved in porting nqp to a new vm?
16:06 cotto_work Why not allow both and explain the limitations of setup.pir?
16:06 pmichaud maintenance, primarily.
16:10 dalek winxed: r620 | NotFound++ | trunk/winxedst1.winxed:
16:10 dalek winxed: fix namespace parsing and improve its error detection
16:10 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=620
16:10 pmichaud atrodo: we don't know exactly how much work will be involed in porting nqp.  But jnthn++ already has a good start on a .net port.
16:11 pmichaud and nqp-rx was designed from the outset with the idea that would hopefully be portable to other backends.
16:14 particle1 nqp-rx: designed with hope!
16:14 particle1 is now known as particle
16:16 atrodo pmichaud> how much does the backend have to provide?  The basics like method dispatch and primative data types, or more like what parrot provides like CPS, MMD, etc?
16:17 dalek TT #1776 closed by pmichaud++: r48847 breaks Rakudo
16:17 dalek TT #1776: http://trac.parrot.org/parrot/ticket/1776
16:17 pmichaud atrodo: iiuc, jnthn's work is basically coming up with a new object model and method dispatch system, which can then provide mmd for systems that don't have it.
16:17 pmichaud (it's not a new object model -- it's basically the Perl 6 object model at a somewhat lower level)
16:18 pmichaud (but with efficient attribute access and method dispatch)
16:18 atrodo Ah, makes sense
16:18 pmichaud so, I don't think we're going to be expecting a whole lot from the backend
16:18 pmichaud and most of the dispatch and metamodel code is itself being written in nqp :)
16:19 patspam left #parrot
16:26 jan joined #parrot
16:29 dalek rakudo: 7517e39 | pmichaud++ | src/pmc/perl6multisub.pmc:
16:29 dalek rakudo: Remove dead check_invokable() code from perl6multisub.pmc .
16:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​517e39ef7fd59aa3f9a88475289e33726c0998a
16:34 dalek winxed: r621 | NotFound++ | trunk/winxedst1.winxed:
16:34 dalek winxed: typo
16:34 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=621
16:38 patspam joined #parrot
16:43 * dukeleto waves good localtime()
16:45 * cotto_work wishes everyone in a very different timezone a happy Tuesday.
16:48 dukeleto lulz
16:48 dukeleto aloha, msg JimmyZ you have been added to the parrot github org
16:48 aloha dukeleto: OK. I'll deliver the message.
16:49 dukeleto seen gerd
16:49 purl gerd was last seen on #parrot 87 days, 4 hours, 26 minutes and 25 seconds ago, saying: I will start to copy the tar file to the ftp server.  [Jun 15 12:22:48 2010]
16:49 aloha Sorry, I haven't seen gerd.
16:50 tcurtis joined #parrot
16:51 cotto_work That's a bit disconcerting given that he's on for the next couple releases.
16:53 patspam left #parrot
16:56 dukeleto cotto_work: feel free to improve this: http://wiki.github.com/parrot/parrot/
16:56 dukeleto cotto_work: i think he uses a different nick nowadays
16:56 dukeleto cotto_work: just using the wiki there for important git-related info, not trying to replace Trac
16:57 cotto_work I'd rather just have it direct to either our wiki or the GitMigration page so people know not to add anything there.
16:58 dukeleto cotto_work: if that is possible, go for it
16:58 cotto_work Can you think of a decent definition of ""well-tested" for the github trac plugin?
17:00 dukeleto cotto_work: it is just that people are asking me these questions and I don't want to repeat myself and I don't want people to hate me if they create a branch called foo and then my mirror script kills it
17:00 dukeleto cotto_work: does it have any tests for functionality that was added?
17:00 dukeleto cotto_work: gerd was emailing me questions about parrot.git
17:00 cotto_work It doesn't have any tests.
17:01 dukeleto cotto_work: github-trac had no tests, to begin with ?
17:02 cotto_work Nope.  It doesn't seem to be common for trac plugins to come with tests.  I'd have written some if there were a test suite to work with.
17:02 dukeleto cotto_work: hmm. I guess we need to have some manual checklist of stuff
17:03 cotto_work That'll do, I guess.
17:03 dukeleto cotto_work: can you think of a way to verify that each feature you added works?
17:03 dukeleto cotto_work: like "do X, see if Y is there" for each thing, a manual checklist
17:06 cotto_work wfm
17:08 dukeleto cotto_work: that will also be a useful list of "this is what our improvements to github-trac do"
17:08 cotto_work I'll start a wiki page.
17:08 dukeleto cotto_work: have you contacted davglass about getting that stuff merged upstream?
17:09 cotto_work yup.  no reply
17:11 dukeleto cotto_work: ok, thanks for contacting him
17:13 dalek tracwiki: v24 | cotto++ | GitMigration
17:13 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Gi​tMigration?version=24&amp;action=diff
17:14 cotto_work I'll ask him via email this weekend.  It's possible he didn't notice the pull request (or needs a nudge).
17:16 cotto_work My contract ends after Monday, so tuits won't be much of a problem.
17:17 dukeleto yay for tuits
17:20 cotto_work Do you know of a good template for manual tests?
17:21 * cotto_work does not look forward to dealing with trac tables
17:25 patspam joined #parrot
17:29 cotto_work or manual tests, for that matter
17:29 davidfetter joined #parrot
17:32 dukeleto cotto_work: i hear ya
17:33 cotto_work better than nothing, though
17:33 smash left #parrot
17:36 dalek parrot-linear-algebra: 5798a17 | Whiteknight++ | t/pir-subclass/pmcmatrix2d.t:
17:36 dalek parrot-linear-algebra: Add a stray test file that I forgot to add yesterday
17:36 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/5798a17bf69766948b41025bd3eb0bb36d86de13
17:36 dalek parrot-linear-algebra: e5332d7 | Whiteknight++ | / (2 files):
17:36 dalek parrot-linear-algebra: Merge branch 'master' of github.com:Whiteknight/parrot-linear-algebra
17:36 pmichaud http://trac.parrot.org/par​rot/ticket/1491#comment:6  # took far too long to write, still not well written  :-(
17:36 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/e5332d7f38b244a9f1deb8a996ea91576737d48c
17:36 dalek parrot-linear-algebra: 659d91a | Whiteknight++ | t/harness:
17:36 dalek parrot-linear-algebra: refactor the test harness class to allow breaking the test run into multiple sections, which can be executed independently. Also, allow the line parser to ignore garbage lines, though the algorithm isn't great yet
17:36 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/659d91a142dd810c6ace5df8b78db15e6f789272
17:40 cotto_work and trac-- puts it in a fixed-width box with a scrollbar, wasting a good 2/3 of my screen
17:40 davidfetter left #parrot
17:40 davidfetter joined #parrot
17:41 cotto_work View->Page Style->No Style to the rescue
17:41 cotto_work firefox++ for making really stupid layouts more bearable
17:42 dukeleto cotto_work: you are fine with me commiting to your git_aware_tools branch, right?
17:47 dalek tracwiki: v1 | cotto++ | GitHubTracPluginTests
17:47 dalek tracwiki: one fleshed-out test case and a healthy TODO list
17:47 dalek tracwiki: http://trac.parrot.org/parrot/wiki/GitHub​TracPluginTests?version=1&amp;action=diff
17:47 cotto_work absolutely
17:47 purl Indubitably.
17:56 tadzik joined #parrot
17:58 dukeleto cotto_work: i question the usefulness of branch_status.pl
17:58 cotto_work I wouldn't feel bad if it went away, given github's branch view thingy.
18:00 * dukeleto asks parrot-dev about it
18:00 cotto_work is now known as parrot-dev
18:00 parrot-dev nuke it
18:01 parrot-dev is now known as cotto_work
18:01 atrodo Creative
18:03 * cotto_work guesses that darbelo is probably happy, given his upcoming job
18:04 dalek tracwiki: v25 | cotto++ | GitMigration
18:04 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Gi​tMigration?version=25&amp;action=diff
18:04 davidfetter cotto_work, from orbit. it's the only way to be sure
18:09 cotto_work You're saying we should test it from orbit? ;}
18:11 cotto_work plobsing: do your latest changes work with rakudo?
18:11 atrodo cotto_work> all my code is tested from orbit.  Or so I assume
18:13 mikehh joined #parrot
18:15 dalek parrot: r48910 | plobsing++ | branches/oplib_handling_cleanup (17 files):
18:15 dalek parrot: eliminate now inappropriate uses of core_ops->op_code in favour of interp->op_hash
18:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48910/
18:15 dalek parrot: r48911 | plobsing++ | branches/oplib_handling_cl​eanup/src/runcore/main.c:
18:15 dalek parrot: eliminate now defunct parts of dynop_register
18:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48911/
18:15 plobsing cotto_work: I'm working in branch, haven't tested. Will test when finished.
18:17 dalek winxed: r622 | NotFound++ | trunk/winxedst1.winxed:
18:17 dalek winxed: look for classes in namespaces scopes in stage 1
18:18 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=622
18:22 dalek winxed: r623 | NotFound++ | trunk/winxedst1.winxed:
18:22 dalek winxed: codingstd: tab -> spaces
18:22 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=623
18:22 dalek winxed: r624 | NotFound++ | trunk/pir/winxed_compiler.pir:
18:22 dalek winxed: update generated pir
18:22 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=624
18:25 * dukeleto sees that http://rosettacode.org is a great way to not hack on other more-useful things
18:29 davidfetter "420 tasks?"
18:29 davidfetter just exactly what tasks is 420 supposed to help with?
18:44 dukeleto davidfetter: it helps with lots of things...
18:44 dukeleto davidfetter: TimToady++ has been posting some perl6 solutions to rosettacode.org, which is how I found it
18:48 dalek parrot: r48912 | plobsing++ | branches/oplib_handling_cleanup (10 files):
18:48 dalek parrot: eliminate interp.op_info_table and interp.op_func_table
18:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48912/
18:51 davidfetter dukeleto, yeah, here in california, there's a ballot initiative...
18:51 * davidfetter curious about how this will turn out
18:51 Paul_the_Greek joined #parrot
18:52 Paul_the_Greek Hey ho, folks.
18:53 davidfetter Καλημέρα
18:56 * davidfetter may be assuming too much about Paul_the_Greek's nick
18:56 dukeleto Paul_the_Greek: good morrow
18:56 Paul_the_Greek Good morning to you, too, davidfetter.
18:57 davidfetter 2 minutes' worth of morning left here in oakland
18:58 atrodo I've been fresh out of morning all afternoon
18:58 Paul_the_Greek dukeleto: We should talk about breakpoints later.
18:59 tcurtis left #parrot
19:00 dukeleto Paul_the_Greek: have you made any progress?
19:08 nwellnhof joined #parrot
19:11 dukeleto looks like rakudo coredumps a spec test on 64bit linux since the last bump to PARROT_REVISION
19:12 dukeleto looks like dalek doesn't know about roast.git
19:20 M_o_C joined #parrot
19:22 dalek parrot: r48913 | plobsing++ | branches/oplib_handling_cleanup (2 files):
19:22 dalek parrot: eliminate interp.op_count and interp.op_lib
19:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48913/
19:22 dalek parrot: r48914 | plobsing++ | branches/oplib_handling_cl​eanup/src/runcore/main.c:
19:22 dalek parrot: make headerizer
19:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48914/
19:22 dalek parrot: r48915 | plobsing++ | branches/oplib_handling_cleanup/​config/gen/config_h/config_h.in:
19:22 dalek parrot: [codetest] macro args
19:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48915/
19:22 dukeleto i added roast.git to the languages page on the trac wiki, hopefully dalek will learn about it soon
19:26 davidfetter roast?
19:26 purl it has been said that roast is about to come... from everyone
19:28 M_o_C left #parrot
19:29 dalek tracwiki: v141 | dukeleto++ | Languages
19:29 dalek tracwiki: http://trac.parrot.org/parrot/wiki/L​anguages?version=141&amp;action=diff
19:30 dukeleto davidfetter: roast.git is what the perl 6 spec tests are called now
19:30 * dukeleto goes to seattle
19:30 davidfetter have fun in seattle, dukeleto :)
19:31 whiteknight my old boss used to say he was going to the "basement" when he wanted to do some heavy drinking at work
19:31 whiteknight when a really annoying customer came in, he would say "I'm going to the basement", and he would hide in the bathroom and drink beer
19:32 whiteknight msg dukeleto (PLA test error) yes, it is a kakapo error. I have a custom version of kakapo that I need to tag. I'll do that this afternoon and msg you when it's ready.
19:32 purl Message for dukeleto stored.
19:32 aloha OK. I'll deliver the message.
19:34 whiteknight a dependency tree is a fickle mistress
19:44 nwellnhof left #parrot
19:45 alin joined #parrot
19:47 patspam left #parrot
19:49 patspam joined #parrot
20:04 whiteknight left #parrot
20:08 dalek rakudo: 43c27a9 | pmichaud++ | src/core/Cool.pm:
20:08 dalek rakudo: Remove .succ and .pred from Cool.
20:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​3c27a9fb51a9d200b1d9eab2d611773e9a1e612
20:12 dalek parrot: r48916 | plobsing++ | branches/oplib_handling_cleanup/​config/gen/config_h/config_h.in:
20:12 dalek parrot: remove bad include line
20:12 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48916/
20:12 dalek parrot: r48917 | plobsing++ | branches/oplib_handling_cleanup (27 files):
20:12 dalek parrot: sync with trunk
20:12 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48917/
20:17 Coke joined #parrot
20:17 aloha left #parrot
20:19 bacek left #parrot
20:20 dalek rakudo: ce565f3 | moritz++ | src/Perl6/Actions.pm:
20:20 dalek rakudo: enable :r and :ratchet outside of regexes
20:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​e565f3525f44e90837994704f37b542df63d894
20:28 tadzik left #parrot
20:34 tadzik joined #parrot
20:58 whiteknight joined #parrot
21:05 Paul_the_Greek ping dukeleto
21:07 dalek blizkost: 2275955 | NotFound++ | src/pmc/bkmarshal.c:
21:07 dalek blizkost: Use does invokable instead of isa Sub to identify invokables in marshalling.
21:07 dalek blizkost: review: http://github.com/jnthn/blizkost/commit/​227595580cb7ca28814be48221af7ca78c3db033
21:07 * cotto_work wonders what's in Seattle that dukeleto's going to
21:10 Paul_the_Greek cotto_work: Do you use the Parrot debugger?
21:11 cotto_work very irregularly
21:12 Paul_the_Greek How much work do you think it's worth?
21:12 cotto_work I can answer questions or look confused, though.
21:14 cotto_work adding breakpoints will help, if that'
21:14 cotto_work s what you're thinking about
21:14 patspam left #parrot
21:15 Paul_the_Greek They seem to work for me, although they are confusing.
21:15 Paul_the_Greek The list command is broken, too.
21:16 cotto_work It's something of a bootstrapping problem.  It's not useful because people don't use it, etc
21:16 cotto_work well, not as useful as it could be
21:16 Paul_the_Greek I think I'll work on it a bit, at least to fix the obvious bugs.
21:17 Paul_the_Greek It would be nice, for example, if the list command thought that lines start with 1 rather than 0.
21:17 cotto_work That could be an imcc thing.
21:18 Paul_the_Greek If you enter just 'list', you get lines starting at 1.
21:18 Paul_the_Greek If you enter 'list 1', you get lines starting at 2.
21:19 NotFound Paul_the_Greek: that is probably my fault
21:19 cotto_work Oh.  You should add a test for that.
21:19 Paul_the_Greek Your fault, NotFound?
21:19 NotFound Paul_the_Greek: I worked on it a year ago or so.
21:20 Paul_the_Greek Ah. I think I'll poke at it a bit. A good way to learn some internals, anyway.
21:23 perlite_ left #parrot
21:23 perlite joined #parrot
21:35 luben joined #parrot
21:52 Coke seen chromatic?
21:52 purl chromatic was last seen on #parrot 2 days, 36 minutes and 41 seconds ago, saying: Wordsize problem?  [Sep  8 21:15:41 2010]
21:52 dalek parrot: r48918 | chromatic++ | trunk/src/gc/system.c:
21:53 dalek parrot: [GC] Made system tracer use precise type marking.
21:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48918/
21:53 dalek parrot: r48919 | chromatic++ | trunk/src/namespace.c:
21:53 dalek parrot: [src] Rearranged NameSpace type checks.
21:53 dalek parrot: This is a minor optimization.
21:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48919/
21:53 dalek parrot: r48920 | chromatic++ | trunk/src/pmc/object.pmc:
21:53 dalek parrot: [PMC] Optimized Object's isa() VTABLE slightly.
21:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48920/
21:54 Coke msg kid51 - http://trac.parrot.org/parrot/cha​ngeset/48875/trunk/ext/nqp-rx/src - that's why I mentioned it. just don't modify the generated files then, if you can't submit the patch upstream. Or report a bug, or something.
21:54 purl Message for kid51 stored.
21:54 Coke msg kid51 (to be clear, we shouldn't be modifying the generated files directly even if a patch is submitted upstream. the re-import of nqp-rx will get the fix in that case)
21:54 purl Message for kid51 stored.
22:03 ruoso left #parrot
22:07 dalek roast: d837943 | patrickas++ | S03-operators/series (2 files):
22:07 dalek roast: Changed some tests to follow the new spec
22:07 dalek roast: review: http://github.com/perl6/roast/commit/d8​379430be416e4f0afd0a9e5adf202d617009ad
22:07 dalek roast: cb28dfa | patrickas++ | S03-operators/series (2 files):
22:07 dalek roast: Changed more tests to follow the new spec
22:07 dalek roast: review: http://github.com/perl6/roast/commit/cb​28dfa2d0bab06baa47ce5d54cc866d56bb7fdd
22:08 dalek roast: 4d37df5 | patrickas++ | S03-operators/series.t:
22:08 dalek roast: Added more tests for code on the fhs and added tests for infinite list on the lhs
22:08 dalek roast: review: http://github.com/perl6/roast/commit/4d​37df53fd6efa459e9b75ffe6bd0fe69f8a04e5
22:08 bacek joined #parrot
22:09 ash_ joined #parrot
22:09 aloha joined #parrot
22:09 dalek parrot: r48921 | NotFound++ | trunk/src/pmc/packfile.pmc:
22:09 dalek parrot: a bit of refactoring in the Packfile PMC
22:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48921/
22:10 Paul_the_Greek Debugger 'list' command much improved.
22:11 eternaleye_ joined #parrot
22:11 cotto_work Paul_the_Greek++
22:12 Paul_the_Greek Next stop: 'info' (crashes).
22:13 eternaleye left #parrot
22:16 tadzik left #parrot
22:19 hercynium joined #parrot
22:26 dalek parrot: r48922 | luben++ | branches/hash_inlined_func (5 files):
22:26 dalek parrot: Track master
22:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48922/
22:32 shockwave joined #parrot
22:33 nopaste "shockwave" at 192.168.1.3 pasted "Performance question." (10 lines) at http://nopaste.snit.ch/23293
22:34 shockwave While updating some code, it occurred to me that I could change a sub into a macro, to possible get some performance gains. The code I posted above shows them both.
22:35 shockwave In general, is there a decent speed difference between the two? I have a few places in my codebase that could use that conversion, then. (Not that they are slow, but if one is much faster than the other, why not?)
22:35 NotFound shockwave: premature optimization is the root of all evil
22:36 cotto_work -1 to any optimization without profiling
22:36 shockwave @NotFound: Yeah, I know that mantra. But this is more is a code generation thing which could easily go either way.
22:37 plobsing shockwave: use of $P99 in a macro is *not* hygenic
22:37 shockwave It takes no effort on my part to choose one over the other. So, sure, it is an optimization; but not the obsfuscate-code-to-get-some-speed-gain type.
22:37 shockwave @plobsing: True. It can cause issues with generated code.
22:38 NotFound shockwave: the mantra says "prmature optimization", no "obsfuscate-code-to-get-some-speed-gain" ;)
22:38 plobsing I *think* that it is possible to get hygenic macros in PIR, but I cannot remember how. There's a test for it somewhere...
22:38 shockwave @plobsing: Probably something like: $P99.someMacroArg = foo
22:39 NotFound If is generated code, just generate it instead of generating macros that generate the code.
22:39 shockwave @NotFound: Its not for generated code. It's for Runtime Support System.
22:41 shockwave Anyhow, what about my question? *Could* the speed difference be considerable? If there is such thing as .tailcall optimization, then the function context switching must have a decent overhead, since there is an optimization for it.
22:41 NotFound I've just spend a lot of hours diagnosing an ugly bug caused by premature optimization, so I'm specially sensitive ;)
22:42 shockwave @NotFound: I feel your pain. And I know you're right. But, trust me, this aint my first rodeo.
22:46 plobsing shockwave: the cost involved in tailcall optimization is mostly about space allocated to call frames IIUC.
22:46 NotFound shockwave: the Parrot Calling Conventions aren't know for its big speed, sure, but you should profile if the operations is done in such a number that has a noticeable impact.
22:48 jnthn Using a macro for a very frequent operation rather than a call with save you a decent bit under current Parrot, it nothing else because it saves you a gc-able (e.g. the context)
22:48 jnthn s/with/will/
22:49 shockwave NotFound: This code lives in the array/map setting code. i.e., arr[5] = true; map_['a'] = 5;  Every scalar type must be boxed, and tagged with its typeid. These types of things will happen ALOT. This will, for sure, make a difference.
22:50 jnthn shockwave: In the longrun, you'd really want to build those at compile time and serialize 'em, I expect. We don't quite have the infrastructure for that yet though.
22:50 jnthn But still, checking the type tag will be a common operation.
22:51 jnthn In Rakudo we just do the getprop directly
22:51 jnthn But for the type we don't attach an ID but rather an object representing the type.
22:52 jnthn (These days I'm fairly against type IDs for anything other than caching.)
22:52 shockwave @jnthn: I'm a bit lucky in that I have the type-id available at compile-time, since my language, Runik, is statically typed.
22:52 jnthn If it's statically typed, then why do you need to do checks at runtime at all?
22:52 jnthn If the program was badly typed, you'd detect that at compile time and refuse to code-gen it, no?
22:52 jnthn (Other than explicit cats, etc)
22:52 jnthn er, casts
22:53 dalek winxed: r625 | NotFound++ | trunk/winxedst1.winxed:
22:53 dalek winxed: rearrange the generated initialization code in stage 1 compiler
22:53 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=625
22:53 shockwave jnthn: Because containers are dynamic. One can put any type into an array/map. They are always stored as 'objects', the base-type of all types, including scalars.
22:54 jnthn ah, OK
22:54 shockwave when fetched, they must be casted to its proper type.
22:55 shockwave jnthn: Well, thanks for the help. I got the answer I was looking (and hoping) for.
22:55 shockwave Thank you also, plobsing, NotFound.
22:56 jnthn shockwave: Happy to help. I've done/am doing a lot of the type systemy stuff in Rakudo, so have visited quite a few of these issues before. :-)
22:56 shockwave jnthn, type systems are fun, aren't they? Psych!
22:57 jnthn Oh, yes. :-)
22:57 jnthn The only thing I'd point out with type IDs even in the static case you have, is that you'll still hit linkage issues with them.
22:57 shockwave what?
22:58 jnthn e.g. what if I write module A and module B and use them in the same program, and they both gave ID 42 to a type?
22:58 shockwave Oh, I'm guessing you're talking about for dynamic code loading.
22:59 jnthn Well, even if you know you're using them up front and both were compiled ahead of time and have different mappings for a type ID, it could be an issue.
22:59 shockwave jnthn: All types have unique ids. Guaranteed.
22:59 ash_ what if you made a GUID for the type id?
23:00 jnthn ash_: Then if it really is GU you're safe. :-)
23:00 shockwave jnthn: When the are stored in the symbol table, they are given an unique type.
23:00 jnthn shockwave: OK, if you have a way to be sure of that, then you're fine.
23:01 shockwave jnthn: They only problem would be for, say, loading code at runtime. That's a few versions in the future, but, even then, I'm guessing that it would be a matter of keeping the last used id, and incrementing that.
23:01 shockwave jnthn: But, thanks for the heads up, anyway.
23:02 jnthn shockwave: Well, it more happens if you're serializing the type ID anywhere. If you're assigning them when the code is loaded, then yeah, you'll be quite safe I guess. :-)
23:02 shockwave jnthn: I'm assigning them at compile time.
23:03 jnthn Do you allow for modules to be pre-compiled?
23:03 jnthn If so, that's the case I worry about.
23:03 plobsing shockwave: do you have separate compile time and run time and do you want types to be able to cross module boundaries? if you answered yes to both, it'll be tricky.
23:04 jnthn Because you could compile two modules that know nothing about each other and share type IDs if you're not careful.
23:04 jnthn And then try and use them both int eh same program.
23:04 jnthn plobsing: Right, that pretty much is what I'd worry about.
23:04 plobsing jnthn: I've been doing a lot of thinking about the linkage issue since your parrot-dev emails.
23:05 shockwave plobsing: I'm not quite sure I undestand,
23:05 shockwave for compile time, do you mean, for instance, a C library that gets loaded at runtime?
23:05 shockwave and for the compile time to just be the code that gets generated?
23:06 plobsing shockwave: nope, more like if you want to compile units separately like C .o object files
23:07 shockwave @plobsing: If by compile-unit you mean like, a separate file is its own compilation unit, then I currently do that.
23:07 plobsing jnthn: what if objects having a special member in their prophash were stored as references to other PBC's consttables.
23:07 shockwave But, currently, the compiler always recompiles everything, so its easy.
23:07 jnthn shockwave: In Rakudo, we can take a module, say Foo.pm, and compile it to PIR. We could take Bar.pm and do the same. We could then have a baz.pl that uses both. If Foo and Bar were compiled in ignorance of each other and we use the compiled versions in baz.pl, you'd need to make sure that Foo and Bar didn't assign overlapping type IDs, even though you didn't know both existed when compiling them.
23:07 jnthn Oh, if you re-compile everything then you get away with it :-)
23:08 plobsing you get away with it to a point. larger compiles will become painful eventually.
23:08 shockwave Actually, I'm hoping to start the dependency stuff tomorrow :-) So I'll atually be dealing with this tomorrow (hopefully).
23:08 jnthn plobsing: I don't think this is something that really belongs in the prophash.
23:08 jnthn plobsing: In my 6model prototype I've gone and stuck it straight into the objects themselves
23:09 jnthn That is, a pointer (well, reference in C#, where I'm prototyping :-)) to a serialization context.
23:09 jnthn Then it's dead cheap
23:09 jnthn You walk until you see something with an SC pointer in place already
23:09 shockwave jnthn: Yeah, I've thought about this issue abit, though not that much, since I don't find it that scarry (maybe because I havent thought about it).
23:09 jnthn (If it's null you know it's gotta be serialized.)
23:09 plobsing jnthn: that sounds nifty, but I don't think it'll fly with other HLLs to make certain object fields special.
23:10 jnthn plobsing: ?
23:10 jnthn plobsing: I don't see why this has to be Rakudo specific.
23:10 jnthn plobsing: Oh, I think I mis-explained. (more)
23:11 jnthn I'm envisioning this at a bit lower level. That is, the SC pointer would be a member of the PMC structure.
23:11 plobsing that's what I'm getting at. Other languages might not want a field in their objects at all.
23:11 jnthn Rather than specific to any particular object system implementation.
23:12 plobsing jnthn: oic. that works and is more or less equivalent to the prophash, but more efficient.
23:12 jnthn Well, and if it's in the prophash it's "exposed"
23:13 jnthn Rather than an implementation detail.
23:13 plobsing jnthn: but it costs an extra sizeof(void *) for every allocated object even for programs that never serialize
23:13 jnthn But yes, there's an efficiency win too.
23:14 jnthn You are, of course, correct on that. On the other hand, I think that many languages will want to make their constant-y things at compile time and reference them rather than build them up every time.
23:15 plobsing jnthn: there's nothing wrong with exposing it. How else is the HLL supposed to manage it?
23:15 shockwave left #parrot
23:16 jnthn I'd rather we expose it through some kind of interface for manipulating SCs.
23:16 jnthn e.g. if you were using PCT, you'd get access to some object representing your current SC that you can add things to
23:17 cotto ~~
23:17 jnthn Just having it in the prop hash feels like a really clumbsy interface that we'd only regret later on.
23:17 jnthn Plus the memory cost of everything having a prophash will be really not great too.
23:17 plobsing jnthn: most things don't have a prophash, just stuff you want to link to, and just during compile time.
23:18 jnthn It isn't really just during compile time though
23:18 jnthn For example, imagine I pre-compile A.pm and B.pm to PBC
23:19 jnthn I have a C.pm that uses both of them that I then compile
23:19 plobsing ok, I'm with you so far
23:19 jnthn When I load the two of those they'd need to keep their SC references.
23:20 plobsing why?
23:20 jnthn So when we make the PBC for C.pm it knows what it needs to serialize, and what it needs to reference from A and B.
23:20 plobsing but that's still compile time. it is C.pm's compile time.
23:21 jnthn Hmm, true.
23:21 plobsing when you then go and run foo.pl which uses C.pm, the references exist in the PBC, but there is no reason to keep the object properties for maintaining the references alive.
23:22 plobsing unless an arbitrary perl 6 program can compile PBC somehow
23:22 jnthn Aye, I'm wondering if we have a case where compile time and runtime are blurry enough that we'd run into issues.
23:23 jnthn Somehow using the prophash just feels like we'd be hanging it in the wrong place, though.
23:25 plobsing maybe. I'm not really sure what the prophash is for. I thought it was for attributes parrot needs to put on objects that shouldn't show up as attributes when the HLL queries the object for its attributes.
23:25 plobsing ETOOMANYATTRS
23:26 jnthn The prophash is kinda easy/lazy way to stash some extra data on a PMC.
23:26 jnthn Trouble is, we often use it in Rakudo to stash stuff we need to check Real Quick.
23:27 dalek winxed: r626 | NotFound++ | trunk/winxedst1.winxed:
23:27 dalek winxed: minor refactor
23:27 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=626
23:28 jnthn plobsing: Anyway, I'm going to need to Do Something on the serialization issue soon. (more)
23:28 jnthn It's going to quickly become a blocker for unifying the compile time and runtime MOPs, which I need to do in order to make gradual typing drop out in a fairly natural way.
23:29 jnthn Not to mention we want decent startup time in Rakudo.
23:29 plobsing jnthn: in the end, it's just an implementation detail. If somebody makes a way to hang that data off of a PMC and lets me know about it, I can make linkage work on PBC serialize/deserialize.
23:30 jnthn plobsing: I did talk about this with allison++ at YAPC::EU for a while. She wasn't opposed to us giving PMCs an extra slot to store an SC pointer if needed.
23:30 kid51 joined #parrot
23:30 plobsing pbc_merge might be a little trickier
23:30 jnthn plobsing: So there's not a blocker in that sense.
23:31 jnthn plobsing: If you're interested to help on this though, that'd be really great. :-) Essentially, I can go two ways on this: I can build something outside of Parrot core, or I can help to improve the current freeze/thaw to the point where it can handle what is needed.
23:32 jnthn And if there's support from @parrot-folk to do the latter, I think it'd benefit more Parrot users.
23:32 plobsing yes. Perl 6 isn't the only language where this might become an issue.
23:33 jnthn Also there's an opportunity to get this right in nqp-rx first before shooting for full Rakudo.
23:33 jnthn Well, I think everyone with classes will probably want to represent and serialize their "meta-objects" for those at compile time too, once it's made possible.
23:37 Paul_the_Greek left #parrot
23:38 plobsing OK, if we're going down the improve parrot compilation/serialization path, do you have a roadmap?
23:38 plobsing I think a high priority would be to get nqp-rx to avoid PIR altogether.
23:38 jnthn No, but I can probably get a draft one together tomorrow.
23:39 jnthn nqp-rx is going to be changing a fair bit generally
23:39 jnthn Not in all ways, but certainly in the way it compiles e.g. classes.
23:40 theory left #parrot
23:40 plobsing yes, that's what I'm getting at mostly. Serializing data is one of PIR's many weak points.
23:40 jnthn Right - I expect to be building up the meta-objects from the actions, and adding them to an SC.
23:40 jnthn Not generating PIR to build them.
23:40 theory joined #parrot
23:41 jnthn We can do same for many constant thingies.
23:43 jnthn I need to get some sleep now - it's been a *very* long day here (at $dayjob we hosted some workshop, so I've been helping with setup/speaking/teardown etc). Tomorrow I'll try and get a roadmap together for this stuff.
23:43 theory left #parrot
23:45 whiteknight jnthn++
23:46 jnthn At some point, I'd also like to discuss some possible lexpad-y things with Parrot folks that are interested too.
23:46 jnthn But anyway, another day. :-)
23:46 jnthn night all o/
23:50 dalek parrot: r48923 | plobsing++ | trunk (121 files):
23:50 dalek parrot: merge oplib_handling_cleanup
23:50 dalek parrot: this should fix TT  #1758
23:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48923/
23:50 dalek parrot: r48924 | plobsing++ | branches/oplib_handling_cleanup:
23:50 dalek parrot: branch has been merged
23:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48924/
23:55 NotFound Urgh.... I broke blizkost horribly somehow.

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

Parrot | source cross referenced