|
Parrot 2.1.1 Released! | parrot.org/ | Tasks: PCC deprecations hackathon on Saturday, TT #389 branch Set by moderator on 2 March 2010. |
|||
|
00:07
petdance joined,
petdance_ joined
00:19
cotto_work joined
|
|||
| Coke waits for folks to tell him how broken his branch is. | 00:20 | ||
| ash_ | does parrot have file encoding detection? | 00:21 | |
|
00:22
bubaflub joined
|
|||
| Tene | Coke: is x86_64 linux gcc gnu make a useful test? | 00:23 | |
| Coke | can't hoit. | ||
| Tene | okay, I'll think about it after I take a nap | ||
| ash_: not as far as I know | 00:24 | ||
| ash_: doesn't ICU have something to do that? You could probably build something to do it pretty easy | |||
| 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, | ||
| icu has it | |||
| Tene | yeah, dlfunc libicu | ||
| ash_ | but icu is optional, so, yea | ||
| for now, icu seems fine, but maybe we can re-write it in pure parrot/perl6 (which is eventually parrot) | 00:26 | ||
| cotto_work | icu is comparable to parrot in size | 00:28 | |
| Tene | sup dawg, I heard you like parrots. | ||
| cotto_work | nom | ||
| 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:31 | |
| Tene | because svn fail? | 00:33 | |
| cotto_work | It might be because of svn-- | 00:34 | |
|
00:42
rblackwe joined
00:45
patspam joined
|
|||
| Coke | ... do we support win9x? | 00:49 | |
| I vote no on that one. | |||
| (TT #471) | 00:50 | ||
| cotto_work | no we don't | ||
| I'm pretty sure that decision was made explicitly at some point. | 00:52 | ||
|
00:53
abqar joined
00:58
snarkyboojum joined
|
|||
| 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 | |
|
00:58
tetragon joined
|
|||
| mikehh | Coke: 2) with g++ the post-config test I reported before | 00:58 | |
| Coke: some codetest failures - looking at now | 01:00 | ||
|
01:04
theory joined
|
|||
| dalek | TT #471 closed by coke++: [PATCH] stops spawnw tests from running on Win9x | 01:05 | |
| Coke | mikehh: you don't have 'cpuarch' defined in config? | 01:07 | |
| mikehh | Coke: as far as I can see - yes (from config_lib.pasm -> set P0["cpuarch"], "amd64") | 01:21 | |
| Coke | mikehh: hurm. wonder why you're getting that error. | 01:23 | |
| mikehh | Coke: looking | 01:27 | |
| Coke: auto::arch comes after init::optimize | 01:33 | ||
|
01:39
Whiteknight joined
|
|||
| cotto_work wanders off to do not work things | 01:44 | ||
| Whiteknight | (not work)++ | 01:46 | |
|
02:07
tetragon_ joined,
parthm joined
|
|||
| Coke finally gets gcc installed on his mac. | 02:09 | ||
| dukeleto | 'ello | 02:10 | |
|
02:28
parthm left
|
|||
| dalek | tracwiki: v20 | whiteknight++ | CallingConventionsTasklist | 02:30 | |
| 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" | |||
| tracwiki: trac.parrot.org/parrot/wiki/Calling...ction=diff | |||
|
02:35
eternaleye joined,
hercynium joined
|
|||
| cotto | It appears that I can now cross "set off the fire alarm" off my todo list | 02:42 | |
| itwb if headerizer didn't touch files that didn't need to be changed. | 03:11 | ||
| s/itwb/iwbn/ | |||
| plobsing | cotto: I hear ya. ditto on configure (though that might be harder) | 03:13 | |
|
03:29
atrodo joined
|
|||
| dalek | rrot: r44612 | cotto++ | trunk (4 files): [ops] remove unused prederef and reserved ops and supporting code/docs |
03:31 | |
| rrot: r44613 | cotto++ | trunk (2 files): [ops2c] remove some unused enums from op_jump_t, plus supporting code |
|||
| rrot: r44614 | cotto++ | trunk/PBC_COMPAT: [pbc] PBC_COMPAT bump from previous op changes |
|||
|
03:35
janus joined
|
|||
| dalek | rrot: r44615 | cotto++ | trunk (3 files): [ops] remove used but unnecessary PARROT_JUMP_ENEXT |
03:47 | |
|
03:54
petdance joined
|
|||
| dalek | rrot: r44616 | cotto++ | trunk/MANIFEST.SKIP: [MANIFEST] manifest skip update |
04:04 | |
| rrot: r44617 | cotto++ | trunk (2 files): [ops] remove PARROT_JUMP_ABSOLUTE, which also appears to be unused |
04:20 | ||
|
04:31
parthm joined
04:33
kthakore joined
|
|||
| dalek | rrot: r44618 | cotto++ | trunk/lib/Parrot/OpsFile.pm: [ops2c] simplify code some, remove unused OP_SIZE |
04:37 | |
| parrot: c191159 | dukeleto++ | (2 files): Give pgTAP a much-needed haircut and forego using pg_prove version of Postgres that is being used. We get rid of all functions that deal with schema-verification and use psql directly instead of using pg_prove, so as to not have another external dependency that users need to run our tests. Your welcome. |
04:49 | ||
| cotto | my welcome? | ||
| dalek | rrot: r44619 | cotto++ | trunk (2 files): [ops] remove unused flags member from op_info_t struct |
04:53 | |
| dukeleto | cotto: yes, your welcome :) | 04:56 | |
| dukeleto can't spel | |||
|
04:59
slavorgn joined
|
|||
| dalek | parrot: e757b80 | dukeleto++ | (2 files): Add a note about using pgTAP Lite and update TODO |
05:00 | |
|
05:03
GeJ joined
|
|||
| dukeleto | anybody here a moderator on parrot-dev ? there is an important-ish email waiting in the queue | 05:06 | |
| Parrot_String objects seems to only be defined if PARROT_IN_CORE is defined. is that by design? | |||
| cotto | I think Coke would be a good person to bug about parrot-dev issues. | 05:07 | |
| 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 pastebin.com/kAQ1J4VJ | 05:28 | |
| dukeleto is reading comments in src/extend.c . scary | 05:33 | ||
| parthm: maybe try sprinkling in some print statements to see what is going on? | 05:35 | ||
| did Parrot_call_sub get renamed recently to something else? | 05:36 | ||
| oops, no, there it is in parrot/extend.h | |||
| parthm | dukeleto: it seems n < 2 is returning true. pastebin.com/uqFdeKxS | 05:40 | |
| dukeleto | parthm: sounds like you found a bug :) maybe < is broke in squak? | 05:41 | |
| oh my. mod_parrot includes parrot/parrot.h . isn't that a big no-no ? | |||
| 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:42 | |
| 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:44 | |
| 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 | ||
| parthm++ | |||
| parthm: creating tickets will give you some karma, as well :) | |||
| karma parthm | |||
| purl | parthm has karma of 1 | ||
|
05:48
Austin_Hastings joined
|
|||
| parthm | dukeleto: trac.parrot.org/parrot/ticket/1494 :-) i am quite excited about parrot. will also report on parrot-dev | 05:49 | |
| dukeleto | parthm: sweet! welcome to the party :) | 05:50 | |
| parthm: yes, email parrot-dev and reference the ticket you just made, and somebody should tell you what is up, or fix it :) | 05:51 | ||
| cotto | Clearly it should be using the fact op. | 05:54 | |
| dukeleto | cotto: that doesn't fix the fact that < is broken | 05:59 | |
| dukeleto attempts to not feed the trolls | 06:00 | ||
| bacek_at_work | cotto, holley schitt. r44619. flags aren't used at all? | ||
| So we reduced scope of opsc! :) | |||
| cotto | exactly | 06:01 | |
| I made lots of small commits so that it's easy to bisect anything that splodes, but opsc just got easier. | |||
| cotto is hungry for troll foods | 06:02 | ||
| also, soup ingredients | |||
| time for shopping | 06:03 | ||
| dalek | TT #1494 created by parthm++: factorial example in languages/squaak gives incorrect result | ||
| parthm | fwiw (n == 0 or n == 1) makes factorial work ok :-) | 06:05 | |
| 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:09 | |
|
06:10
snarkyboojum joined
|
|||
| 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:13 | |
| 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:16 | |
| parthm: but yes, I agree. using < in the example is kind of a like a test :) | 06:17 | ||
| parthm | dukeleto: there is the t directory with some tests. how do i run the tests. README doesn't seem to say anything. | 06:20 | |
| dukeleto: nevermind. parrot setup.pir test. | 06:26 | ||
| the problem seems to be with the argument passed. n < 2 == 1 but with constants 10 < 2 == 0. | 06:35 | ||
|
06:45
chromatic joined
06:54
fperrad joined
07:08
bacek joined,
uniejo joined
|
|||
| bacek | o hai | 07:30 | |
| cotto | ohelo | 07:33 | |
| treed | ehlo | ||
| bacek | cotto, I can't spot any usage of PARROT_JUMP_RELATIVE | 07:34 | |
| looks like we can kill it (and jumps field inside ops) | 07:35 | ||
| cotto | There's on in src/debug.c | ||
| bacek | any real usage | 07:36 | |
| 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. | ||
| I missed this one | |||
| 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 | |
| I'm not sure if it's possible or not | |||
| bacek | hang on a scond | ||
| It's in OpCode.pm | 07:39 | ||
| cotto grabs a scond | |||
| bacek | :) | ||
| 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... | ||
| cotto | compilers/imcc/parser_util.c +1362 | ||
| bacek | there is only 1362 lines in this file.. | 07:41 | |
| cotto | It makes me think of a line from Predator | ||
| bacek | and last one with coda | ||
| cotto | sorry. 551 | ||
| bacek | oh noes | 07:42 | |
| cotto | dukeleto, you awake? | 07:43 | |
| bacek | Nope. we can't get rid of it. | ||
| cotto | dukeleto, nm | ||
| NotFound seemed to think it was necessary for disassembly when I asked earlier today. | |||
| bacek, do you know what'd happen if we took that code out of imcc? | 07:44 | ||
| bacek | "BAD THINGS" | ||
| purl | "BAD THINGS" is a movie, I think. | ||
| cotto | That'd be my guess. | 07:45 | |
| bacek | It sets ITBRANCH flag. | ||
| cotto | Well, at least most of the flags are gone. | ||
| What's that do/ | 07:46 | ||
| ? | |||
| bacek | I do think that you broke it already :) | 07:47 | |
| We need some PARROT_JUMP_WHATEVER flag | |||
| cotto | orly? I ran fulltest several times | ||
| bacek | testsuite doesn't do fulltest with -O2 flag in IMCC | 07:48 | |
| cotto | fulltest-- | ||
| that's not very full | |||
| karma fulltest | 07:49 | ||
| purl | fulltest has neutral karma | ||
| cotto | next question: how do we make sure imcc optimizations get tested? | 07:51 | |
| Yup. I broke it. Sad face. | 07:53 | ||
| looks like it's pretty trivial. I'll be adding a 'testo' make target shortly | 07:55 | ||
| dalek | rrot: r44620 | bacek++ | trunk/t/native_pbc (4 files): Rebuild native pbcs |
07:56 | |
| bacek | testo target looks reasonable. | 07:57 | |
| or we can ignore broken imcc optimisations... | 07:59 | ||
| 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
08:07
parthm left
|
|||
| cotto | Hmmm. After reverting the relevant commits, testO2 seems to be just as broken as before | 08:07 | |
| This may just be a case of imcc-- | 08:09 | ||
| dalek | rrot: r44621 | cotto++ | trunk/config/gen/makefiles/root.in: [build] add a testO2 target to run parrot with imcc optimizations |
08:13 | |
| cotto | Yeah. -O2 was all kinds of broken before I started and even -O1 doesn't look very good. | 08:15 | |
| That's what we get for not testing these things. | 08:16 | ||
|
08:16
snarkyboojum joined
|
|||
| cotto | imcc optimizations are not our friend | 08:18 | |
| bacek | s/optimizations are/ is / | 08:19 | |
| chromatic | I don't remember the last time they worked. | 08:20 | |
| bacek | Than ignore it | ||
| cotto | Sooooo.... why aren't we throwing up big red flags and scary warning when someone runs imcc with -O? | 08:21 | |
| chromatic | Because we forgot that option even existed. | 08:22 | |
| cotto | The Optimzations that Time Forgot | ||
| chromatic, would it be worthwhile to rip them out? | 08:23 | ||
| chromatic | Fine by me. | 08:25 | |
| dalek | rrot: r44622 | cotto++ | trunk/config/gen/makefiles/root.in: [build] apparently imcc optimizations are extravagantly broken, not just my recent changes |
08:29 | |
|
08:49
lucian joined
09:28
parthm joined
09:38
lucian joined
09:48
allison joined
09:49
joeri joined
|
|||
| dalek | rrot: r44623 | mikehh++ | trunk/MANIFEST.SKIP: re-generate MANIFEST.SKIP |
10:07 | |
| TT #1495 created by mj41++: MacOS and one WinXP TapTinder clients hanging on t/library/pg.t | 10:12 | ||
|
10:13
parthm left
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32484), fulltest) at r44623 - Ubuntu 9.10 amd64 (g++ with --optimize) | 10:20 | |
|
10:31
joeri joined
10:32
AndyA joined
10:33
parthm joined
|
|||
| parthm | hello. is it recommended to follow the trunk for parrot or to use the monthly tarball. | 10:34 | |
| chromatic | What do you intend to do with Parrot? | 10:36 | |
| 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:38 | |
| allison | parthm: most likely you'll want the monthly releases for that. if you absolutely need the latest features, use trunk | 10:39 | |
| parthm | allison: thanks. i will go with the tarballs then and do monthly upgrades. | 10:40 | |
|
10:55
parthm left
11:35
bacek joined
11:51
allison joined
12:22
ruoso joined
12:42
petdance joined
13:06
whiteknight joined
13:10
payload joined
|
|||
| whiteknight | good morning #parrot | 13:36 | |
|
13:37
riffraff joined
|
|||
| mikehh | hi there whiteknight | 13:37 | |
|
13:37
AndyA joined
|
|||
| whiteknight | good morning mikehh, how are you today? | 13:37 | |
| mikehh | fine - just testin' | 13:38 | |
| 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:44 | ||
|
13:45
atrodo joined
|
|||
| mikehh | it works fine for me on Ubuntu 9.10 amd64 | 13:45 | |
| it removes an warning with init::optimize if I do that | 13:48 | ||
| and the pre/post-tests are ok (except for 1 with g++ - not related) | 13:50 | ||
| Coke: ping | 13:56 | ||
| dalek | rrot: r44624 | coke++ | branches/rm_cflags/config/auto/warnings.pm: Fix FAIL with mingw (gcc 3.4.5) - check on an invalid option is a little naive: fperrad++ for the report. |
||
| Coke | dukeleto: message approved. | 13:57 | |
| purl | Sorry, I've never seen approved before. | ||
| mikehh | Coke: did you see my comments just above | 13:58 | |
| Coke | mikehh: yes, just caught up. | 13:59 | |
| I have no problem with re-ordering the steps. kid51 will have a chance to review it before we merge back. | |||
| mikehh | ok I'll commit it | 14:00 | |
|
14:02
whiteknight joined
|
|||
| whiteknight is trying to install VisualStudio 2010 ReleaseCandidate on his computer, but the installer keeps forcing the computer to reboot | 14:03 | ||
| how quaint: an OS that requires a complete reboot any time any aspect of the system changes | |||
| Coke | mikehh++ | 14:04 | |
| dalek | rrot: r44625 | mikehh++ | branches/rm_cflags/lib/Parrot/Configure/Step/List.pm: move auto::arch and auto::cpu to just before init::optimize to make sure cpuarch is set |
14:11 | |
| rrot: r44626 | mikehh++ | branches/rm_cflags/config/init/optimize.pm: fix codetest failure - trailing space |
|||
|
14:16
smash joined
|
|||
| smash | hello everyone | 14:16 | |
| dalek | kudo: 4055fde | tene++ | src/Perl6/Actions.pm: Revert "Re-work try {} to ignore control exceptions" |
||
| mikehh | rm_cflags branch: | 14:38 | |
| All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32490), fulltest) at r44626 - Ubuntu 9.10 amd64 (gcc with --optimize) | |||
| Coke | mikehh++ | 14:39 | |
| hopefully I fixed fperrad's error, also. | 14:40 | ||
| msg darbelo - can you test out rm_cflags with --optimize on sun? | |||
| purl | Message for darbelo stored. | ||
| mikehh | I've still got that 1 post-config test failing with g++ - t/steps/auto/warnings-01.t - Failed test: 17 | 14:42 | |
| otherwise everything ok there too | 14:43 | ||
|
14:50
patspam joined
15:06
parthm joined
|
|||
| parthm | if i try to build ($parrot setup.pir) a lang shell generated by mk_language_shell.pl, it seems to be failing pastebin.com/VRwSsQAL | 15:11 | |
| i suspect its because of what --with-pmc is doing but i don't know enough about parrot yet to be sure. | |||
| i am using parrot-2.1.1 | 15:12 | ||
| 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? | ||
| allison | parthm: I'm looking at your error message... | 15:18 | |
| parthm: have you made any changes to your language? | |||
| parthm | allison: no changes, just the "echo 0 > PARROT_VERSION" in the listing | 15:19 | |
| ^ PARROT_REVISION | |||
| allison | parthm: this error looks suspicious "/usr/local/include/parrot/2.1.1: No such file or directory" | 15:20 | |
| parthm: like it's not finding your parrot install | |||
| parthm | allison: i am running parrot directly from the parrot-2.1.1 folder , built with 'perl Configure.pl ; make' | ||
| 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 | ||
| dukeleto | parthm: you should always use an installed version of parrot or you will get strange errors sometimes | ||
| parthm: perl Configure.pl --prefix=foo | 15:22 | ||
| parthm | allison, dukeleto: sounds fine. will do that. | ||
| allison | parthm: where "foo" is something like "/home/parthm/src/parrot-install" | ||
| parthm is building with --prefix | 15:24 | ||
| NotFound | Who said PARROT_JUMP_RELATIVE is not used? You don't have ack? | 15:25 | |
| src/runcore/main.c | |||
| 377: if (((opinfo->jump & PARROT_JUMP_RELATIVE) | |||
| rc/debug.c | |||
| 2571: (info->jump & PARROT_JUMP_RELATIVE)) { | |||
| parthm | allsion, dukeleto: that worked well. thanks. sorry for the confusion. | 15:27 | |
|
15:27
janus joined
|
|||
| dukeleto | parthm: no worries. I have made that mistake many times before :) | 15:27 | |
| parthm | dukeleto: i am still ramping up on parrot. the people on irc have been patient :-) | 15:28 | |
| dukeleto | allison: what do you say about including parrot/parrot.h oustide of parrot core? | 15:30 | |
| allison | dukeleto: generally shouldn't be needed | 15:31 | |
| dukeleto: parrot/extend.h should be enough, and if it isn't, should be modified (sanely) | |||
| 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 | ||
| 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? | ||
| allison | dukeleto: yes | ||
| dukeleto | allison: yes, I was under the impression that parrot.h was *only* for parrot core, and I think that is a good idea | ||
| Tene AFK | |||
| allison | Tene: yes, what's the message subject? | ||
| dukeleto: yes, that's the intention | |||
| Tene | Subject: Weird behavior of subclasses of Exception | ||
| allison | Tene: thanks, will look at it | ||
| NotFound | After the introduction of STRNULL we can't even check if a parrot string is null out of core. | 15:34 | |
| dukeleto | NotFound: yeah, that is what PL/Parrot is running into | 15:35 | |
|
15:35
whiteknight joined
|
|||
| NotFound | dukeleto: I just answered that message by suggesting to open a trac ticket. | 15:36 | |
|
15:38
Psyche^ joined
|
|||
| NotFound | BTW we still have an example in docs/embed.pod that uses: #include <parrot/parrot.h> | 15:39 | |
| dukeleto | NotFound: the horror! | 15:41 | |
| purl | i guess the horror is a genre, or a collection of related genres. | ||
| dukeleto | NotFound: does the example work without including parrot.h ? | 15:42 | |
| NotFound | dukeleto: I don't care. Including parrot.h is wrong. | 15:44 | |
| And I can't test in all operating systems where it can fail. | 15:45 | ||
| tewk | w | ||
| NotFound | I think we must just delete all examples in that file and just say to look for examples in the examples directory. | 15:46 | |
| dukeleto | NotFound: trac.parrot.org/parrot/ticket/1496 | 15:48 | |
| NotFound: I agree that including parrot.h is wrong, wasn't arguing that | |||
| NotFound | Then please don't ask me if it works. | 15:49 | |
| 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. | ||
| dukeleto | NotFound: We are agreeing :) | 15:56 | |
| NotFound: things are getting lost in translation. | |||
| NotFound | dukeleto: the example that uses the correct headers and is supposed to work (I'm about to check) is examples/emebed/cotorra.c | ||
| dalek | TT #1496 created by dukeleto++: Parrot_String-related functions are only available from parrot/parrot.h | 15:57 | |
| NotFound | dukeleto: I'm not upser, just a little tired of the slow advance in that part. | 15:58 | |
| 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:00 | |
| NotFound | Let's hope so :) | 16:01 | |
|
16:31
lucian joined
|
|||
| whiteknight | the public API has definitely never been exercised too rigorously, as I understand | 16:34 | |
| I thought mod_parrot was using it, but apparently not | |||
| NotFound | whiteknight: mod_parrot abuse it. | ||
|
16:42
cotto_work joined
|
|||
| 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! | ||
| purl | Your dreams were your ticket out. | ||
| japhb | dukeleto, thanks. ;-) | ||
| dukeleto | whiteknight: mod_parrot uses parrot/parrot.h and hence uses the internals API | 16:51 | |
| whiteknight | right | ||
| 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 | ||
| whiteknight | As I recall from earlier discussions about the external API is that API functions were really being added in an on-demand fashion | ||
| NotFound | dukeleto: I think others tried, but gived up ;) | ||
| 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. | ||
| japhb | *Sigh* Compiling Parrot + Plumage + Rakudo in quick succession makes me really want a faster computer ... | 16:54 | |
|
16:57
davidfetter joined
17:01
parthm left
17:03
Austin joined
|
|||
| Austin | Buenos dias, #parrot. | 17:17 | |
| whiteknight | hello Austin | 17:18 | |
| cotto_work | hi Austin | ||
| Austin | Today is mocking day. | ||
| whiteknight | well you're a big stupid head | ||
| there, you've been mocked | |||
| Austin | Your kid won't be able to afford college. | ||
| there, you've been mocked. | 17:19 | ||
| And in a few hours, Kakapo will mock us all. | |||
| Unless I discover another parrot bug. | |||
| cotto_work | That'll never happen. | ||
| Austin | Heh | ||
| Austin touches wood. | 17:20 | ||
| cotto_work | that can be interpreted in more than one way | ||
| whiteknight | did that "classes can't have the same last name" issue get handled in any way? | ||
| Austin | Yeah, I renamed the f*****g class. | 17:21 | |
| whiteknight | no, that's goddamn horible | 17:22 | |
| damnit. let me look at the ticket. We're solving this today | |||
| Austin | "Matcher" -> "SigMatcher" | ||
| I don't mind the three extra characters. It was the hours spent tracking it down that gripes my wagger. | 17:23 | ||
| whiteknight | I mind it. it's stupid behavior | 17:25 | |
| mind-blowingly stupid | |||
| ls | |||
| Austin | Man, does anyone even realize that this works: 7 method mock_class($parent = 'P6object', :$named = mock_class_name($parent)) { | 17:34 | |
|
17:36
theory joined
|
|||
| Coke | ... i have no idea what that would even do. =-) | 17:36 | |
| 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:38 | |
| *because it = because NQP | 17:39 | ||
| Tene | Austin: that's by-design. | 17:40 | |
| 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. :) | ||
| 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:42 | |
| dalek | kapo: 8e100d6 | austin++ | : review: gitorious.org/kakapo/kakapo/commit/...7652c809e9 |
17:51 | |
| kapo: 0e28756 | austin++ | s (3 files): More progress on Matchers |
|||
| kapo: b21403a | austin++ | (30 files): Checkpoint. |
|||
| Coke | "different in my test file" always concerns me. | 17:54 | |
| how do we know that your test file isn't so different as to not exhibit the same behavior? =-) | |||
| is anyone here able to build rakudo on feather? (or any linux box, for that matter)? | 17:56 | ||
| Tene | Coke: WFM | 17:57 | |
| I have a kind of old parrot, though. | |||
| couple of weeks or so | |||
| Coke | Mine fails with the recommended version from --gen-parrot | ||
| Linux feather 2.6.18-6-xen-686 #1 SMP Sun Feb 10 22:43:13 UTC 2008 i686 GNU/Linux | |||
| 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
|
|||
| Coke | Austin: why do you think get_class should work on a namespace? | 17:59 | |
| (certainly the op codes for get_class don't say that.) | |||
| Austin | I stole that code from Pmichaud, and I figure he knows what he's doing? | ||
| Coke | er, op docs. | ||
| Austin | This is about TT# 1492 ? | 18:00 | |
| Coke | yes. | 18:01 | |
| 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. | ||
| Coke | classobj = VTABLE_get_class(interp, key); | 18:03 | |
| namespace seems to have a vtable get_class and a METHOD get_class that do 2 different things. | 18:05 | ||
| Austin | Yeah, I was pretty impressed by that. | 18:06 | |
| Coke | the macro in one case might expand to the code in the other... | ||
| cotto_work | Coke, wfm | 18:07 | |
| Coke | cotto_work: (*&#$. | 18:08 | |
| on feather or elsewehre? | |||
| cotto_work | on my local machine | ||
| Coke | k. | ||
| cotto_work | ubuntu 9.04 x64 | ||
| Coke | I'll have to try on my osx box that finally got xcode reinstalled this evening and see if it works there. | ||
| wanted to do some bug admin work, but not having a working rakudo makes that realllly hard. =-) | |||
| whiteknight | Coke: the get_class METHOD does the same thing as the get_class VTABLE, just in a stupid way | 18:12 | |
| if (PMC_IS_NULL(ret_class)) ret_class = PMCNULL; is useless | 18:13 | ||
| 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 | ||
| I was planning to delete it and create a fresh one tomorrow, but today works just as well | |||
| dalek | rrot: r44627 | allison++ | branches/pcc_reorder_results: Removing unused calling conventions refactor branch |
18:34 | |
| rrot: r44628 | allison++ | branches/pcc_hackathon_6Mar10: Creating branch for PCC deprecation item to reorder set_returns and get_results. |
|||
| parrot: a4516e0 | (David Fetter)++ | HACKING: Changed HACKING to HACKING.git, which is more appropriate. |
18:35 | ||
| allison | whiteknight: okay, the easy part is done now :) | 18:36 | |
| whiteknight | w00t | ||
| Coke | seen fperrad? | ||
| 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] | ||
| whiteknight | holy crap. This code for working with namespaces and Classes in src/oo.c is terrible | 18:39 | |
| Remarkably inefficient across the board | |||
| 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 | ||
| ...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. | |||
| 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. | ||
| 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:47 | |
| And for that matter, why doesn't a .namespace with :methods in it just automatically create a class object? | 18:48 | ||
| Austin | It does, just as soon as you call 'get_class', see? | 18:49 | |
| whiteknight | Austin: hellz to the no it doesn't | ||
| Austin | Heh | ||
| whiteknight | you have to call "class_nsp = newclass namespace_nsp" to get what you want now | ||
| 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 | ||
| Austin | just do 7 system("grep NAME ../include/parrot/pmc_types.h") | ||
| 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
|
|||
| 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 | |
| I dub that pattern the "Crapulator" | |||
| dukeleto | whiteknight: lulz | ||
| dukeleto pours whiteknight a stiff drink | 18:54 | ||
| Austin | The term for a program that prints out its own source code is a "Quine" | 18:55 | |
| I leave the joke to you. | |||
| 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 | ||
| s/rigourous testing/any testing whatsoever/ | 18:56 | ||
| Austin | Hmm. And we're all out of hope and masking tape. | ||
| 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 | |
| not just a test fails, the whole damn build fails | |||
| 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 | ||
| Coke | shouldn't you return PMCNULL, not NULL? | ||
| whiteknight | Coke, I meant "PMCNULL", but it really doesn't matter in this case | 18:59 | |
| Coke | k | ||
| cotto_work | dukeleto, we have a page for that: ItsABugHunt | 19:00 | |
| Coke | xenomorph? | ||
| 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 | ||
| whiteknight | not just tests. Some of these codepaths need to be hit with a hammer | ||
| Coke | (these codepaths need tests). there's already a page that shows all those paths. | ||
| someone's running code coverage against parrot already. | 19:01 | ||
| dukeleto | Coke: link? And I hear ya, but having a human explain things is sometimes more useful | 19:02 | |
| Coke | coverage? | 19:03 | |
| purl | hmmm... coverage is cv.perl6.cz | ||
| whiteknight | it's not just code coverage. We can cover code with two different inputs and one works and one doesn | ||
| Coke | tapir2.ro.vutbr.cz/cover/cover-resu...6/c_cover/ | ||
| (there's the most recent c code coverage report.) | |||
| Tene | whiteknight: chromatic thinks that tt384 might need pmcproxies to be instantiated much earlier in parrot startup. | 19:04 | |
| whiteknight | Tene: exactly | ||
| I'm hoping and praying for that now | |||
| 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 | |||
| Tene | whiteknight: work on that would certainly be welcome, and then we could merge in tt384 branch | 19:05 | |
| erm, 389 | |||
| 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. | ||
| Tene | whiteknight: that branch can't merge until we get it working, which c thinks requires creating pmcproxies early | ||
| whiteknight | Tene: okay. I keep hoping to be able to work on it myself but I've been busy | 19:07 | |
| Tene nods. | |||
| whiteknight | Tonight or tomorrow night I might be able to do it | ||
| 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. | ||
| 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 | |
| ...and the more I understand, the more parts I find to criticize... | |||
| Tene | I think I'm scheduled to work on rakudo tonight, but tomorrow afternoon is probably open. | ||
| 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. | ||
| whiteknight | if we can get that branch knocked off and merged this weekend I think everybody wins | ||
| Tene: I have no plans to leave any time soon. I only criticize things that I love, because I want them to be better | |||
| dalek | parrot: 7a54f57 | (David Fetter)++ | HACKING.postgres: Added HACKING.postgres |
||
| Tene | "namespace with :methods -> class" probably won't work, as there's no information on whether it should be a subclass of anything, etc. | ||
| whiteknight | when I stop finding problems, it's because I've stopped looking | ||
| yeah, you're right about that | |||
| 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. | ||
| whiteknight | haha, yeah | ||
| 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? | ||
| Tene | events.c is unused? | ||
| cotto_work | yup | 19:12 | |
| tapir2.ro.vutbr.cz/cover/cover-resu...nts-c.html | |||
| Tene | speaking of creepy. | ||
| afk teaching | |||
| dukeleto | cotto_work: there is always the version control history if someone actually cares about them. KILL HER! | ||
| dukeleto hopes somebody gets the Jurassic Park reference | 19:13 | ||
|
19:13
payload joined
|
|||
| cotto_work | will do so when I get home tonight | 19:13 | |
| alternately, it's 15 minutes of work if someone who can commit wants to do it now | |||
| whiteknight | I thought tsq was DEPRECATED | 19:15 | |
| no idea about events.c. Maybe allison knows better | |||
|
19:15
jsut_ joined
|
|||
| allison | tsq is deprecated | 19:16 | |
| much of events.c was replaced by scheduler.c | |||
| I'm not sure if events.c is entirely unused, but wouldn't be surprised | |||
| whiteknight | allison: I think the coverage results indicate events.c is unused | 19:17 | |
| cotto_work | allison, it's unused. | ||
| the build works and make test passes without it | |||
| 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? | ||
| (discussion) I prefer the mailing list for discussion. wikis are good for fluid documentation. | |||
| 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? | ||
| whiteknight | Coke: #982 | 19:19 | |
| allison | (not even ifdefd sections for various platforms?) | ||
| Coke | whiteknight: that ticket is closed, invalid. | ||
| whiteknight | Coke: you closed it because a function was used in src/events.c | ||
| which, as we are discussing now, is likely unused as wel | 19:20 | ||
| Coke | yup. the original premise of the ticket is wrong. | ||
| whiteknight | Coke: premise looks right to me. The functions are not used, so the file can be removed | ||
| Coke | the functions /are/ used. | 19:21 | |
| (peek_entry is used. the functions that call it seem to be used.) | |||
| 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 | ||
| cotto_work | allison, I'll make sure that none of the functions are referenced before removing the files | 19:23 | |
| whiteknight | cotto_work: I've got a hit in src/thread.c. queue_lock and queue_unlock appear to be called | 19:24 | |
| don't know what they do yet | |||
| Coke | once rm_cflags is merged back, many of the unused static functions will be removed. | 19:25 | |
| 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 | ||
| cotto_work | That's the one function I had to delete. | ||
| It'll be nice to get that code out. | 19:27 | ||
| whiteknight | yeah, remove those two files and that one function, build works perfectly | ||
| cotto_work | For some reason I thought it was harder to remove than it turned out to be. | ||
| (plus scaffolding) | |||
| whiteknight | I think include/parrot/tsq.h can go too | ||
| cotto_work | and events.h | 19:28 | |
| whiteknight | Make sure the scheduler isn't cross-referencing anything there, but yes | ||
| actually, I'm checking that now | |||
| cotto_work | thanks | 19:29 | |
| Are you going to delete the files too? | |||
| whiteknight | nope, not yet anyway | ||
| Austin | One of the problems with Parrot is that it's possible to build an object that you're afraid to interact with. | ||
| whiteknight | okay, I got a missing token hit in src/thread.c when I tried deleting those files blindly | ||
| nevermind, false alarm | 19:30 | ||
| (it was the prototype for remove_queued_suspend_gc) | |||
| cotto_work | 1 minute to delete the files, 14 to chase down the loose ends | ||
| whiteknight | and then 23 hours and 45 minutes to PARTY! | 19:31 | |
| cotto_work: build goes just fine until tools/build/h2inc.pl tries to find events.h | 19:32 | ||
| 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 | ||
| cotto_work | w00t | ||
| 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 | ||
| whiteknight | meh | 19:37 | |
| Tene | Ah, yes, I was thinking of scheduler.c | 19:39 | |
|
19:45
zpmorgan joined
|
|||
| whiteknight | cotto_work: all tests pass. | 19:54 | |
| purl | Time to write more tests! | ||
| whiteknight | Any objections to this commit? | ||
| cotto_work | I object to not committing it. Is that what you mean? | 19:55 | |
|
20:00
bacek joined
|
|||
| cotto_work | hio bacek | 20:01 | |
| whiteknight | Okay, I'm going to commit this sucker | ||
| cotto_work | it's always nice to shed a couple kloc | 20:04 | |
| 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. | ||
| Coke | we /removed/ it. | ||
| cotto_work | lolwut? | 20:07 | |
| purl | lolwut is the pic with that freaky giant pear with a mouth | ||
| bacek | ~~ | ||
| cotto_work | Le | ||
| Let's unremove it. | |||
| 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 | ||
| cotto_work | I'd put "birth of your child up there", but that's definitely nice too. | ||
| s/up there"/" up there/ | 20:08 | ||
| bacek | whiteknight, we do need CallSignatureReturns. Trust me :) | ||
| whiteknight | bacek: I firmly disbelieve | ||
| I do not think we need it | 20:09 | ||
| bacek | invoke_from_c_args(interp, "P->P", self, &result) | ||
| inside "invoke_..." we have to remember pointer &result | |||
| Because using valist twice isn't portable | 20:10 | ||
| davidfetter | greatest pleasures? well, according to temujin, they're these: | ||
| 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. | |||
| 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:11 | |
| dalek | rrot: r44629 | whiteknight++ | trunk (8 files): [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 | |
| 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 | ||
| bacek | and? | ||
| whiteknight | ...and party? | ||
| bacek | we have to process valist fully before | ||
| and store pointer somewhere | 20:14 | ||
| e.g. in CSR :) | |||
| whiteknight | bacek: we can do that, fine. Then all we need is a C array somewhere | ||
| 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 | ||
| Coke | whiteknight: some of those functions you removed are not static. | ||
| (and are tagged with PARROT_EXPORT) | 20:16 | ||
| (r44629) | 20:17 | ||
| whiteknight | Coke: support_policy.pod only says that we must deprecated PARROT_API function changes, not PARROT_EXPORT function changes | 20:21 | |
| OR "Parrot functions not marked wth PARROT_API, or documented as part of the public API" in docs/embed.pod | |||
| 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 | ||
| Coke | I would not, but the API vs. EXPORT thing covers it. danke for reminding me. | ||
| whiteknight | no problem | 20:23 | |
| Coke | note that CFLAGS in trunk still refers to tsq.c, but don't bother fixing it. | 20:25 | |
| 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 | ||
| Coke | (I got it.) | ||
| whiteknight | Coke++ | ||
|
20:28
kurahaupo joined
|
|||
| cotto_work | Coke++ | 20:29 | |
| whiteknight++ | |||
| Coke | pick an environment variable that would stop perlcritic.t from running. | 20:34 | |
| PARROT_TEST_NO_PERLCRITIC ? | 20:35 | ||
| whiteknight | +1 | 20:36 | |
| purl | 1 | ||
|
20:38
payload joined
20:39
whiteknight joined
|
|||
| whiteknight | EFIREFOXCRASHED | 20:39 | |
| Coke | also needed to re-run headerizer. | 20:42 | |
| whiteknight | I think I might just hate headerizer | 20:43 | |
| Coke | beats the alternative. | 20:44 | |
| the previous one, anyway. | |||
| cotto_work | manually updating everything? | ||
| 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? | ||
| dalek | rrot: r44630 | coke++ | trunk/t/codingstd/perlcritic.t: Sometimes you really don't want to wait for this test. |
||
| rrot: r44631 | coke++ | trunk (6 files): cleanup after removal of src/events.c, src/tsq.c |
|||
| whiteknight | One of my pet peeves is spelling errors in code files | 20:49 | |
| 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. | |||
| that just leaves fperrad. | 20:51 | ||
| and maybe someone on windows. | |||
| whiteknight | I could try a windows build later tonight | 20:52 | |
| no promises | |||
| 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? | ||
| whiteknight | Austin is always sarcastic | ||
| it's his ninja way | |||
| Austin | Unless 4 is greater than 5, yes. | 20:54 | |
| Coke rereads that error. | |||
| oh. | |||
| sarcasm allowed. | |||
| 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. | ||
| whiteknight | yeah, and the lower you set your standards, the better it becomes! | 20:57 | |
| Austin | Indeed. The color is nice. | ||
| Coke | er, where windows is more specifically some VC++ variant. | ||
| oh, look, we don't support dmake. | |||
| (I knew that, didn't I.) | |||
| ah. i can duplicate fperrad's issue on strawberry. | 21:00 | ||
| (even after my fix.) | |||
| dalek | rrot: r44632 | coke++ | branches/rm_cflags (33 files): merge latest changes from trunk. |
21:02 | |
| rrot: r44633 | coke++ | branches/rm_cflags/config/init/optimize.pm: This file was removed, we no longer need to not optimize it. |
|||
| Tene | lsls | 21:04 | |
| cotto_work | ENOTYOURTERMINALWINDOW | 21:05 | |
| Austin | ENOTTY ? | 21:07 | |
| Another joke, passing by... | 21:08 | ||
| NotFound thinking about starting the trend 'social terminal': twityourcommandline.com | |||
| Austin | setup.nqp && t/Mimidae/Cuculus.nqp | ||
| (And yeah, I know - I'm gonna fix that later.) | |||
| cotto_work | Austin, that filename reaches new levels of awesomeness and geekery. | 21:10 | |
| 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
|
|||
| dalek | rrot: r44634 | coke++ | branches/rm_cflags/config/auto/warnings.pm: Don't bother to memoize -$conf changes. Fix bug where we were not actually Must have been a thinko during one of the rewrites - happened to work for the gcc I was using and for non-gcc. fperrad++'s failure pointed out the problem. |
21:19 | |
|
21:30
theory joined
21:31
rt7 joined
|
|||
| dalek | kudo: 37e5746 | pmichaud++ | docs/release_guide.pod: Update release_guide.pod with recent release information. |
21:58 | |
| plobsing | hi #parrot | 22:19 | |
| cotto_work | hi plobsing | ||
| plobsing | noone complained about tt1477 when I put it to the list, so I'm looking at merging it back sometime tonight | 22:20 | |
|
22:45
Whiteknight joined
|
|||
| mikehh | rm_cflags branch: | 22:45 | |
| post-config FAIL - t/steps/auto/warnings-01.t - Failed test: 17 | |||
| 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
|
|||
| shockwave | Hi. | 23:05 | |
| I'm reading: docs.parrot.org/parrot/latest/html/...y.pmc.html | |||
| 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 | ||
| When using something like push_integer(INTVAL value), that looks like it should be a method. | |||
| Because, the array to which the integer is being added is nowhere in site. | 23:07 | ||
| I'm know I'm reading that wrong. | |||
| 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 | ||
| shockwave | Can someone enlighten me. | ||
| Specifically, is a 'Function' like push_integer() supposed to be used as: $P0.'push_integer'(5) # where $P0 is an resizable array? | 23:09 | ||
| Whiteknight | shockwave: where do you see push_integer? | 23:10 | |
| shockwave | void push_integer(INTVAL value) | ||
| docs.parrot.org/parrot/latest/html/...y.pmc.html | |||
| Whiteknight, ^^^ | |||
| Whiteknight | shockwave: Ah, that's a VTABL | 23:11 | |
| VTABLE | |||
| they're sort of like methods | 23:12 | ||
| shockwave | ah | ||
| gotcha | |||
| Whiteknight | that function gets called when you do the "push" opcode | ||
| shockwave | Whiteknight, like: push $P0, 42 ? | 23:13 | |
| Whiteknight | exactly | ||
| shockwave | Whiteknight, Thanks for the info. | ||
| 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:14 | |
| 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. :( | ||
| 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 | |
| (I'm still trying to get the hang of the working in PIR) | |||
| cotto_work | What are you trying to do? | 23:21 | |
| subclass RPA? | |||
| shockwave | cotto_work, Push an integer onto a resizable array. | ||
| cotto_work | $P0 = new ['ResizablePMCArray'] | ||
| shockwave | I guess I could also do: | ||
| cotto_work | push $P0, $I0 | 23:22 | |
| shockwave | Cool. | ||
| So I know that I only have to define a push_integer() if I want to *override* the default implementation. | |||
| cotto_work | yes | 23:23 | |
| shockwave | Thanks, cotto_work. | ||
| cotto_work | np | 23:24 | |
| Austin | shockwave: Why aren't you working in NQP? | 23:25 | |
| Or is this generated code? | 23:26 | ||
| shockwave | Austin, It's the code being generated from my compiler. | ||
| from/by | |||
|
23:28
lucian joined
|
|||
| plobsing | allison: I don't see any call_sig handling in Parrot_pcc_build_sig_object_from_varargs | 23:35 | |
| allison | plobsing: it's on the param side at the moment, but the flags are in place | 23:37 | |
| plobsing: and what you're describing could be handled by a simple flattened array arg | 23:38 | ||
| plobsing | allison: and for returns? | ||
| allison | plobsing: returns are about to be melded with calls | ||
| as in, this weekend | 23:39 | ||
| so, we won't have to deal with those bizarre variable pointers passed around in the call | |||
| plobsing | allison: so how will we get multiple return values back in C? | 23:40 | |
| 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 | ||
| plobsing: at the moment was planning to keep the Parrot_ext_call interface after the internal change | 23:43 | ||
| plobsing: it would be possible to expose setting the args and fetching return values as separate function calls (which they are internally) | 23:44 | ||
|
23:45
kid51 joined
|
|||
| 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:48 | |
| allison | plobsing: I don't understand. It's necessary to pass a signature when setting arguments or fetching returns. | 23:50 | |
| that specifies what arguments you're passing, or what returns you're expecting | |||
| 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 | ||
| 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:53 | |
| 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
|
|||
| plobsing | functionality for setting args and getting returns is pretty useless if you don't know what is expected | 23:55 | |
| 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? | ||
| Whiteknight | we could, for instance, use :slurpy returns to simplify the list | ||
| allison spelunking through plobsing's diffs | 23:58 | ||
| perl 5 is pretty much always :flat on the caller side and :slurpy on the return side | 23:59 | ||
| it has braindead argument semantics compared to Parrot (or Perl 6) | |||