Camelia, the Perl 6 bug

IRC log for #parrot, 2010-03-04

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:07 petdance joined #parrot
00:07 petdance_ joined #parrot
00:19 cotto_work joined #parrot
00:20 * Coke waits for folks to tell him how broken his branch is.
00:21 ash_ does parrot have file encoding detection?
00:22 bubaflub joined #parrot
00:23 Tene Coke: is x86_64 linux gcc gnu make a useful test?
00:23 Coke can't hoit.
00:23 Tene okay, I'll think about it after I take a nap
00:24 Tene ash_: not as far as I know
00:24 Tene ash_: doesn't ICU have something to do that?  You could probably build something to do it pretty easy
00:25 Tene dlfunc the function from libicu
00:25 ash_ hmm, okay, i know someones trying to figure out how to do it in rakudo, was going to see if there was an easy way, maybe if lue in #perl6 is working on it,
00:25 ash_ icu has it
00:25 Tene yeah, dlfunc libicu
00:25 ash_ but icu is optional, so, yea
00:26 ash_ for now, icu seems fine, but maybe we can re-write it in pure parrot/perl6 (which is eventually parrot)
00:28 cotto_work icu is comparable to parrot in size
00:28 Tene sup dawg, I heard you like parrots.
00:28 cotto_work nom
00:31 Coke hurm. if I have merged from trunk to branch and resolved all conflicts there, why does a mergeback to trunk have more conflicts?
00:33 Tene because svn fail?
00:34 cotto_work It might be because of svn--
00:42 rblackwe joined #parrot
00:45 patspam joined #parrot
00:49 Coke ... do we support win9x?
00:49 Coke I vote no on that one.
00:50 Coke (TT #471)
00:50 cotto_work no we don't
00:52 cotto_work I'm pretty sure that decision was made explicitly at some point.
00:53 abqar joined #parrot
00:58 snarkyboojum joined #parrot
00:58 mikehh Coke: couple of problems with config 1) --optimize both g++ and gcc - init::optimize -      Enable optimization...Use of uninitialized value in string eq at config/init/optimize.pm line 92
00:58 tetragon joined #parrot
00:58 mikehh Coke: 2) with g++ the post-config test I reported before
01:00 mikehh Coke: some codetest failures - looking at now
01:04 theory joined #parrot
01:05 dalek TT #471 closed by coke++: [PATCH] stops spawnw tests from running on Win9x
01:07 Coke mikehh: you don't have 'cpuarch' defined in config?
01:21 mikehh Coke: as far as I can see - yes (from config_lib.pasm ->     set P0["cpuarch"], "amd64")
01:23 Coke mikehh: hurm. wonder why you're getting that error.
01:27 mikehh Coke: looking
01:33 mikehh Coke: auto::arch comes after init::optimize
01:39 Whiteknight joined #parrot
01:44 * cotto_work wanders off to do not work things
01:46 Whiteknight (not work)++
02:07 tetragon_ joined #parrot
02:07 parthm joined #parrot
02:09 * Coke finally gets gcc installed on his mac.
02:10 dukeleto 'ello
02:28 parthm left #parrot
02:30 dalek tracwiki: v20 | whiteknight++ | CallingConventionsTasklist
02:30 dalek tracwiki: Mark a few items completed which I either know to be completed or are so vague that I'm just going to say "yeah, it's probably done"
02:30 dalek tracwiki: http://trac.parrot.org/parrot/wiki/CallingCo​nventionsTasklist?version=20&action=diff
02:35 eternaleye joined #parrot
02:35 hercynium joined #parrot
02:42 cotto It appears that I can now cross "set off the fire alarm" off my todo list
03:11 cotto itwb if headerizer didn't touch files that didn't need to be changed.
03:11 cotto s/itwb/iwbn/
03:13 plobsing cotto: I hear ya. ditto on configure (though that might be harder)
03:29 atrodo joined #parrot
03:31 dalek parrot: r44612 | cotto++ | trunk (4 files):
03:31 dalek parrot: [ops] remove unused prederef and reserved ops and supporting code/docs
03:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44612/
03:31 dalek parrot: r44613 | cotto++ | trunk (2 files):
03:31 dalek parrot: [ops2c] remove some unused enums from op_jump_t, plus supporting code
03:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44613/
03:31 dalek parrot: r44614 | cotto++ | trunk/PBC_COMPAT:
03:31 dalek parrot: [pbc] PBC_COMPAT bump from previous op changes
03:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44614/
03:35 janus joined #parrot
03:47 dalek parrot: r44615 | cotto++ | trunk (3 files):
03:47 dalek parrot: [ops] remove used but unnecessary PARROT_JUMP_ENEXT
03:47 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44615/
03:54 petdance joined #parrot
04:04 dalek parrot: r44616 | cotto++ | trunk/MANIFEST.SKIP:
04:04 dalek parrot: [MANIFEST] manifest skip update
04:04 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44616/
04:20 dalek parrot: r44617 | cotto++ | trunk (2 files):
04:20 dalek parrot: [ops] remove PARROT_JUMP_ABSOLUTE, which also appears to be unused
04:21 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44617/
04:31 parthm joined #parrot
04:33 kthakore joined #parrot
04:37 dalek parrot: r44618 | cotto++ | trunk/lib/Parrot/OpsFile.pm:
04:37 dalek parrot: [ops2c] simplify code some, remove unused OP_SIZE
04:37 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44618/
04:49 dalek plparrot: c191159 | dukeleto++ |  (2 files):
04:49 dalek plparrot: Give pgTAP a much-needed haircut and forego using pg_prove
04:49 dalek plparrot: It turns out that pgTAP is a bit of a moving target and is really tied to the
04:49 dalek plparrot: version of Postgres that is being used.  We get rid of all functions that
04:49 dalek plparrot: deal with schema-verification and use psql directly instead of using pg_prove,
04:49 dalek plparrot: so as to not have another external dependency that users need to run our tests.
04:49 dalek plparrot: Your welcome.
04:49 dalek plparrot: review: http://github.com/leto/plparrot/commit/c​1911594e4b50d393f46755b636593abef7bb569
04:49 cotto my welcome?
04:53 dalek parrot: r44619 | cotto++ | trunk (2 files):
04:53 dalek parrot: [ops] remove unused flags member from op_info_t struct
04:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44619/
04:56 dukeleto cotto: yes, your welcome :)
04:56 * dukeleto can't spel
04:59 slavorgn joined #parrot
05:00 dalek plparrot: e757b80 | dukeleto++ |  (2 files):
05:00 dalek plparrot: Add a note about using pgTAP Lite and update TODO
05:00 dalek plparrot: review: http://github.com/leto/plparrot/commit/e​757b809a7173bf85408a0d90169fc76975bccc7
05:03 GeJ joined #parrot
05:06 dukeleto anybody here a moderator on parrot-dev ? there is an important-ish email waiting in the queue
05:06 dukeleto Parrot_String objects seems to only be defined if PARROT_IN_CORE is defined. is that by design?
05:07 cotto I think Coke would be a good person to bug about parrot-dev issues.
05:28 parthm hello. i am running the languages/examples/squaak factorial example available in 2.1.1 but I cant seem to get the right result http://pastebin.com/kAQ1J4VJ
05:33 * dukeleto is reading comments in src/extend.c . scary
05:35 dukeleto parthm: maybe try sprinkling in some print statements to see what is going on?
05:36 dukeleto did Parrot_call_sub get renamed recently to something else?
05:36 dukeleto oops, no, there it is in parrot/extend.h
05:40 parthm dukeleto: it seems n < 2 is returning true. http://pastebin.com/uqFdeKxS
05:41 dukeleto parthm: sounds like you found a bug :) maybe < is broke in squak?
05:41 dukeleto oh my. mod_parrot includes parrot/parrot.h . isn't that a big no-no ?
05:42 parthm dukeleto: i am just starting to learn parrot (and perl 5/6) so my debugging abilities are fairly low :-P so should i just go ahead and file the bug?
05:44 dukeleto parthm: sure. if you go to trac.parrot.org and make an account, you will be able to create bug tickets, and that would be greatly appreciated
05:45 dukeleto parthm: i would also email your example to parrot-dev if you think there is a bug. usually i would say parrot-users, but what you seem to have found is actually a bug, not just a user question
05:45 dukeleto parthm++
05:45 dukeleto parthm: creating tickets will give you some karma, as well :)
05:45 dukeleto karma parthm
05:45 purl parthm has karma of 1
05:48 Austin_Hastings joined #parrot
05:49 parthm dukeleto: http://trac.parrot.org/parrot/ticket/1494 :-) i am quite excited about parrot. will also report on parrot-dev
05:50 dukeleto parthm: sweet! welcome to the party :)
05:51 dukeleto parthm: yes, email parrot-dev and reference the ticket you just made, and somebody should tell you what is up, or fix it :)
05:54 cotto Clearly it should be using the fact op.
05:59 dukeleto cotto: that doesn't fix the fact that < is broken
06:00 * dukeleto attempts to not feed the trolls
06:00 bacek_at_work cotto, holley schitt. r44619. flags aren't used at all?
06:00 bacek_at_work So we reduced scope of opsc! :)
06:01 cotto exactly
06:01 cotto I made lots of small commits so that it's easy to bisect anything that splodes, but opsc just got easier.
06:02 * cotto is hungry for troll foods
06:02 cotto also, soup ingredients
06:03 cotto time for shopping
06:03 dalek TT #1494 created by parthm++: factorial example in languages/squaak gives incorrect result
06:05 parthm fwiw (n == 0 or n == 1) makes factorial work ok :-)
06:09 dukeleto parthm: if you want to attach a patch to the ticket, someone can apply that. at least the example will work. but it would be nice to fix <
06:10 snarkyboojum joined #parrot
06:13 parthm dukeleto: maybe having < in isn't such a bad thing. its a good test case. creating the patch shouldn't be a problem though.
06:16 dukeleto parthm: we should definitely fix < in squak, but having a working example is nice too. does squak have actual tests? it seems that it should
06:17 dukeleto parthm: but yes, I agree. using < in the example is kind of a like a test :)
06:20 parthm dukeleto: there is the t directory with some tests. how do i run the tests. README doesn't seem to say anything.
06:26 parthm dukeleto: nevermind. parrot setup.pir test.
06:35 parthm the problem seems to be with the argument passed. n < 2 == 1 but with constants 10 < 2 == 0.
06:45 chromatic joined #parrot
06:54 fperrad joined #parrot
07:08 bacek joined #parrot
07:08 uniejo joined #parrot
07:30 bacek o hai
07:33 cotto ohelo
07:33 treed ehlo
07:34 bacek cotto, I can't spot any usage of PARROT_JUMP_RELATIVE
07:35 bacek looks like we can kill it (and jumps field inside ops)
07:35 cotto There's on in src/debug.c
07:36 bacek any real usage
07:37 cotto There's also some direct uses of op_info->jump.  At this point that's equivalent to checking for PARROT_JUMP_RELATIVE.
07:37 bacek ah, ok.
07:37 bacek I missed this one
07:38 cotto If you can get rid of the one in compilers/imcc/parser_util.c and the one in src/debug.c, we're golden.
07:38 cotto I'm not sure if it's possible or not
07:38 bacek hang on a scond
07:39 bacek It's in OpCode.pm
07:39 * cotto grabs a scond
07:39 bacek :)
07:40 cotto The ones in src/pmc/opcode.pmc can be ignored.   That's just exposing the information.
07:40 bacek I couldn't find anything in compilers/imcc...
07:40 cotto compilers/imcc/parser_util.c +1362
07:41 bacek there is only 1362 lines in this file..
07:41 cotto It makes me think of a line from Predator
07:41 bacek and last one with coda
07:41 cotto sorry. 551
07:42 bacek oh noes
07:43 cotto dukeleto, you awake?
07:43 bacek Nope. we can't get rid of it.
07:43 cotto dukeleto, nm
07:43 cotto NotFound seemed to think it was necessary for disassembly when I asked earlier today.
07:44 cotto bacek, do you know what'd happen if we took that code out of imcc?
07:44 bacek "BAD THINGS"
07:44 purl "BAD THINGS" is a movie, I think.
07:45 cotto That'd be my guess.
07:45 bacek It sets ITBRANCH flag.
07:45 cotto Well, at least most of the flags are gone.
07:46 cotto What's that do/
07:46 cotto ?
07:47 bacek I do think that you broke it already :)
07:47 bacek We need some PARROT_JUMP_WHATEVER flag
07:47 cotto orly?  I ran fulltest several times
07:48 bacek testsuite doesn't do fulltest with -O2 flag in IMCC
07:48 cotto fulltest--
07:48 cotto that's not very full
07:49 cotto karma fulltest
07:49 purl fulltest has neutral karma
07:51 cotto next question: how do we make sure imcc optimizations get tested?
07:53 cotto Yup.  I broke it.  Sad face.
07:55 cotto looks like it's pretty trivial.  I'll be adding a 'testo' make target shortly
07:56 dalek parrot: r44620 | bacek++ | trunk/t/native_pbc (4 files):
07:56 dalek parrot: Rebuild native pbcs
07:56 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44620/
07:57 bacek testo target looks reasonable.
07:59 bacek or we can ignore broken imcc optimisations...
08:00 bacek otoh, we can use same target for testing other pir compilers.
08:00 dalek TT #1490 closed by cotto++: remove prederef__ op and supporting code
08:02 iblechbot joined #parrot
08:07 parthm left #parrot
08:07 cotto Hmmm.  After reverting the relevant commits, testO2 seems to be just as broken as before
08:09 cotto This may just be a case of imcc--
08:13 dalek parrot: r44621 | cotto++ | trunk/config/gen/makefiles/root.in:
08:13 dalek parrot: [build] add a testO2 target to run parrot with imcc optimizations
08:13 dalek parrot: note: this exposes some extravagant brokenness soon to be reverted
08:13 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44621/
08:15 cotto Yeah.  -O2 was all kinds of broken before I started and even -O1 doesn't look very good.
08:16 cotto That's what we get for not testing these things.
08:16 snarkyboojum joined #parrot
08:18 cotto imcc optimizations are not our friend
08:19 bacek s/optimizations are/ is /
08:20 chromatic I don't remember the last time they worked.
08:20 bacek Than ignore it
08:21 cotto Sooooo.... why aren't we throwing up big red flags and scary warning when someone runs imcc with -O?
08:22 chromatic Because we forgot that option even existed.
08:22 cotto The Optimzations that Time Forgot
08:23 cotto chromatic, would it be worthwhile to rip them out?
08:25 chromatic Fine by me.
08:29 dalek parrot: r44622 | cotto++ | trunk/config/gen/makefiles/root.in:
08:29 dalek parrot: [build] apparently imcc optimizations are extravagantly broken, not just my recent changes
08:29 dalek parrot: remove testO2
08:29 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44622/
08:49 lucian joined #parrot
09:28 parthm joined #parrot
09:38 lucian joined #parrot
09:48 allison joined #parrot
09:49 joeri joined #parrot
10:07 dalek parrot: r44623 | mikehh++ | trunk/MANIFEST.SKIP:
10:07 dalek parrot: re-generate MANIFEST.SKIP
10:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44623/
10:12 dalek TT #1495 created by mj41++: MacOS and one WinXP TapTinder clients hanging on  t/library/pg.t
10:13 parthm left #parrot
10:20 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32484), fulltest) at r44623 - Ubuntu 9.10 amd64 (g++ with --optimize)
10:31 joeri joined #parrot
10:32 AndyA joined #parrot
10:33 parthm joined #parrot
10:34 parthm hello. is it recommended to follow the trunk for parrot or to use the monthly tarball.
10:36 chromatic What do you intend to do with Parrot?
10:38 parthm chromatic: i am hoping to use it as the vm for a HLL i am working on .. a hobby project at this point.
10:39 allison parthm: most likely you'll want the monthly releases for that. if you absolutely need the latest features, use trunk
10:40 parthm allison: thanks. i will go with the tarballs then and do monthly upgrades.
10:55 parthm left #parrot
11:35 bacek joined #parrot
11:51 allison joined #parrot
12:22 ruoso joined #parrot
12:42 petdance joined #parrot
13:06 whiteknight joined #parrot
13:10 payload joined #parrot
13:36 whiteknight good morning #parrot
13:37 riffraff joined #parrot
13:37 mikehh hi there whiteknight
13:37 AndyA joined #parrot
13:37 whiteknight good morning mikehh, how are you today?
13:38 mikehh fine - just testin'
13:44 mikehh regarding rm_cflags - is there any reason auto::arch and auto::cpu shouldn't move up the list (lib/Parrot/Configure/Step/List.pm) to just after auto::warnings
13:45 atrodo joined #parrot
13:45 mikehh it works fine for me on Ubuntu 9.10 amd64
13:48 mikehh it removes an warning with init::optimize if I do that
13:50 mikehh and the pre/post-tests are ok (except for 1 with g++ - not related)
13:56 mikehh Coke: ping
13:56 dalek parrot: r44624 | coke++ | branches/rm_cflags/config/auto/warnings.pm:
13:56 dalek parrot: Fix FAIL with mingw (gcc 3.4.5) - check on an invalid option is a little naive:
13:56 dalek parrot: make it only slightly less so.
13:56 dalek parrot: fperrad++ for the report.
13:56 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44624/
13:57 Coke dukeleto: message approved.
13:57 purl Sorry, I've never seen approved before.
13:58 mikehh Coke: did you see my comments just above
13:59 Coke mikehh: yes, just caught up.
13:59 Coke I have no problem with re-ordering the steps. kid51 will have a chance to review it before we merge back.
14:00 mikehh ok I'll commit it
14:02 whiteknight joined #parrot
14:03 * whiteknight is trying to install VisualStudio 2010 ReleaseCandidate on his computer, but the installer keeps forcing the computer to reboot
14:03 whiteknight how quaint: an OS that requires a complete reboot any time any aspect of the system changes
14:04 Coke mikehh++
14:11 dalek parrot: r44625 | mikehh++ | branches/rm_cflags/lib/Parr​ot/Configure/Step/List.pm:
14:11 dalek parrot: move auto::arch and auto::cpu to just before init::optimize to make sure cpuarch is set
14:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44625/
14:11 dalek parrot: r44626 | mikehh++ | branches/rm_cflags/config/init/optimize.pm:
14:11 dalek parrot: fix codetest failure - trailing space
14:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44626/
14:16 smash joined #parrot
14:16 smash hello everyone
14:16 dalek rakudo: 4055fde | tene++ | src/Perl6/Actions.pm:
14:16 dalek rakudo: Revert "Re-work try {} to ignore control exceptions"
14:16 dalek rakudo: This reverts commit 4edd19dbaaee2dd2c61cbc1044ef39651d45f3e4.
14:16 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​055fde9dfd07fbff309a2b2ecb6df13a733fd0d
14:38 mikehh rm_cflags branch:
14:38 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32490), fulltest) at r44626 - Ubuntu 9.10 amd64 (gcc with --optimize)
14:39 Coke mikehh++
14:40 Coke hopefully I fixed fperrad's error, also.
14:40 Coke msg darbelo - can you test out rm_cflags with --optimize on sun?
14:40 purl Message for darbelo stored.
14:42 mikehh I've still got that 1 post-config test failing with g++ - t/steps/auto/warnings-01.t - Failed test:  17
14:43 mikehh otherwise everything ok there too
14:50 patspam joined #parrot
15:06 parthm joined #parrot
15:11 parthm if i try to build ($parrot setup.pir) a lang shell generated by mk_language_shell.pl, it seems to be failing http://pastebin.com/VRwSsQAL
15:11 parthm i suspect its because of what --with-pmc is doing but i don't know enough about parrot yet to be sure.
15:12 parthm i am using parrot-2.1.1
15:16 allison parthm: there are some incompatibilities between the language shell generators and some versions of the compiler tools
15:16 parthm allison: what would be a good workaround? should i file a bug?
15:18 allison parthm: I'm looking at your error message...
15:18 allison parthm: have you made any changes to your language?
15:19 parthm allison: no changes, just the "echo 0 > PARROT_VERSION" in the listing
15:19 parthm ^ PARROT_REVISION
15:20 allison parthm: this error looks suspicious "/usr/local/include/parrot/2.1.1: No such file or directory"
15:20 allison parthm: like it's not finding your parrot install
15:20 parthm allison: i am running parrot directly from the parrot-2.1.1 folder , built with 'perl Configure.pl ; make'
15:21 parthm allison: thats what i was thinking too. let me get the build log for parrot.
15:21 allison parthm: ah, that could explain it. the mk_language_shell.pl expects an installed version of parrot. Fine to install it in a local directory rather than a system directory, though
15:21 dukeleto parthm: you should always use an installed version of parrot or you will get strange errors sometimes
15:22 dukeleto parthm: perl Configure.pl --prefix=foo
15:22 parthm allison, dukeleto: sounds fine. will do that.
15:22 allison parthm: where "foo" is something like "/home/parthm/src/parrot-install"
15:24 * parthm is building with --prefix
15:25 NotFound Who said PARROT_JUMP_RELATIVE is not used? You don't have ack?
15:25 NotFound src/runcore/main.c
15:25 NotFound 377:    if (((opinfo->jump & PARROT_JUMP_RELATIVE)
15:25 NotFound rc/debug.c
15:25 NotFound 2571:                (info->jump & PARROT_JUMP_RELATIVE)) {
15:27 parthm allsion, dukeleto: that worked well. thanks. sorry for the confusion.
15:27 janus joined #parrot
15:27 dukeleto parthm: no worries. I have made that mistake many times before :)
15:28 parthm dukeleto: i am still ramping up on parrot. the people on irc have been patient :-)
15:30 dukeleto allison: what do you say about including parrot/parrot.h oustide of parrot core?
15:31 allison dukeleto: generally shouldn't be needed
15:31 allison dukeleto: parrot/extend.h should be enough, and if it isn't, should be modified (sanely)
15:32 allison dukeleto: the problem with parrot/parrot.h is that it exposes prototypes for all parrot functions, even those that aren't supported as part of the API
15:32 dukeleto allison: it seems that parrot/embed.h and parrot/extend.h are both needed, but occasionally some necessary things are not in there. When I run into those, I will open tickets
15:33 NotFound allison: reading last messages in the mailing list, looks like isn't nearly enough.
15:33 Tene allison: expect to have time to look at my parrot-dev email today?
15:33 allison dukeleto: yes
15:33 dukeleto allison: yes, I was under the impression that parrot.h was *only* for parrot core, and I think that is a good idea
15:33 * Tene AFK
15:33 allison Tene: yes, what's the message subject?
15:33 allison dukeleto: yes, that's the intention
15:33 Tene Subject: Weird behavior of subclasses of Exception
15:33 allison Tene: thanks, will look at it
15:34 NotFound After the introduction of STRNULL we can't even check if a parrot string is null out of core.
15:35 dukeleto NotFound: yeah, that is what PL/Parrot is running into
15:35 whiteknight joined #parrot
15:36 NotFound dukeleto: I just answered that message by suggesting to open a trac ticket.
15:38 Psyche^ joined #parrot
15:39 NotFound BTW we still have an example in docs/embed.pod that uses: #include <parrot/parrot.h>
15:41 dukeleto NotFound: the horror!
15:41 purl i guess the horror is a genre, or a collection of related genres.
15:42 dukeleto NotFound: does the example work without including parrot.h ?
15:44 NotFound dukeleto: I don't care. Including parrot.h is wrong.
15:45 NotFound And I can't test in all operating systems where it can fail.
15:45 tewk w
15:46 NotFound I think we must just delete all examples in that file and just say to look for examples in the examples directory.
15:48 dukeleto NotFound: http://trac.parrot.org/parrot/ticket/1496
15:48 dukeleto NotFound: I agree that including parrot.h is wrong, wasn't arguing that
15:49 NotFound Then please don't ask me if it works.
15:50 dukeleto NotFound: I was asking you if it was unnecessarily including the file, i.e. does the example still work if you delete the parrot/parrot.h include. Take a breath.
15:50 NotFound dukeleto: Is not just unnecessary, is forbidden.
15:56 dukeleto NotFound: We are agreeing :)
15:56 dukeleto NotFound: things are getting lost in translation.
15:56 NotFound dukeleto: the example that uses the correct headers and is supposed to work (I'm about to check) is examples/emebed/cotorra.c
15:57 dalek TT #1496 created by dukeleto++: Parrot_String-related functions are only available from parrot/parrot.h
15:58 NotFound dukeleto: I'm not upser, just a little tired of the slow advance in that part.
16:00 dukeleto NotFound: i hear ya. I have a feeling that PL/Parrot is going to uncover a lot of inconsistencies in the parrot public API
16:01 NotFound Let's hope so :)
16:31 lucian joined #parrot
16:34 whiteknight the public API has definitely never been exercised too rigorously, as I understand
16:34 whiteknight I thought mod_parrot was using it, but apparently not
16:34 NotFound whiteknight: mod_parrot abuse it.
16:42 cotto_work joined #parrot
16:50 japhb dukeleto, darbelo: Thanks both of you for keeping Plumage moving forward while I've been bereft of tuits.
16:50 dukeleto japhb: welcome back!
16:50 purl Your dreams were your ticket out.
16:50 japhb dukeleto, thanks.  ;-)
16:51 dukeleto whiteknight: mod_parrot uses parrot/parrot.h and hence uses the internals API
16:51 whiteknight right
16:52 dukeleto whiteknight: it seems that PL/Parrot will be the first project that tries to stay on the correct side of the fence
16:52 japhb (PL/Parrot)++ for that
16:52 whiteknight As I recall from earlier discussions about the external API is that API functions were really being added in an on-demand fashion
16:52 NotFound dukeleto: I think others tried, but gived up ;)
16:53 dukeleto NotFound: yeah, probably. But I am a tenacious and stubborn person, so I ain't givin' up :)
16:53 NotFound In fact I added some just to be able to wtite some tests.
16:54 japhb *Sigh*  Compiling Parrot + Plumage + Rakudo in quick succession makes me really want a faster computer ...
16:57 davidfetter joined #parrot
17:01 parthm left #parrot
17:03 Austin joined #parrot
17:17 Austin Buenos dias, #parrot.
17:18 whiteknight hello Austin
17:18 cotto_work hi Austin
17:18 Austin Today is mocking day.
17:18 whiteknight well you're a big stupid head
17:18 whiteknight there, you've been mocked
17:18 Austin Your kid won't be able to afford college.
17:19 Austin there, you've been mocked.
17:19 Austin And in a few hours, Kakapo will mock us all.
17:19 Austin Unless I discover another parrot bug.
17:19 cotto_work That'll never happen.
17:19 Austin Heh
17:20 * Austin touches wood.
17:20 cotto_work that can be interpreted in more than one way
17:20 whiteknight did that "classes can't have the same last name" issue get handled in any way?
17:21 Austin Yeah, I renamed the f*****g class.
17:22 whiteknight no, that's goddamn horible
17:22 whiteknight damnit. let me look at the ticket. We're solving this today
17:22 Austin "Matcher" -> "SigMatcher"
17:23 Austin I don't mind the three extra characters. It was the hours spent tracking it down that gripes my wagger.
17:25 whiteknight I mind it. it's stupid behavior
17:25 whiteknight mind-blowingly stupid
17:25 whiteknight ls
17:34 Austin Man, does anyone even realize that this works: 7   method mock_class($parent = 'P6object', :$named = mock_class_name($parent)) {
17:36 theory joined #parrot
17:36 Coke ... i have no idea what that would even do. =-)
17:38 Austin It provides default values for positional and named parameters in NQP, and because it lexifies them left-to-right, you can use leftward parameters in rightward defaults.
17:39 Austin *because it = because NQP
17:40 Tene Austin: that's by-design.
17:41 Austin Yes. And I was admiring that design when I asked "Man, does anyone even realize that this works"
17:41 Tene Ah, I misunderstood.  :)
17:42 Austin One of my maintenance problems in Kakapo has been weeding out stuff that I used to need, but don't anymore because it's built in now.
17:51 dalek kakapo: 8e100d6 | austin++ | :
17:51 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/8e100d600c997b74b4bdbbdc3c43187652c809e9
17:51 dalek kakapo: 0e28756 | austin++ | s (3 files):
17:51 dalek kakapo: More progress on Matchers
17:51 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/0e287560283f2406f3baa21b076cf13c6a0483c0
17:51 dalek kakapo: b21403a | austin++ |  (30 files):
17:51 dalek kakapo: Checkpoint.
17:51 dalek kakapo: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
17:51 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/b21403a956e9e62b256344e45707735ff9364ee8
17:54 Coke "different in my test file" always concerns me.
17:54 Coke how do we know that your test file isn't so different as to not exhibit the same behavior? =-)
17:56 Coke is anyone here able to build rakudo on feather? (or any linux box, for that matter)?
17:57 Tene Coke: WFM
17:57 Tene I have a kind of old parrot, though.
17:57 Tene couple of weeks or so
17:57 Coke Mine fails with the recommended version from --gen-parrot
17:57 Coke Linux feather 2.6.18-6-xen-686 #1 SMP Sun Feb 10 22:43:13 UTC 2008 i686 GNU/Linux
17:58 cotto_work Coke, trying now
17:58 Tene I can't say I've ever used --gen-parrot.  You'd likely get a better response from #perl6 on freenode, though.
17:59 brooksbp joined #parrot
17:59 Coke Austin: why do you think get_class should work on a namespace?
17:59 Coke (certainly the op codes for get_class don't say that.)
17:59 Austin I stole that code from Pmichaud, and I figure he knows what he's doing?
17:59 Coke er, op docs.
18:00 Austin This is about TT# 1492 ?
18:01 Coke yes.
18:02 Coke ok. that calls Parrot_oo_get_class, which for namespaces:
18:02 Austin Yeah, the example code in 1492 is based on one flow through the get_parrotclass function in P6object.
18:03 Coke classobj = VTABLE_get_class(interp, key);
18:05 Coke namespace seems to have a vtable get_class and a METHOD get_class that do 2 different things.
18:06 Austin Yeah, I was pretty impressed by that.
18:06 Coke the macro in one case might expand to the code in the other...
18:07 cotto_work Coke, wfm
18:08 Coke cotto_work: (*&#$.
18:08 Coke on feather or elsewehre?
18:08 cotto_work on my local machine
18:08 Coke k.
18:08 cotto_work ubuntu 9.04 x64
18:08 Coke I'll have to try on  my osx box that finally got xcode reinstalled this evening and see if it works there.
18:08 Coke wanted to do some bug admin work, but not having a working rakudo makes that realllly hard. =-)
18:12 whiteknight Coke: the get_class METHOD does the same thing as the get_class VTABLE, just in a stupid way
18:13 whiteknight if (PMC_IS_NULL(ret_class)) ret_class = PMCNULL; is useless
18:29 allison Tene/whiteknight: I'm deleting the pcc_reorder_results branch, is someone else already working on a new branch for the PCC refactor hackathon?
18:29 whiteknight allison: no
18:29 whiteknight I was planning to delete it and create a fresh one tomorrow, but today works just as well
18:34 dalek parrot: r44627 | allison++ | branches/pcc_reorder_results:
18:34 dalek parrot: Removing unused calling conventions refactor branch
18:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44627/
18:34 dalek parrot: r44628 | allison++ | branches/pcc_hackathon_6Mar10:
18:34 dalek parrot: Creating branch for PCC deprecation item to reorder set_returns and get_results.
18:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44628/
18:35 dalek plparrot: a4516e0 | (David Fetter)++ | HACKING:
18:35 dalek plparrot: Changed HACKING to HACKING.git, which is more appropriate.
18:35 dalek plparrot: review: http://github.com/leto/plparrot/commit/a​4516e04a7cc1c5ed3f30806bcac82c7359374b6
18:36 allison whiteknight: okay, the easy part is done now :)
18:36 whiteknight w00t
18:36 Coke seen fperrad?
18:36 purl fperrad was last seen on #parrot 5 days, 5 hours, 8 minutes and 47 seconds ago, saying: purl ?  [Feb 27 13:28:12 2010]
18:39 whiteknight holy crap. This code for working with namespaces and Classes in src/oo.c is terrible
18:39 whiteknight Remarkably inefficient across the board
18:43 whiteknight If I call Parrot_oo_get_class on a NameSpace we call VTABLE_get_class. And if that returns PMCNULL, it converts the namespace to a string (which does not include the names of parent namespaces), looks up the type number from the string name, looks up the vtable from the type number, gets the vtable's whoami string, *looks up the namespace*, calls VTABLE_get_class on the namespace *again*,...
18:43 whiteknight ...and if that's still PMCNULL for some reason it creates a PMCProxy and calls the set_class METHOD on the namespace with that proxy.
18:45 whiteknight Even if we ignore the fact that the "looks up the type number from the string name" step manually iterates over the list of all VTABLEs comparing whoami strings, this is still horribly inefficient
18:45 Austin whiteknight: And probably every one of those cases was exercised at some point.
18:47 whiteknight Is there a way for me to tell whether a given name corresponded to a built-in PMC type or a user-defined  Class, if the Class object for it hasn't been created yet?
18:48 whiteknight And for that matter, why doesn't a .namespace with :methods in it just automatically create a class object?
18:49 Austin It does, just as soon as you call 'get_class', see?
18:49 whiteknight Austin: hellz to the no it doesn't
18:49 Austin Heh
18:49 whiteknight you have to call "class_nsp = newclass namespace_nsp" to get what you want now
18:50 Austin I think you can look up the pmc type from a name ...
18:50 whiteknight calling get_class on it returns whatever bullshit nonsense the system dredges up
18:50 Austin just do 7  system("grep NAME ../include/parrot/pmc_types.h")
18:51 whiteknight oh, that's novel. And by "novel" I mean it's horrible and making me cry
18:51 Austin Whine, whine, whine. Open source is better, because people get to look at it. Remember?
18:53 theory joined #parrot
18:53 whiteknight What I don't remember is the design pattern for "include copies of my source because my program sucks so bad I need to write another program to grep through my source code to let the end user do what I couldn't make my program do by itself"
18:53 whiteknight I dub that pattern the "Crapulator"
18:53 dukeleto whiteknight: lulz
18:54 * dukeleto pours whiteknight a stiff drink
18:55 Austin The term for a program that prints out its own source code is a "Quine"
18:55 Austin I leave the joke to you.
18:55 whiteknight there are some subsystems in Parrot that I swear to god are held together by little more than hope, masking tape, developer's tears, and an absolute lack of rigourous testing
18:56 whiteknight s/rigourous testing/any testing whatsoever/
18:56 Austin Hmm. And we're all out of hope and masking tape.
18:57 whiteknight what's worse still, if the NameSpace doesnt have a class, so I just return NULL from the lookup, THE BUILD FAILS
18:57 whiteknight not just a test fails, the whole damn build fails
18:58 dukeleto whiteknight: would you like to start a wiki page for "Subsystems that make developers cry" ? List the reasons why and that may give people the direction to fix stuff. I volunteer to write tests for anything that doesn't have proper test coverage.
18:58 whiteknight Something in whatever miniparrot does is looking up a built-in type by namespace, and expecting the PMCProxy to be autovivified by doing it
18:58 Coke shouldn't you return PMCNULL, not NULL?
18:59 whiteknight Coke, I meant "PMCNULL", but it really doesn't matter in this case
18:59 Coke k
19:00 cotto_work dukeleto, we have a page for that: ItsABugHunt
19:00 Coke xenomorph?
19:00 dukeleto we probably need a wiki page for "these codepaths need tests", where people can describe in words or pseudocode things that are untested/undertested. that would help a lot in my Crusage Against Untested Code
19:00 whiteknight not just tests. Some of these codepaths need to be hit with a hammer
19:00 Coke (these codepaths need tests). there's already a page that shows all those paths.
19:01 Coke someone's running code coverage against parrot already.
19:02 dukeleto Coke: link? And I hear ya, but having a human explain things is sometimes more useful
19:03 Coke coverage?
19:03 purl hmmm... coverage is http://cv.perl6.cz
19:03 whiteknight it's not just code coverage. We can cover code with two different inputs and one works and one doesn
19:03 Coke http://tapir2.ro.vutbr.cz/cove​r/cover-results/44626/c_cover/
19:03 Coke (there's the most recent c code coverage report.)
19:04 Tene whiteknight: chromatic thinks that tt384 might need pmcproxies to be instantiated much earlier in parrot startup.
19:04 whiteknight Tene: exactly
19:04 whiteknight I'm hoping and praying for that now
19:04 whiteknight because if PMCProxy PMCs are all created automatically, we don't need to worry about needing to autovivify them when we try to look them up
19:05 Tene whiteknight: work on that would certainly be welcome, and then we could merge in tt384 branch
19:05 Tene erm, 389
19:06 whiteknight Tene: after that branch merges, I'll start a new branch to clean up some of this shit
19:06 dukeleto Coke: also, just because a line of code has been "covered" does not mean that all code paths through it have. They are very different things.
19:06 Tene whiteknight: that branch can't merge until we get it working, which c thinks requires creating pmcproxies early
19:07 whiteknight Tene: okay. I keep hoping to be able to work on it myself but I've been busy
19:07 * Tene nods.
19:07 whiteknight Tonight or tomorrow night I might be able to do it
19:07 Tene I'm rather intimidated by those parts of parrot I haven't worked on yet, so I haven't tried looking into that yet.
19:08 whiteknight Tene: yeah, I know what you mean. There are some parts of Parrot that I still regard as being opaque and a little mysterous
19:08 whiteknight ...and the more I understand, the more parts I find to criticize...
19:08 Tene I think I'm scheduled to work on rakudo tonight, but tomorrow afternoon is probably open.
19:09 whiteknight Tene: okay, awesome
19:09 Tene whiteknight: just so long as you don't get so upset that you leave the project, taking those hard-earned criticisms with you.
19:09 whiteknight if we can get that branch knocked off and merged this weekend I think everybody wins
19:09 whiteknight Tene: I have no plans to leave any time soon. I only criticize things that I love, because I want them to be better
19:09 dalek plparrot: 7a54f57 | (David Fetter)++ | HACKING.postgres:
19:09 dalek plparrot: Added HACKING.postgres
19:10 dalek plparrot: review: http://github.com/leto/plparrot/commit/7​a54f57eaa88e38e511ce5843d67fc4a2abe2f12
19:10 Tene "namespace with :methods -> class" probably won't work, as there's no information on whether it should be a subclass of anything, etc.
19:10 whiteknight when I stop finding problems, it's because I've stopped looking
19:10 whiteknight yeah, you're right about that
19:10 Tene It's always spooky to me when I find some code path that looks horrible, and 'git blame' shows that it was last touched years ago by a name I've never seen before.
19:10 whiteknight haha, yeah
19:11 Tene I got that a couple of times with exceptions a while ago, and I saw that when I tried to look into the "threads fail horribly" issue.
19:11 cotto_work any objections to removing the unused/untested src/events.c and src/tsq.c?
19:11 Tene events.c is unused?
19:12 cotto_work yup
19:12 cotto_work http://tapir2.ro.vutbr.cz/cover/cover-r​esults/44626/c_cover/src-events-c.html
19:12 Tene speaking of creepy.
19:12 Tene afk teaching
19:12 dukeleto cotto_work: there is always the version control history if someone actually cares about them. KILL HER!
19:13 * dukeleto hopes somebody gets the Jurassic Park reference
19:13 payload joined #parrot
19:13 cotto_work will do so when I get home tonight
19:13 cotto_work alternately, it's 15 minutes of work if someone who can commit wants to do it now
19:15 whiteknight I thought tsq was DEPRECATED
19:15 whiteknight no idea about events.c. Maybe allison knows better
19:15 jsut_ joined #parrot
19:16 allison tsq is deprecated
19:16 allison much of events.c was replaced by scheduler.c
19:16 allison I'm not sure if events.c is entirely unused, but wouldn't be surprised
19:17 whiteknight allison: I think the coverage results indicate events.c is unused
19:17 cotto_work allison, it's unused.
19:17 cotto_work the build works and make test passes without it
19:18 whiteknight allison: on that topic, I have some changes I would like to propose for the scheduler, especially since Timer is supposed to be moving to a dynpmc. Where do you think is the best place to discuss that? A wiki page?
19:18 Coke (tsq is deprecated) ... ticket, please?
19:18 Coke (discussion) I prefer the mailing list for discussion. wikis are good for fluid documentation.
19:18 allison how thorough is the coverage test? does that guarantee that no part of the parrot codebase ever makes a call to functions in events.c?
19:19 whiteknight Coke: #982
19:19 allison (not even ifdefd sections for various platforms?)
19:19 Coke whiteknight: that ticket is closed, invalid.
19:19 whiteknight Coke: you closed it because a function was used in src/events.c
19:20 whiteknight which, as we are discussing now, is likely unused as wel
19:20 Coke yup. the original premise of the ticket is wrong.
19:20 whiteknight Coke: premise looks right to me. The functions are not used, so the file can be removed
19:21 Coke the functions /are/ used.
19:21 Coke (peek_entry is used. the functions that call it seem to be used.)
19:22 Coke this is like the mmd ticket that says to remove one of the functions but gives no hint as to what or how to replace it.
19:22 whiteknight "used" implies that active code is calling those functions, not that a text match returns true on the function name
19:23 cotto_work allison, I'll make sure that none of the functions are referenced before removing the files
19:24 whiteknight cotto_work: I've got a hit in src/thread.c. queue_lock and queue_unlock appear to be called
19:24 whiteknight don't know what they do yet
19:25 Coke once rm_cflags is merged back, many of the unused static functions will be removed.
19:26 cotto_work whiteknight, remove_queued_suspend_gc, which is where those are used, isn't referenced anywhere else
19:26 whiteknight cotto_work: yeah, I'm seeing that now too
19:26 cotto_work That's the one function I had to delete.
19:27 cotto_work It'll be nice to get that code out.
19:27 whiteknight yeah, remove those two files and that one function, build works perfectly
19:27 cotto_work For some reason I thought it was harder to remove than it turned out to be.
19:27 cotto_work (plus scaffolding)
19:27 whiteknight I think include/parrot/tsq.h can go too
19:28 cotto_work and events.h
19:28 whiteknight Make sure the scheduler isn't cross-referencing anything there, but yes
19:28 whiteknight actually, I'm checking that now
19:29 cotto_work thanks
19:29 cotto_work Are you going to delete the files too?
19:29 whiteknight nope, not yet anyway
19:29 Austin One of the problems with Parrot is that it's possible to build an object that you're afraid to interact with.
19:29 whiteknight okay, I got a missing token hit in src/thread.c when I tried deleting those files blindly
19:30 whiteknight nevermind, false alarm
19:30 whiteknight (it was the prototype for remove_queued_suspend_gc)
19:30 cotto_work 1 minute to delete the files, 14 to chase down the loose ends
19:31 whiteknight and then 23 hours and 45 minutes to PARTY!
19:32 whiteknight cotto_work: build goes just fine until tools/build/h2inc.pl tries to find events.h
19:35 cotto_work I think the trick there is to delete events.str from the root makefile
19:35 whiteknight cotto_work: okay, I've got a commit brewing
19:35 cotto_work w00t
19:36 whiteknight have to rebuild after playing with the makefile, and then test
19:36 cotto_work perl tools/dev/reconfigure.pl --step=gen::makefiles is your friend
19:37 whiteknight meh
19:39 Tene Ah, yes, I was thinking of scheduler.c
19:45 zpmorgan joined #parrot
19:54 whiteknight cotto_work: all tests pass.
19:54 purl Time to write more tests!
19:54 whiteknight Any objections to this commit?
19:55 cotto_work I object to not committing it.  Is that what you mean?
20:00 bacek joined #parrot
20:01 cotto_work hio bacek
20:01 whiteknight Okay, I'm going to commit this sucker
20:04 cotto_work it's always nice to shed a couple kloc
20:06 Coke tell me again why we don't have "make makefile" ?
20:06 cotto_work That'd be trivial to add.  We should add it.
20:06 Coke we /removed/ it.
20:07 cotto_work lolwut?
20:07 purl lolwut is the pic with that freaky giant pear with a mouth
20:07 bacek ~~
20:07 cotto_work Le
20:07 cotto_work Let's unremove it.
20:07 whiteknight one of the greatest joys in the world is to reduce the size of your code while either keeping capability the same or even increasing
20:07 cotto_work I'd put "birth of your child up there", but that's definitely nice too.
20:08 cotto_work s/up there"/" up there/
20:08 bacek whiteknight, we do need CallSignatureReturns. Trust me :)
20:08 whiteknight bacek: I firmly disbelieve
20:09 whiteknight I do not think we need it
20:09 bacek invoke_from_c_args(interp, "P->P", self, &result)
20:09 bacek inside "invoke_..." we have to remember pointer &result
20:10 bacek Because using valist twice isn't portable
20:10 davidfetter greatest pleasures? well, according to temujin, they're these:
20:10 davidfetter to vanquish your enemies, to chase them before you, to rob them of their wealth, to see those dear to them bathed in tears, to clasp to your bosom their wives and daughters.
20:11 whiteknight that's fine. in that case, we just use a different type of return continuation where invoke takes us back into invoke_from_c_args, where we have the pointer
20:12 dalek parrot: r44629 | whiteknight++ | trunk (8 files):
20:12 dalek parrot: [cage] src/tsq.c, src/events.c, include/parrot/tsq.h, and include/parrot/events.h are all dead code and have been removed. Also, remove one dead function from src/threads.c, and a few items in the makefile that seemed to rely on the header files but have no test coverage or docs that I can find.
20:12 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44629/
20:13 bacek no way
20:13 whiteknight or, the false return continuation does nothing on invoke, the runloop returns, and invoke_from_c_args unpacks the CallSignature
20:13 bacek and?
20:13 whiteknight ...and party?
20:13 bacek we have to process valist fully before
20:14 bacek and store pointer somewhere
20:14 bacek e.g. in CSR :)
20:14 whiteknight bacek: we can do that, fine. Then all we need is a C array somewhere
20:15 bacek on positive note, it will be local to invoke_from_c_args
20:15 whiteknight We're parsing the PCC signature anyway, we know the count of pointers to expect
20:15 Coke whiteknight: some of those functions you removed are not static.
20:16 Coke (and are tagged with PARROT_EXPORT)
20:17 Coke (r44629)
20:21 whiteknight Coke: support_policy.pod only says that we must deprecated PARROT_API function changes, not PARROT_EXPORT function changes
20:21 whiteknight OR "Parrot functions not marked wth PARROT_API, or documented as part of the public API" in docs/embed.pod
20:22 Coke ah, right, forgot that split was done. Carry on.
20:22 whiteknight And I would be willing to ignore the technicallity if the code weren't dead and essentially useless and unusable
20:22 Coke I would not, but the API vs. EXPORT thing covers it. danke for reminding me.
20:23 whiteknight no problem
20:25 Coke note that CFLAGS in trunk still refers to tsq.c, but don't bother fixing it.
20:26 cotto_work There's a reference in lib/Parrot/Docs/Section/C.pm and t/codingstd/c_function_docs.t to tsq
20:26 whiteknight MURDER DEATH KILL
20:26 Coke (I got it.)
20:26 whiteknight Coke++
20:28 kurahaupo joined #parrot
20:29 cotto_work Coke++
20:29 cotto_work whiteknight++
20:34 Coke pick an environment variable that would stop perlcritic.t from running.
20:35 Coke PARROT_TEST_NO_PERLCRITIC ?
20:36 whiteknight +1
20:36 purl 1
20:38 payload joined #parrot
20:39 whiteknight joined #parrot
20:39 whiteknight EFIREFOXCRASHED
20:42 Coke also needed to re-run headerizer.
20:43 whiteknight I think I might just hate headerizer
20:44 Coke beats the alternative.
20:44 Coke the previous one, anyway.
20:44 cotto_work manually updating everything?
20:45 whiteknight back in my day, we wrote our own function prototypes. Uphill both ways!
20:45 cotto_work and without any of those newfangled typedefs?
20:45 dalek parrot: r44630 | coke++ | trunk/t/codingstd/perlcritic.t:
20:45 dalek parrot: Sometimes you really don't want to wait for this test.
20:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44630/
20:45 dalek parrot: r44631 | coke++ | trunk (6 files):
20:45 dalek parrot: cleanup after removal of src/events.c, src/tsq.c
20:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44631/
20:49 whiteknight One of my pet peeves is spelling errors in code files
20:50 whiteknight at work today I had a file where the original author was talking about "varifying" things and it confused me
20:50 * Coke yays at feedback from AndyD.
20:51 Coke that just leaves fperrad.
20:51 Coke and maybe someone on windows.
20:52 whiteknight I could try a windows build later tonight
20:52 whiteknight no promises
20:53 Austin That's what I like about parrot - useful diagnostic messages!   5 too many positional arguments: 4 passed, 5 expected
20:53 Coke Austin: is that sarcasm?
20:53 whiteknight Austin is always sarcastic
20:53 whiteknight it's his ninja way
20:54 Austin Unless 4 is greater than 5, yes.
20:54 * Coke rereads that error.
20:54 Coke oh.
20:54 Coke sarcasm allowed.
20:56 Austin Although, in fairness, the fact of the error was enough to indicate the problem.
20:56 cotto_work It's still a nice error message.
20:57 whiteknight yeah, and the lower you set your standards, the better it becomes!
20:57 Austin Indeed. The color is nice.
20:57 Coke er, where windows is more specifically some VC++ variant.
20:57 Coke oh, look, we don't support dmake.
20:57 Coke (I knew that, didn't I.)
21:00 Coke ah. i can duplicate fperrad's issue on strawberry.
21:00 Coke (even after my fix.)
21:02 dalek parrot: r44632 | coke++ | branches/rm_cflags (33 files):
21:02 dalek parrot: merge latest changes from trunk.
21:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44632/
21:02 dalek parrot: r44633 | coke++ | branches/rm_cflags/config/init/optimize.pm:
21:02 dalek parrot: This file was removed, we no longer need to not optimize it.
21:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44633/
21:04 Tene lsls
21:05 cotto_work ENOTYOURTERMINALWINDOW
21:07 Austin ENOTTY ?
21:08 Austin Another joke, passing by...
21:08 * NotFound thinking about starting the trend 'social terminal': twityourcommandline.com
21:08 Austin setup.nqp && t/Mimidae/Cuculus.nqp
21:08 Austin (And yeah, I know - I'm gonna fix that later.)
21:10 cotto_work Austin, that filename reaches new levels of awesomeness and geekery.
21:11 * Coke facepalms.
21:11 * Austin sings, "One day I devised my self a plan that should be the envy of most any man: I'd sneak it out of there in a lunchbox in my hand!"
21:14 kurahaupo joined #parrot
21:19 dalek parrot: r44634 | coke++ | branches/rm_cflags/config/auto/warnings.pm:
21:19 dalek parrot: Don't bother to memoize -$conf changes. Fix bug where we were not actually
21:19 dalek parrot: TESTING THE WARNING when we decided what was valid.
21:19 dalek parrot: Must have been a thinko during one of the rewrites - happened to work for the
21:19 dalek parrot: gcc I was using and for non-gcc. fperrad++'s failure pointed out the problem.
21:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44634/
21:30 theory joined #parrot
21:31 rt7 joined #parrot
21:58 dalek rakudo: 37e5746 | pmichaud++ | docs/release_guide.pod:
21:58 dalek rakudo: Update release_guide.pod with recent release information.
21:58 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​7e574683ed0c55ca1155bf78a9ace7c2e7a3c6a
22:19 plobsing hi #parrot
22:19 cotto_work hi plobsing
22:20 plobsing noone complained about tt1477 when I put it to the list, so I'm looking at merging it back sometime tonight
22:45 Whiteknight joined #parrot
22:45 mikehh rm_cflags branch:
22:45 mikehh post-config FAIL - t/steps/auto/warnings-01.t - Failed test:  17
22:45 mikehh all other tests PASS (pre-config, make corevm/make coretest, smoke (#32492), fulltest at r44634 - Ubuntu 9.10 amd64 (g++ with --optimize)
23:04 shockwave joined #parrot
23:05 shockwave Hi.
23:05 shockwave I'm reading: http://docs.parrot.org/parrot/latest/h​tml/src/pmc/resizablepmcarray.pmc.html
23:06 shockwave When something is defined as a function (as opposed to a method), I would think that it's supposed to be used as a subroutine. But,
23:06 shockwave When using something like push_integer(INTVAL value), that looks like it should be a method.
23:07 shockwave Because, the array to which the integer is being added is nowhere in site.
23:07 shockwave I'm know I'm reading that wrong.
23:07 allison plobsing: the general principle of TT #1477 is sound, the right answer is to pass a single PMC argument to Parrot_ext_call and mark the signature as :call_sig
23:07 shockwave Can someone enlighten me.
23:09 shockwave Specifically, is a 'Function' like push_integer() supposed to be used as: $P0.'push_integer'(5) # where $P0 is an resizable array?
23:10 Whiteknight shockwave: where do you see push_integer?
23:10 shockwave void push_integer(INTVAL value)
23:10 shockwave http://docs.parrot.org/parrot/latest/h​tml/src/pmc/resizablepmcarray.pmc.html
23:10 shockwave Whiteknight, ^^^
23:11 Whiteknight shockwave: Ah, that's a VTABL
23:11 Whiteknight VTABLE
23:12 Whiteknight they're sort of like methods
23:12 shockwave ah
23:12 shockwave gotcha
23:12 Whiteknight that function gets called when you do the "push" opcode
23:13 shockwave Whiteknight, like: push $P0, 42 ?
23:13 Whiteknight exactly
23:13 shockwave Whiteknight, Thanks for the info.
23:14 Austin shockwave: in a .pmc file, you will see things called VTABLE ... and other things called METHOD ...; the vtable ones get called by opcodes, while the method ones have to be called like 7   $P0.'method'(...)
23:15 shockwave Austin, what threw me off in this particular case was the lack of VTABLE identifier.
23:15 Austin Yeah, I've seen that in a few places. :(
23:20 shockwave What a minute. Besides using the opcode, am I also supposed to add a vtable override named 'push_integer()' to the class? Or does the array already provide a default version?
23:20 shockwave (I'm still trying to get the hang of the working in PIR)
23:21 cotto_work What are you trying to do?
23:21 cotto_work subclass RPA?
23:21 shockwave cotto_work, Push an integer onto a resizable array.
23:21 cotto_work $P0 = new ['ResizablePMCArray']
23:21 shockwave I guess I could also do:
23:22 cotto_work push $P0, $I0
23:22 shockwave Cool.
23:22 shockwave So I know that I only have to define a push_integer() if I want to *override* the default implementation.
23:23 cotto_work yes
23:23 shockwave Thanks, cotto_work.
23:24 cotto_work np
23:25 Austin shockwave: Why aren't you working in NQP?
23:26 Austin Or is this generated code?
23:26 shockwave Austin, It's the code being generated from my compiler.
23:26 shockwave from/by
23:28 lucian joined #parrot
23:35 plobsing allison: I don't see any call_sig handling in Parrot_pcc_build_sig_object_from_varargs
23:37 allison plobsing: it's on the param side at the moment, but the flags are in place
23:38 allison plobsing: and what you're describing could be handled by a simple flattened array arg
23:38 plobsing allison: and for returns?
23:38 allison plobsing: returns are about to be melded with calls
23:39 allison as in, this weekend
23:39 allison so, we won't have to deal with those bizarre variable pointers passed around in the call
23:40 plobsing allison: so how will we get multiple return values back in C?
23:41 plobsing also, there are embedding cases where the embedder is simply forwarding parrot to users (eg: Parrot::Embed). Requiring them to build a call_sig object requires them to know more about parrot than they might want.
23:41 allison plobsing: an array will be fine for most Parrot::Embed cases
23:43 allison plobsing: at the moment was planning to keep the Parrot_ext_call interface after the internal change
23:44 allison plobsing: it would be possible to expose setting the args and fetching return values as separate function calls (which they are internally)
23:45 kid51 joined #parrot
23:48 plobsing allison: setting args and fetching returns is great *if* you know what the signature means. That means either Parrot::Embed needs to parse PCC signatures itself or parrot has to provide a way for embedders to know what it wants in terms of args/returns.
23:50 allison plobsing: I don't understand. It's necessary to pass a signature when setting arguments or fetching returns.
23:50 allison that specifies what arguments you're passing, or what returns you're expecting
23:51 plobsing allison, yes. but Parrot::Embed forwards that to users. It doesn't know. It shouldn't have to know.
23:51 NotFound BTW I'll probably be busy most of the weekend but I'll try to keep an eye at the hackathon
23:53 allison plobsing: yes, agreed, but it doesn't have to know now. I don't see where it would have to parse signature strings.
23:54 allison it's just a pass-through
23:54 plobsing allison: it needs some way of knowing what parrot wants for a given signature in order to marshal from perl's stack.
23:55 snarkyboojum joined #parrot
23:55 plobsing functionality for setting args and getting returns is pretty useless if you don't know what is expected
23:56 Whiteknight plobsing: that's getting to a pretty advanced case where you want both variadic params and returns from C
23:56 plobsing how many elements should I pop of perl's stack? should I coerce them to strings? wrap them as PMCs?
23:56 Whiteknight we could, for instance, use :slurpy returns to simplify the list
23:58 * allison spelunking through plobsing's diffs
23:59 allison perl 5 is pretty much always :flat on the caller side and :slurpy on the return side
23:59 allison it has braindead argument semantics compared to Parrot (or Perl 6)

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

Parrot | source cross referenced