|
Parrot 0.8.2 "Feliz Loro" Released www.parrot.org/news/2008/Parrot-0.8.2 Set by moderator on 23 December 2008. |
|||
|
00:00
kid51 joined
|
|||
| Infinoid | oh yeah. out of 1300 functions tagged, that's surprisingly good. | 00:01 | |
| chromatic | It's also shown some value to the process. | 00:02 | |
| dalek | r34774 | chromatic++ | branches/pdd09gc_part2 (17 files): | 00:06 | |
| : [GC] Moved src/gc/dod.c to src/gc/api.c and include/parrot/dod.h to | |||
| : include/parrot/gc_api.h. | 00:07 | ||
| review: www.parrotvm.org/svn/parrot/revision?rev=34774 | |||
| chromatic | Gah, what's wrong with Trac? | ||
| Is it too much to ask for a ticketing system that doesn't forget my password, allows me to reset my password, and lets me create tickets? An email interface would just be FROSTING at this point. | 00:08 | ||
| kid51 | What *isn't* wrong with Trac? ;-/ | ||
| cognominal | one needs to call the interpreter or compile it in a certain way to trigger these assertions? | ||
| kid51 | Did you just lose your TICKET_CREATE privileges? | ||
| chromatic | cognominal, a standard debugging build should work. | ||
| cognominal | ok, thx | ||
| Infinoid | cognominal: just running the code (built without optimization) | ||
| chromatic | kid51, I can't even log in, even though I saved the password in my web browser. | ||
| Infinoid | I've had fairly good luck with it so far. it's beginning to sound like I'm the only one. | 00:09 | |
|
00:09
AndyA joined
|
|||
| Infinoid | I have been annoyed by the reformatting of the text field when I post a comment, but that's my only annoyance. | 00:09 | |
| kid51 | chromatic: See rt.perl.org/rt3/Ticket/Display.html?id=61870. You'll have to have someone with admin privileges blow away your account and start from scratch. | ||
| chromatic | I'm okay with the idea we needed to move off of perl.org so as not to offend other language communities who might some day in the future want to target Parrot, but it would have been nice to migrate to a system which actually worked. | 00:10 | |
| kid51 | This happened to GeJ and me within past few days. | ||
| chromatic: My sentiments exactly. I was really cursing the other night. | |||
| chromatic | I would have assumed that you don't want to cut off your contributors at the knees if you have a deadline coming up. | ||
| kid51 | Once you re-register, I advise don't set anything in the Preferences page. | ||
| Coke ping | 00:11 | ||
| chromatic | I can't file bugs. | ||
| I don't get notified of bugs. | |||
| I can't close bugs. | |||
| I can't comment on bugs. | |||
| I can't edit the wiki. | |||
| kid51 | Yup. Like I say, you have to get your account nuked and start over. | ||
| chromatic | Which of those activities would be valuable for me to be doing right now? | ||
| allison | chromatic: I haven been able to figure out what's causing the problem | 00:12 | |
| chromatic | Can you remove my account so I can start over? | 00:13 | |
| allison | chromatic: did you mind if I do a quick bit of interactive debugging? | ||
| I just want to try one thing with permissions and see if that fixes it | |||
| chromatic | Go ahead. | ||
| cognominal | I think I filed a bug without problem with TRAC | 00:14 | |
| kid51 | Infinoid: Is any of the work you're doing with t/codingstd/c_arg_assert.t stuff that you could use help on? | 00:15 | |
| allison | chromatic: okay, go ahead and try it | ||
| Infinoid | kid51: you're welcome to tag some of the untagged functions, I've been trying to keep a pace of 200 or so per day | ||
| allison | chromatic: I deleted and readded the permissions for the entire 'developer' group, and readded you to it | ||
| Infinoid | I'm done for the day though. aiming to get it all done by sunday | 00:16 | |
| allison | (on the off chance that the problem is that in the migration, some permissions weren't re-written out to a file) | ||
| kid51 | Infinoid: Well, I really don't understand any of the issues, since they're beyond my C-foo. Is there anything that is more copy-and-paste? | ||
| Infinoid | well, it's a matter of sticking ASSERT_ARGS(name_of_function); at the beginning of each function, just after the top level local variables (if any) were declared | 00:17 | |
| chromatic | allison, no luck. | ||
| kid51 | Which particular functions? | ||
| chromatic | I still can't log in or reset my password. | ||
| kid51 | An example I could follow? | 00:18 | |
| allison | chromatic: okay, deleting your account | ||
| kid51 | I could create a branch so that I wouldn't harm anything. | ||
| Infinoid | kid51: the untagged functions are warned about by t/codingstd/c_arg_assert.t. I've just been taking the last one in the list, acking to find the file, and then just tagging everything in that file | ||
| allison | chromatic: done, you can re-register | ||
| Infinoid | the changes look like www.parrotvm.org/svn/parrot/revision?rev=34773 | ||
| kid51 | And the test that you have done something right, and done no harm is ...? | 00:19 | |
| Infinoid | "make test" | ||
| purl | "make test" is possessed! | ||
| Infinoid | if you get an assertion failure, then you change the corresponding ARGWHATEVER argument to ARGWHATEVER_NULLOK (like www.parrotvm.org/svn/parrot/revision?rev=34772 ) | ||
| "make headerizer" updates the autogenerated bits after you make that change to the actual function. | |||
| kid51 | At what point can you call 'make headerizer'? do you have to 'make clean' or 'realclean' first? | 00:20 | |
| chromatic | Alright, I've reregistered now. | ||
| Notice: <acct_mgr.web_ui.MessageWrapper object at 0x80e979ec> | |||
| Infinoid | no, you don't. in fact, it won't work after a clean; it likes all the header files and stuff to be generated before it will run | ||
| it's a pretty mechanistic process, overall. | 00:21 | ||
| kid51 | mechanistic -- that's what I'm looking for. | ||
| chromatic | We should probably review all uses of NULLOK though to make sure of our assumptions. | ||
| Infinoid | the only real annoyance is the amount of code logic that goes into the top lines where the local variables are declared; sometimes it's all up there, so tagging the function is mostly pointless. | ||
| chromatic: I'm happy to provide a list. I'm sure of the correctness of some more than others. | |||
| dalek | r34775 | chromatic++ | branches/pdd09gc_part2 (9 files): | 00:22 | |
| : [GC] Renamed Parrot_dod_* functions to Parrot_gc_* functions. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34775 | |||
| Infinoid tries to stab TT #116 | |||
| allison | chromatic: did it create the account before giving you the error message, or simply refuse to create the account? | 00:23 | |
| kid51 | Infinoid: Would you like me to work from the end of that list as you were doing? | 00:24 | |
| ... or perhaps from the beginning? | 00:25 | ||
| Infinoid | either way, please feel free. I'm working on other stuff right now so we won't conflict | ||
| kid51 | k | 00:26 | |
| Infinoid | after this is done, Andy had the nice idea of doing the same thing to pmcs and ops... but I think we can hide all of that behind the scenes, so we won't have to touch every function. | 00:27 | |
| kid51 | trac.parrot.org taking loooong time to load | ||
| allison | kid51: not for me, try reloading the page? | 00:30 | |
| kid51 | This is what I'm trying: trac.parrot.org/parrot/ticket/117 | ||
| ... the ticket rurban just opened. | |||
| Infinoid | loaded fine for me, less than a second | 00:31 | |
| 5 refreshes, no issue | 00:32 | ||
| dalek | r34776 | jkeenan++ | branches: | 00:34 | |
| : Creating assert_args in svn.perl.org/parrot//branches | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34776 | |||
| r34777 | jkeenan++ | tags: | |||
| : Tagging trunk at r34775 so that the assert_args can later be synched to it. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34777 | |||
| kid51 | Hrmm. Even with a page refresh, it just kept "Loading". But when I closed the tab and started from scratch, it came right up. | 00:35 | |
| Infinoid: Is this work governed by TT 105? | 00:37 | ||
| Infinoid | yes | 00:38 | |
|
00:42
gravity joined
|
|||
| chromatic_flautas | allison, it created the account, but I get that message in the header where I expect to be able to modify wiki pages. | 00:43 | |
| kid51 | Infinoid: If after revising one .c file and running 'make headerizer', I get this output ... am I doing it correctly? | 00:49 | |
| Headerization complete. | |||
| src/exec_dep.c | |||
| Parrot_exec_cpcf_op: "Parrot_jit_info_t *jit_info" isn't protected with an ARGIN, ARGOUT or ARGMOD (or a _NULLOK variant), or ARGFREE | |||
| Parrot_exec_normal_op: "Parrot_jit_info_t *jit_info" isn't protected with an ARGIN, ARGOUT or ARGMOD (or a _NULLOK variant), or ARGFREE | |||
| Parrot_exec_restart_op: "Parrot_jit_info_t *jit_info" isn't protected with an ARGIN, ARGOUT or ARGMOD (or a _NULLOK variant), or ARGFREE | |||
| offset_fixup: "Parrot_exec_objfile_t *obj" isn't protected with an ARGIN, ARGOUT or ARGMOD (or a _NULLOK variant), or ARGFREE | |||
| 5 warnings in 4 funcs in 1 C files | |||
| Infinoid | ok, those require some additional treatment. (I also don't see that on my platform, probably because jit is disabled.) | 00:51 | |
| unless you were actually editing that file or its source (src/jit/i386/exec_dep.c?) you can probably ignore it | |||
| kid51 | Well, exec_dep.c was not the file I was working on. | ||
| I was working on the file that contained set_union | |||
| Infinoid | fair enough. I'd say ignore it | 00:52 | |
| kid51 | compilers/imcc/sets.c | ||
| Now running 'make coretest' in branch | |||
| Infinoid: Heh! Everything in 'make coretest' passes -- except t/pmc/freeze.t! First time I've ever had that failed outside of our experiments earlier today! | 01:05 | ||
| Infinoid | it's been on and off for me over the last few days. sounds good so far | 01:07 | |
| that's the issue I'm trying to figure out right now, actually | |||
| kid51 | So if I've "fixed" one file, should the number of "unused assert macros found in total" increase or decrease? ('cause I got an increase.) | 01:08 | |
| Infinoid | uh. it was supposed to decrease, but maybe headerizer generated more stuff on your platform | ||
| kid51 | k | ||
| I'll proceed, and when I stop for the night I'll post an svn diff somewhere. | 01:09 | ||
| Infinoid | kid51++ | ||
| dalek | r34778 | jkeenan++ | branches/assert_args (4 files): | 01:11 | |
| : Adding ASSERT_ARGS() to all functions in compilers/imcc/sets.c; running 'make headerizer'; storing tested results. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34778 | |||
| Coke shells into his home mac frpm his phone fpr no good reason | |||
| ~ | 01:12 | ||
| Infinoid | that's what phones are for. | ||
|
01:13
Andy joined
|
|||
| Coke | -12 c on the hiway! | 01:14 | |
| ->> | 01:15 | ||
|
01:28
Limbic_Region joined
|
|||
| dalek | r34779 | jkeenan++ | branches/assert_args/src: | 01:38 | |
| : Adding ASSERT_ARGS() to one functions in src/exec.c; running 'make headerizer'; storing tested results. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34779 | |||
| Infinoid | kid51: good stuff. but you don't have to do a "make headerizer" unless you've changed the prototype of a function (e.g. by adding _NULLOK) | 01:39 | |
| kid51 | k | 01:41 | |
|
01:56
TiMBuS joined
02:06
rhr joined
02:17
Whiteknight joined
02:20
Andy joined
|
|||
| dalek | r34780 | jkeenan++ | branches/assert_args/src: | 02:40 | |
| : Adding ASSERT_ARGS() to one functions in src/embed.c; storing tested results. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34780 | |||
|
02:41
MariachiElf joined
|
|||
| dalek | r34781 | jkeenan++ | branches/assert_args/src: | 03:08 | |
| : Adding ASSERT_ARGS() to all functions in src/inter_run.c; storing tested results. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34781 | |||
| Infinoid stares at the bowels of the Default PMC and the freeze/thawing of prop-hashes | 03:40 | ||
| dalek | r34782 | jkeenan++ | branches/assert_args/src: | 03:41 | |
| : Adding ASSERT_ARGS() to all functions in src/charset.c; storing tested results. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34782 | |||
| Andy | oh, I'm adding good stuff. | 03:42 | |
| I hope | |||
| dalek | r34783 | petdance++ | trunk/lib/Parrot/Pmc2c/PMC: | 03:43 | |
| : removed commented-out code | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34783 | |||
| Andy | Infinoid: is there any chance you screwed up default.pmc? | 03:52 | |
| Infinoid | I haven't checked in anything related to default.pmc, so it seems unlikely | ||
| Andy | ok | ||
| Infinoid | TT #116 is getting more interesting. it doesn't look like a bug in freeze/thaw, it looks like an attack against the hash function itself. certain values for interp->hash_seed result in a non-functional hash after thawing | 03:57 | |
| kid51 | Attack of the Frozen Seeds ??? | 03:58 | |
| dalek | r34784 | petdance++ | trunk/lib/Parrot/Pmc2c: | 03:59 | |
| : removing unused vars in the header setup | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34784 | |||
|
04:02
elmex_ joined
|
|||
| dalek | r34785 | jkeenan++ | branches/assert_args/src: | 04:03 | |
| : Adding ASSERT_ARGS() to all functions in src/pbc_merge.c; storing tested results. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34785 | |||
| Andy | PMC header file dependencies aren't right in the Makefile. | 04:05 | |
| kid51 must sleep | 04:13 | ||
| purl | $kid51->sleep(8 * 3600); | ||
| dalek | r34786 | allison++ | trunk/t/tools: | 04:21 | |
| : [pdd30install] Small cleanups to parrot_debugger tests. Extracted from | |||
| : pdd30install branch (Reini Urban). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34786 | |||
| r34787 | pmichaud++ | branches/rvar/languages/perl6/src/parser: | 05:12 | ||
| : [rakudo]: Change $?SIGNATURE_BLOCK to $?BLOCK_OPEN. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34787 | |||
| r34788 | pmichaud++ | branches/rvar/languages/perl6/src/parser: | 06:11 | ||
| : [rakudo]: Be quite a bit smarter about block generation within signatures. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34788 | |||
| r34789 | allison++ | trunk (3 files): | 06:14 | ||
| : [pdd30install] Add configure step and tests for pod2man. Extracted from | |||
| : pdd30install branch (Reini Urban). Closes TT #94. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34789 | |||
| r34790 | petdance++ | trunk/lib/Parrot/Pmc2c (3 files): | 06:15 | ||
| : shim out unused PMC * arguments | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34790 | |||
| r34791 | allison++ | trunk: | 06:22 | ||
| : [pdd30install] Adding new pod2man files to the manifest. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34791 | |||
|
06:38
Theory joined
|
|||
| dalek | r34792 | pmichaud++ | branches/rvar/languages/perl6/src (2 files): | 07:00 | |
| : [rakudo]: Handle "is also" trait. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34792 | |||
| r34793 | petdance++ | trunk/src: | 07:01 | ||
| : headerized all the static functions. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34793 | |||
|
07:02
chromatic_flautas joined
07:06
Zaba joined
07:11
mberends joined
07:15
uniejo joined
07:18
pdcawley joined
07:27
Zaba joined
|
|||
| dalek | r34794 | allison++ | trunk/config/gen/makefiles (5 files): | 07:42 | |
| : [pdd30install] Some makefile changes to use the new conditional line syntax for | |||
| : macro files. Extracted from pdd30install branch (Reini Urban). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34794 | |||
|
07:43
Zaba joined
|
|||
| dalek | r34795 | chromatic++ | branches/pdd09gc_part2 (5 files): | 07:48 | |
| : [GC] Renamed src/gc/gc_gms.c to src/gc/generational_ms.c. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34795 | |||
| r34796 | chromatic++ | branches/pdd09gc_part2 (6 files): | 07:51 | ||
| : [GC] Renamed src/gc/gc_ims.c to src/gc/incremental_ms.c. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34796 | |||
|
08:44
integral joined
09:38
flh joined
09:40
contingencyplan joined
09:46
iblechbot joined
09:53
alvar joined
09:56
nopaste joined
10:04
tomyan joined
10:13
kj joined
10:25
Zaba joined
10:41
barney joined
10:49
masak joined
11:02
pdcawley joined
11:15
gaz joined
|
|||
| dalek | r34797 | kjs++ | trunk/compilers/pirc/new (5 files): | 11:18 | |
| : [pirc] work on keys. A key now consists of 1 main node "key", and key entries by "key_entry". The key node keeps a pointer to the head of the list of entries, and stores the number of entries. | |||
| : Refactoring of code to fit these changes. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34797 | |||
| masak | examples/library/ncurses_life.pir has bit-rotted. am I the only one who thinks that is less than acceptable? | 11:21 | |
| mberends | masak++ | 11:22 | |
| masak | mberends: now you're just overdoing it :) | 11:23 | |
| mberends | ok, ok | ||
| masak | anyway, I started to fix the PIR, but I got stuck because I don't know enough about the syntax changes. | 11:25 | |
| is there a way to run ./parrot to syntax-check (but not run) files? if so, I suggest that such runs be added as tests somewhere. | 11:26 | ||
| perhaps I should write to parrot-dev about this. | |||
| kj | I think the "global" keyword is gone now in IMCC | 11:27 | |
| masak | kj: yes, things like that. | ||
| only I can't do it on my own. | |||
| kj | I'll have a look | 11:28 | |
| masak | kj: thank you. | ||
|
11:39
desertmax joined
|
|||
| kj | masak: I made some changes, it compiles, but doesn't run | 11:59 | |
| it might have to do with the fact that I'm on windows | |||
| masak | kj: ok. I'll have a look. | ||
| kj | shall I send it to parrot-dev? | 12:00 | |
| masak | yes, please. | ||
| kj | k, thanks | ||
| masak | kj: thank _you_. | ||
| kj | I proposed many of these changes, so I guess I should clean it up :-P | ||
| masak | aye. :) | 12:01 | |
| kj | sent, should be there soon | 12:02 | |
| masak | goodie. | 12:03 | |
| lunch & | |||
| kj: it works over here. I'll apply the patch after lunch, if I manage to get my commit bit back from Bitcard. | 12:07 | ||
| kj | I can apply it.. | 12:08 | |
| masak | ah. of course you can. :/ | 12:09 | |
| dalek | r34798 | kjs++ | trunk/examples/library: | 12:10 | |
| : [examples] clean up library/ncurses_life.pir which used a lot of deprecated and removed PIR syntax. Reported by masak++. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34798 | |||
| kj | could you reply on the email, so that other people don't spend time on it? | ||
| masak | kj: oki | ||
| done. | 12:11 | ||
| kj | great thanks. If you find any other PIR bitrot, I can do them in low-productivity moments | ||
| dalek | r34799 | bernhard++ | trunk (2 files): | 12:17 | |
| : [codingstd] set svn props | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34799 | |||
|
12:17
kid51 joined
|
|||
| TiMBuS | i have a kinda dumb question. all my language's builtin functions require a global object, so they all call get_global when they are called.. is there any way to perhaps, have a permanently allocated register or something between subroutines to remove this overhead? | 12:18 | |
| yeah i know its probably not possible but i may as well ask | 12:19 | ||
| kj | TiMBuS: I don't think so. Not sure, you could try to create a .const | ||
| not sure if that's going to work | |||
| but declare the .const as : .const "Hash" globals = "initglobals" | |||
| then, write an :immediate sub that instantiates a "Hash", and returns that | 12:20 | ||
| TiMBuS | its only one global | ||
| kj | the :immediate sub should be named the same as the RHS assigned to the .const | ||
| Yes I know | |||
| but then you can access the thingy called "globals" | |||
| TiMBuS | oh | ||
| kj | but it's a constant, not sure if that's going to work | ||
| and then try to set and get as you go; the object called "globals" is accessible from all .subs | 12:21 | ||
| try it, and let me know if it works ;-) | |||
| otherwise, you may pass a hash to all functions | 12:22 | ||
| it's an extra parameter overhead, but shouldn't be too much of a problem I think | |||
| TiMBuS | well, i used the get_global under the assumption a param would be more overhead | 12:23 | |
| kj | it would be a wild guess ;-) | ||
| hard to say, I think. DOing a get_global each time requires a hash lookup | 12:24 | ||
| now hashtables are fast.. but it's still cycles | |||
| TiMBuS | its hard to tell on a vm | ||
| kj | profiling would be the only option to tell what's the difference. Also, all :method calls imply passing an extra parameter "self", and that's generally not considered a problem | 12:25 | |
| aargh. parrot won't build because of this ASSERT_ARGS thingy | 12:26 | ||
| dalek | r34800 | kjs++ | trunk/src: | 12:32 | |
| : [src] the ASSERT_ARGS macro in debug.c expands to a statement, after which a var. declaration follows. This is not allowed, and won't build on MSVC. This patch moves the declaration to before the assertion, but it can't be 'const' any more, as the declaration is separate from initialization. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34800 | |||
|
12:35
register joined
|
|||
| masak | I sitll think we need those tests, though. | 12:48 | |
| dalek | r34801 | rurban++ | trunk/config/gen/makefiles: | 12:50 | |
| : fix wrong logic in r34794. fixes also trac TT#118 | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34801 | |||
|
12:53
barney joined
|
|||
| kj | masak: such tests means a full PIR parser | 12:56 | |
|
12:56
alvar joined
|
|||
| masak | kj: yes? | 12:56 | |
| kj | you want to syntax-check all PIR files right? | 12:57 | |
|
12:57
rurban joined
|
|||
| masak | aye. | 12:57 | |
| kj | right. well, that's not so easy .. | ||
| masak | it'd just be a way of catching changes early in examples/*.pir | ||
| kj: I see. too bad. | 12:58 | ||
| kj | suppose you load an ops lib, then you can add new PIR ops | 12:59 | |
| Coke | (syntax check pir files) | ||
| kj | so you have to execute stuff as well | ||
| it could be done, of course | |||
| Coke | You can do this with ./parrot -o /dev/null foo.pir | ||
| and we should be doing that with pretty much every complete program in examples if we're not already. | |||
| (er, not already actually testing it.) | |||
| I am c oming in late on this conversation though. | 13:00 | ||
| kj | Coke: I think your suggestion is good | ||
| if output is redirectied to dev/null, it will only complain if there's syntax errorrs | 13:01 | ||
|
13:01
masak` joined
|
|||
| dalek | r34802 | kjs++ | trunk/src: | 13:04 | |
| : [src] Fix disassembling of PBC so that it prints ":slurpy", not "flat" on parameters. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34802 | |||
| r34803 | jkeenan++ | branches/assert_args/src: | 13:06 | ||
| : Adding ASSERT_ARGS() to all functions in src/pic.c; storing tested results. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34803 | |||
| r34804 | masak++ | trunk/languages/perl6/src/builtins: | 13:08 | ||
| : [rakudo] corrected documentation -- C<eval> is not to be found in | |||
| : src/builtins/eval.pir, but src/builtins/control.pir | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34804 | |||
|
13:11
Zaba joined
|
|||
| rurban | install_config.c:2602: undefined reference to `_Parrot_set_config_hash_internal' | 13:36 | |
|
13:37
Theory joined
|
|||
| nopaste | "masak" at 130.238.45.242 pasted "more bitrot." (132 lines) at nopaste.snit.ch/15156 | 13:46 | |
| dalek | r34805 | bernhard++ | trunk/languages/pipp (2 files): | ||
| : [Pipp] Add vtable 'get_bool()' to PippObject. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34805 | |||
|
13:47
tetragon joined
13:52
tetragon_ joined
|
|||
| dalek | r34806 | kjs++ | trunk/compilers/pirc/new (5 files): | 13:54 | |
| : [pirc] works on keys. it's not correct yet. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34806 | |||
|
14:12
gryphon joined,
tetragon joined
|
|||
| dalek | r34807 | kjs++ | trunk/compilers/pirc/new (4 files): | 14:17 | |
| : [pirc] refactoring and add a stub for annotations. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34807 | |||
| rurban | Just compiling on debian with --optimize='-ggdb3'. ccflags is taken from perl -V::ccflags: so you should not change that. objdump -W *.o | grep macro shows you e.g. the macros within DWARF | 14:18 | |
| dalek | r34808 | pmichaud++ | trunk/languages/perl6/docs: | 14:19 | |
| : [rakudo]: spectest-progress.csv update: 264 files, 5911 passing, 0 failing | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34808 | |||
|
14:26
PacoLinux_ joined
|
|||
| Coke | there. added a new test file. | 14:41 | |
| only tested on os x, but I tried to make it portable. | 14:42 | ||
| dalek | r34809 | coke++ | trunk (2 files): | ||
| : Add a (failing) test to help us keep our examples functioning. | |||
| : Should be executed during "make examples_tests" | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34809 | |||
|
14:42
flh joined
|
|||
| Coke | fails miserably: | 14:43 | |
| t/examples/catchall (Wstat: 7424 Tests: 162 Failed: 29) | |||
| dalek | r34810 | pmichaud++ | branches/rvar/compilers/pct/src/PAST: | 14:44 | |
| : [pct]: PAST::Var attribute nodes don't use :isdecl . | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34810 | |||
| Infinoid | hmm. having an implemented parrot_dump_hash would come in really handy for debugging this | 14:46 | |
| Coke | Infinoid: what's wrong with data dumper? | 14:47 | |
| dalek | r34811 | coke++ | trunk/examples/benchmarks: | ||
| : Make this example compile again. | |||
| : (Looks like it even works, too.) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34811 | |||
| Coke | or do you mean parrot-level hashs, not PMC hashs? | ||
| *hashes | |||
| Infinoid | I mean C-level Hashes | 14:48 | |
| if I can call data dumper from the gdb command line, that'd work | |||
| dalek | r34812 | coke++ | trunk/examples/benchmarks: | 14:51 | |
| : make example compile (and work) again. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34812 | |||
| r34813 | coke++ | trunk/examples/pir: | 14:55 | ||
| : Make long-dead example compile (and work) again. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34813 | |||
|
14:56
tetragon joined
|
|||
| Coke thinks we should just remove DWIM.pir | 14:58 | ||
|
15:05
uniejo joined
|
|||
| dalek | r34814 | coke++ | trunk/examples/benchmarks (4 files): | 15:06 | |
| : reclaim 4 example files; | |||
| : remove some opcode invocations that (1) did nothing, and (2) don't exist anymore. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34814 | |||
|
15:08
masak joined
|
|||
| Coke | masak++ | 15:11 | |
| masak | Coke: hello. now what did I do? :) | ||
|
15:11
tetragon joined
|
|||
| Coke | t/examples/catchall.t | 15:11 | |
| masak | ooh | ||
| Coke | Been meaning to do that for some time. | ||
| masak | Coke++ for doing it | ||
| Coke does an svn update and wishes he had checked how old that checkout was first. | 15:14 | ||
|
15:14
tetragon_ joined
|
|||
| Coke | one of those pge examples fails because it can't be run from parrot root. | 15:24 | |
| dalek | r34815 | kjs++ | trunk/compilers/pirc/new (8 files): | 15:33 | |
| : [pirc] more key stuff. | |||
| : + start adding support for encoding-aware strings (e.g. iso-8859-1:"hi") | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34815 | |||
|
15:47
jhorwitz joined
15:51
tetragon joined
15:55
flh joined
|
|||
| dalek | r34816 | bernhard++ | trunk/languages/pipp (3 files): | 16:13 | |
| : [Pipp] Pass arguments to the constructor, in a convoluted way. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34816 | |||
| r34817 | bernhard++ | trunk/languages/pipp/src/classes: | 16:15 | ||
| : [codingst] Remove a trailing space. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34817 | |||
| r34818 | coke++ | trunk/examples/io: | 16:18 | ||
| : The pir sugar for substr was removed; | |||
| : Example still broken due to changes on FileHandle from ParrotIO. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34818 | |||
|
16:18
tomyan left
16:19
tomyan joined
|
|||
| Coke | particle: is it a feature that you can specify -e multiple times? | 16:19 | |
| I would just as soon have a single -e. | |||
| particle | coke: it exists in p5 today | 16:20 | |
| >perl -e "my $x = 0;" -e "print $x" -e "if $x" | |||
| >perl -e "my $x = 1;" -e "print $x" -e "if $x" | |||
| 1 | |||
| Coke | not compelling enough to keep it, for me. =-) | 16:21 | |
| if you do keep it, any reason to just say "you can't mix -e and -e6" ? | |||
| (*not to say.) | |||
| cognominal | can we have intervening switches that makes the different -e compiled differently? | 16:22 | |
| particle | well, i may make -e6 into an option that affects all -e's | ||
| cognominal | the particle example is really a counterexample | ||
| I mean options in between the -e | |||
| particle | with p5, -e accepts a line and puts a newline afterwards | ||
| it allows you to write multi-line scripts on one command-line | 16:23 | ||
| cognominal | you could do it with \\n within the script? | ||
| particle | -e 'my $x = <<FOO;' -e 'foo' -e 'bar' -e 'FOO' -e 'print $x' | 16:24 | |
| ...i wonder if there's a shell that would allow that... | |||
| yep, windows allows it. | 16:25 | ||
| >perl -e "my $x = <<FOO;" -e "foo" -e "bar" -e "FOO" -e "print $x" | |||
| foo | |||
| bar | |||
| purl | bar | ||
| cognominal | interleaving switches sound more scary -e "..." -ne "..." -pe "..." # I don't think it can mean anything | ||
| what interleaving switches could be useful? | 16:26 | ||
| particle | hrmm, can you do that? | ||
| cognominal | I don't know | ||
| particle | i don't think so, because the first -n would process all of STDIN | ||
| cognominal | yes, but would it complain? | 16:27 | |
| dalek | r34819 | kjs++ | trunk/compilers/pirc/new (8 files): | 16:29 | |
| : [pirc] revert previous changes. It broke stuff, and I don't know why. Better to re-try, than to fix. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34819 | |||
| particle | cognominal: perl -ne "print '1';" -pe "print '2'" foo # prints 12<each-line-in-foo> | 16:31 | |
| so does perl -pe "print '1';" -ne "print '2'" foo | |||
| cognominal | my question is about Perl6, does some switch(s) help to make things easier by breaking a script in different -e parts? | 16:33 | |
| -p and -n are just a counterexample | |||
| I can't find a meaningful example but I don't know well the rakudo switches | 16:34 | ||
| dalek | r34820 | kjs++ | trunk/compilers/pirc/new (6 files): | ||
| : [pirc] add encoding-aware tokens to lexer and parser. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34820 | |||
| r34821 | kjs++ | trunk/compilers/pirc/new: | 16:36 | ||
| : [pirc] add a string-parsing function, which handles [iso-8859-1:"hi there"]-kindof strings. (other encodings as well, this is an example) | 16:37 | ||
| review: www.parrotvm.org/svn/parrot/revision?rev=34821 | |||
| rurban | os.'rm'("$temp_pbc") in t/pmc/eval test 10 fails after load_bytecode "/tmp/HhY9ocQ3wA.pbc" I guess load_bytecode is still holding a handle (cygwin). in the strace I see that the unlink call fails | 16:38 | |
| even weirder: cd /tmp; $ ls -al *.pbc | 16:40 | ||
|
16:40
Wknight8111 joined
|
|||
| rurban | ls: cannot access HhY9ocQ3wA.pbc: No such file or directory | 16:40 | |
| -rw------- 1 rurban phpwiki 784 Jan 2 16:33 hH0DltAQPj.pbc | |||
| Coke | did the unlink perhaps fail because the file was already gone? | 16:41 | |
| rurban | No it's there, but the clib cannot access it | ||
| Some windows or cygwin specific | |||
| dalek | r34822 | Whiteknight++ | trunk/docs/book: | ||
| : [Book] update chapter 4 with some information about using continuations and some clarifications about lexical subroutines. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34822 | |||
| rurban | Does this also fail under msvc? | 16:42 | |
| In ls -al I see "??????????? ? ? ? ? ? HhY9ocQ3wA.pbc". So there's some handle open | 16:43 | ||
| Maybe it's the weird delayed unlink code inside cygwin. if unlink fails it tries again when the process ends | 16:45 | ||
| Coke | holy poo. | ||
| the sdl examples are so old, they expect the version of the calling conventions that set specific registers for return values. | 16:46 | ||
| the sdl stuff worked on the mac at one point, neh? | 16:48 | ||
| dalek | r34823 | coke++ | trunk/examples/pir: | 16:50 | |
| : remove useless .begin/.end return block. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34823 | |||
| r34824 | bernhard++ | trunk/languages/pipp/src/pct: | 17:09 | ||
| : [Pipp] Declare register vars in PAST, not in PIR | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34824 | |||
| particle | cognominal: the best example i can give is that writing a long one-liner is better done as -e 'some long line' \\ | 17:14 | |
| -e 'some other long line' | |||
| if you don't want to put it in a file, that is. | |||
| pmichaud | particle: (-e6) actually works as -e '6' | 17:20 | |
| because a program that begins with "6;" is assumed to be perl 6 running in lax mode. | |||
| so -ev6 also works in the same way :-) | 17:21 | ||
| particle | hrmm. | ||
| pmichaud | (S11:459) | ||
| particle | i guess that means -e6 needs to be specified before any other -e | 17:22 | |
| pmichaud | so nothing special needs to be done for -e6, as long as it's the first -e ... right | ||
| particle | and it's entirely not special | ||
| :) | |||
| pmichaud++ for digging that up | |||
| pmichaud | something tickled my brain about that so I looked it up again. | ||
| particle | -ev6 won't work, though, you need -e=v6 | 17:23 | |
| the single dash will try to bundle -e -v and -6 | 17:24 | ||
| pmichaud | okay. | ||
| particle | -e6 will work, because numbers are not valid option names | 17:25 | |
| Infinoid | so I tweaked the headerizer argument asserts to make them look like a local variable initialization. This lets me put them at the very beginning of the functions, so they can protect the local variable initializers too (which are often quite verbose) without getting a C90 warning about mixing declarations with code. | 17:32 | |
| weird thing is, I get unused variable warnings from that in compilers/imcc/, but nowhere else. Are we using different CFLAGS to build IMCC? | |||
| particle | yes, likely | 17:33 | |
| isn't there a file called CFLAGS? | |||
| Infinoid | yeah, looking at it now | 17:34 | |
| ah, {^compilers/imcc/(?!imclexer)} s/-Wno-unused/-Wunused/ | |||
| dalek | r34825 | bernhard++ | trunk/languages/pipp/src (2 files): | 17:35 | |
| : [Pipp] Add a default __construct in ['PippObject'] | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34825 | |||
| Infinoid tries adding __attribute__unused__ | 17:37 | ||
|
17:44
Debolaz joined
|
|||
| Coke | does perl6 provide anything like tcl's "uplevel" or "upvar" ? | 17:47 | |
| tewk | you know you are a garbage collector hacker when you have to script gdb using expect to find bugs :) | 17:51 | |
| dalek | r34826 | rurban++ | branches/pdd30install_stage3/t/pmc: | 17:52 | |
| : [TODO] TT#121 t/pmc/eval.t test10 fails on cygwin | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34826 | |||
| Coke | rurban: looks like the file that is opened with fopen on load_bytecode /is/ closed with fclose (at least in one path I've found) | ||
| rurban | yes, the code looks code. but the error is reproducable. | 17:53 | |
| I marked the test as TODO with the ticket number just for cygwin. | |||
| Coke | <nod> | ||
| rurban | really strange: I made test pir's for this ticket, and they fail not with permission denied, but the 2nd load-bytecode fails silently. | 17:55 | |
| Looks like an OS issue or maybe the virus scanner... | |||
| pmichaud | Coke: what does uplevel/upvar do? | 17:58 | |
| Coke | upvar lets you muck with variables up the call chain. | 18:00 | |
| uplevel lets you execute code in the context of somewhere higher up the call chain. | |||
| pmichaud | in Perl 6 that would be CALLER | ||
| (upvar would be CALLER) | |||
| Coke | so with uplevel you can add, e.g., new flow control commands. | ||
| it's kind of like wandering through your c stack with gdb. | 18:01 | ||
| dalek | r34827 | bernhard++ | trunk/languages/pipp/src (2 files): | ||
| : [Pipp] Call __construct as method. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34827 | |||
| Coke | pmichaud: here's a different question: | ||
| if you have a namespace foo, how do you differentiate between a procedure in that namespace called "bar", and a child namespace called "bar" ? | |||
| pmichaud | I'm not sure that occurs in Perl 6. | 18:02 | |
| Coke | if you have a namespace "foo::bar", does that imply a NS 'foo' with a child namespace 'bar' ? | 18:03 | |
| pmichaud | it means "bar" within the namespace foo. I don't think it says that 'bar' has to be a namespace. | ||
| particle | foo::bar:: is always a namespace | 18:04 | |
| foo::bar may not be a namespace | |||
| pmichaud | "Foo::bar" is either a namespace or a sub. I don't think it can be both. | ||
| Coke | right. in tcl, you can have both, there's no conflict. | 18:05 | |
| so, I'm going to undo my change to remove & so that part keeps working. ah well. | |||
| hurm. svn mojo to revert revision FOO but keep all revisions post-FOO? | 18:07 | ||
| pmichaud | get a reverse diff | ||
| Coke | (I think I'l create a patch and just apply it in reverse) | ||
| ok. | |||
| pmichaud | svn diff -r FOO:FOO-1 >file.patch | 18:08 | |
| apply file.patch | |||
|
18:14
chromatic joined
|
|||
| Coke | back to uplevel/upvar; pretty sure those are the only reason I need to be managing my own call_chain at this point. | 18:15 | |
| so if you had a way to avoid them (and still had to do what tcl does), then I could ditch that global and use more pure parrot. | 18:16 | ||
| pmichaud | perhaps use lexicals? | ||
| then you could look up the caller chain in Parrot and get to the lexicals. | 18:17 | ||
| yes, this would imply modifying the way Tcl does its lexicals currently. | 18:19 | ||
| Coke | how would I introduce a new step int eh chain? | ||
| pmichaud | s/Tcl/partcl/ | ||
| Coke | (e.g. I only want subs that correspond to HLL procs to get another level) | ||
| (not utility parrot subs) | 18:20 | ||
| pmichaud | oh, that would be an issue. hrm. | ||
| do you need to "count up" a specific number of levels? | |||
| Coke | yup. | ||
| for the aforementioned uplevel/upvars. | |||
| pmichaud | I can outline an approach that might work | 18:21 | |
| (more) | |||
| but I need to refill my Dr. Pepper glass before I can do that. | |||
| Coke | tease! | ||
| ;) | |||
| pmichaud | this isn't necessarily pretty. | 18:22 | |
| in any level corresponding to a scope, create a (Parrot) lex entry | |||
| e.g., .lex 'lexpad', $P0 | |||
| dalek | r34828 | bernhard++ | trunk (2 files): | 18:23 | |
| : [Pipp] Don't bother with ChangeLog, until there are releases | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34828 | |||
| pmichaud | where $P0 ends up being the dynamic lexpad that Tcl wants/needs | ||
| so, partcl lexicals are still in hashes, but keep track of the hashes is handled by Parrot lexicals | |||
| Coke | I'm not sure that buys me much? | 18:24 | |
| pmichaud | then, search up the caller chain until you find a caller that has a 'lexpad' entry. | ||
| and you have access to its lexicals via that entry. | |||
| you can keep count of the number of callers you find that have 'lexpad' entries | 18:25 | ||
| which may be smaller than the number of callers. | |||
| you're correct that this might not be an improvement over a normal push/pop stack. | |||
| but it does mean that parrot can manage your caller chain for you. | |||
| (so you don't have to remember to do the push/pop) | |||
| Coke | that's concentrated in one place atm. | 18:26 | |
| pmichaud | this sounds very similar to what Perl 6 (and PCT) will be doing soon with contextual variables | ||
| the other way that Rakudo will be handling OUTER/CALLER is by binding a lexical 'OUTER' and 'CALLER' to the appropriate lexpads when entering a routine | 18:27 | ||
| so, CALLER refers to my caller's lexical scope, CALLER::CALLER refers to its caller's lexical scope, etc. | 18:28 | ||
|
18:44
tomyan left
|
|||
| Wknight8111 | pmichaud, is there any documentation around that explains lexpads and their use in more detail? | 18:44 | |
| It's a subject that needs to be added to the book, and I dont know anything about it | |||
|
18:44
register joined
|
|||
| dalek | r34829 | kjs++ | trunk/compilers/pirc/new: | 19:04 | |
| : [pirc] refactoring of bcgen code. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34829 | |||
| r34830 | bernhard++ | trunk/languages/pipp (3 files): | 19:08 | ||
| : [Pipp] Add namespace declarations for php_reflection.pir. | |||
| : Add dummy implemention of ReflectionClass::__contruct() and ReflectionClass::getName(). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34830 | |||
| kj | anybody around who knows bits of the function imcc:pbc:pcc_reg_mov() ? (I guess if you know that name the answer is 'yes' ;-) | 19:12 | |
| Coke | hey, -t4 is borked again. | 19:18 | |
| Coke grumbles. | |||
| dalek | r34831 | bernhard++ | trunk/languages/pipp/src/common: | 19:30 | |
| : [Pipp] namespace directive in included file messed things up | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34831 | |||
|
19:36
gmansi joined
|
|||
| dalek | r34832 | kjs++ | trunk/compilers/pirc/new (2 files): | 19:37 | |
| : [pirc] work on sub's namespace PMC representation. + function docs. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34832 | |||
| r34833 | bernhard++ | trunk/languages/pipp/src/common: | 19:38 | ||
| : [Pipp] add a space after '.namespace', for readability | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34833 | |||
| chromatic | Hm, each Sub PMC could know how it wants to process its arguments.... | 19:43 | |
| particle | ? | ||
| you mean a CallSignature? | |||
| chromatic | In theory, a Sub could know if it has only positional or named or slurpy arguments. | 19:44 | |
| When it processes its arguments, it could do different things based on what it needs. | 19:46 | ||
| dalek | r34834 | kjs++ | trunk/compilers/pirc/new: | ||
| : [pirc] function doc and cleanup. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34834 | |||
| chromatic | For example, not looking for slurpies if it doesn't expect them. | ||
|
19:50
Theory joined
|
|||
| Coke | on a vaguely related note, it would be nice if subs could emit their own exceptions for invalid args. | 19:51 | |
| (tcl has to basically ignore calling conventions, accept everything, and then rethrow an exception from inside the sub.) | |||
| kj | can't that be done through .HLL_map? | ||
| that would imply that 1) .HLL_map should be able to replace subclasses, and 2) that Sub should throw a particular subclass of exception for that | 19:53 | ||
| Coke | kj: what, chromatics? I don't think so. even hll sub invocations go through Parrot__PCCINVOKE | ||
|
19:53
rurban_ joined
|
|||
| Coke | No, that's not what I want. | 19:53 | |
| kj | I mean, if Sub throws a particular type/class of exception, you could override that exception with .HLL_map | ||
| that's not it? | |||
| pmichaud | I'm thinking it's very likely that Rakudo will end up implementing its own versions of get_params | 19:54 | |
| Coke | no. let's say I define a tcl proc that takes 3 args. You call it with 4. | ||
| before my sub is invoked, the calling conventions rat me out. | 19:55 | ||
| kj | i see | ||
| you want to throw it later than that | |||
| pmichaud | we also have the opposite problem | ||
| Coke | no. I HAVE to to get the error I want. | ||
| pmichaud | if I have a Sub PMC that takes zero arguments, the calling conventions never catch that. | ||
| Coke | pmichaud: there's a ticket to re-enable that. | ||
| pmichaud | Coke: yes, but doing so brings its own set of problems. | 19:56 | |
| Coke | the 0 arg thing was disabled at one point; I had it mostly done, but couldn't get :main working, IIRC. | ||
| kj | isnt that a bug? | ||
| :main is special i think eh? | |||
| chromatic | :main is very special. | ||
| pmichaud | kj: whether it's a bug or not really depends a lot on who we think drives the argument capture | ||
| if I choose to do my own argument capturing (bypassing get_params because it doesn't do what I need), does that necessarily imply that PCC should revoke any call to that sub that passes arguments? | 19:57 | ||
|
19:57
Andy joined,
cognominal joined
|
|||
| pmichaud | unless/until Parrot provides all the forms of argument capture that the hlls want or need, it'd be wrong to say "well, your sub doesn't have any .param statements so it should take zero arguments" | 19:58 | |
| and I don't buy that always doing :slurpy is the right way around that. | 19:59 | ||
| Coke | (tcl does :slurpy everywhere to get around that.) | ||
| pmichaud | right, and Rakudo is looking as though it's likely to have to do the same. | ||
| although I'm thinking we can bypass the slurpies if we do our own argument capturing dynops | 20:00 | ||
| Coke | that might be nicer. | ||
| kj | I had understood the calling conventions would be updated so it could handle everything that Perl 6 needs | ||
| pmichaud | kj: ...in what timeframe? | ||
| Coke | I have a lot of PIR code devoted to that. :| | ||
| kj | dunno, I guess not before 1.0 | 20:01 | |
| pmichaud | at this point I'd just be happy to see the calling conventions cleaned up into something that everyone could begin building from. | 20:02 | |
| chromatic_away | I haven't seen a good set of use cases for various languages. That's probably why all of our calling conventions attempts have been stabs in the dark. | 20:03 | |
|
20:03
alvar joined
|
|||
| kj | I agree. I just remembered some IRC discussion some months ago about this. | 20:03 | |
| Wknight8111 | we have a tasklist for the calling conventions work, you can add any wishlist items to the list as well: trac.parrot.org/parrot/wiki/Callin...nsTasklist | 20:04 | |
| shorten | Wknight8111's url is at xrl.us/bebbut | ||
| Wknight8111 | Always better to have these things listed and written down instead of trying to recall old IRC conversations or hunting through logs | ||
| dalek | r34835 | pmichaud++ | branches/rvar/languages/perl6 (3 files): | 20:14 | |
| : [rakudo]: First cut at attributes in classes. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34835 | |||
| nopaste | "flh" at 88.160.47.207 pasted "Introspection does not work" (21 lines) at nopaste.snit.ch/15157 | 20:37 | |
| flh | I do not understand why this piece of code does not work: the inspect opcode works fine if I call it directly in main, but not if I pass the Sub as an argument | 20:38 | |
| am I missing something? | |||
| Coke | what do you expect it to print? | 20:39 | |
| flh | 2 | 20:40 | |
| Coke | and what does it print for you? | ||
| (it print 2 for me.) | |||
| flh | mmh well ok :) | ||
| maybe it's getting a bit too late for me | 20:41 | ||
| Coke | np. happens to me all the time. | ||
| Coke runs callgrind on a simple tcl program and gets a ton of hashing. | 20:42 | ||
| flh | actually, in an expanded version it does print "Unknown introspection value 'pos_required'" | ||
| Coke | can you nopaste that version? | 20:43 | |
| flh | sure, I'm trying to make a simplified version fail | 20:46 | |
| ok, my mistake, I had replaced a Sub with $I0 somewhere | 20:49 | ||
| Coke | if I am callgrinding parrot, are the ASSERT_ARGS going to affect me in a normal build? | 20:53 | |
| chromatic_away | Yes. | ||
| Coke | can I get callgrind -and- not have them affect me? | 20:57 | |
| (callgrind is showing me we spend 15.3% of our time in hash.c) | |||
| chromatic_away | build optimized | 20:59 | |
| Coke | (rebuilding) | ||
| interesting. optimized build hash.c is only 1.1%. | 21:02 | ||
| Infinoid | if you want unoptimized stats without ASSERT_ARGS, you could redefine ASSERT_ARGS to something benign, or add -DNDEBUG to your CFLAGS | 21:07 | |
| Coke | parrot_hash_get_bucket is still the worst offender. | ||
| dalek | r34836 | allison++ | trunk/config/gen/makefiles (3 files): | 21:08 | |
| : [pdd30install] More makefile changes to use the new conditional line syntax for | |||
| : macro files. Extracted from pdd30install branch (Reini Urban), with | |||
| : modifications. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34836 | |||
| Coke glares at parrot. | 21:14 | ||
| chromatic | What calls parrot_hash_get_bucket the most? | 21:31 | |
| Coke | how can I tell? | 21:37 | |
|
21:37
Theory joined
|
|||
| Coke reads the docs on callgrind_annotate. | 21:38 | ||
| 10,634,092 < /home/coke/sandbox/parrot/./src/pmc/hash.pmc:Parrot_Hash_exists_keyed_str (113917x) | 21:39 | ||
| 15,588,880 * ???:parrot_hash_get_bucket [/home/coke/sandbox/parrot/blib/lib/libparrot.so.0.8.2] | |||
| if I read that right, Parrot_Hash_exists_keyed_str | |||
| (those are the last 2 lines of the first "paragraph" when running callgrind_annotate with --tree=caller | 21:40 | ||
| jonathan | Hi all | 21:44 | |
| Just a note - I'm back to normal work from Monday next week. :-) | |||
| (Parrot/Rakudo included.) | 21:45 | ||
|
21:45
eric256 joined
|
|||
| chromatic | Coke, you really need kcachegrind for visualization of the call graph. | 21:46 | |
| eric256 | hey...is there anyway to get the current file in rakudo? i was playing with adding $*FILE to src/builtins/globals.pir but i was stumped as to how to get the file name out of PCT::HLLCompiler ...seems to be several different layers the name would have to be passed through, or added to the args.. | 21:47 | |
| Coke | my previous attempts to install that have met with abject failure. | ||
| chromatic | Coke, if you bzip the callgrind.out.xxxx file, I'll look at it on my box. | ||
| eric256, I think it needs bytecode annotations. jonathan knows better. | 21:48 | ||
| eric256 | chromatic: that just sounds scary ;) | ||
| Coke | chromatic: feather.perl6.nl:~coke/callgrind.out.4549.bz2 | ||
| chromatic: that location ok? | 21:49 | ||
| chromatic | Coke, I don't have a feather account; is there a web address? | ||
| jonathan | eric256: As chromatic said, and I'm working on 'em. (Or will be again soon.) | 21:51 | |
|
21:52
Khisanth joined
|
|||
| Coke | chromatic: I apparently can't scp to coleda.com webhost atm. ah well. | 21:53 | |
| chromatic | Coke, looks like you need to move that file to your public_html on feather. | ||
| feather.perl6.nl/~/ | |||
| eric256 | and here i was thinking $*FILE should be something easy to add | ||
| Coke | done. | ||
| whee. | |||
| Coke wonders if kcachegrind will work on cygwin. | 21:54 | ||
| chromatic | Doubt it. | ||
| It might run on Windows; lots of KDE 4 apps do. | |||
| jonathan | eric256: It will be, after bytecode annotations are done. ;-) | 21:55 | |
| pmichaud | jonathan++ | ||
| Coke | I see WinCacheGrind, last updated in '05. | ||
| chromatic | Hm, lots of your time goes to Parrot_oo_register_type, which throws an exception (probably because the type already exists). | ||
| pmichaud | I should have the rvar branch merged back into trunk by Monday | ||
| jonathan | pmichaud: How goes the branch? | ||
| pmichaud | but it's going _very_ well. | 21:56 | |
| I really like the new code. | |||
| jonathan | Awesome. | ||
| Monday I can get back onto the type registry then. :-) | |||
| And get that merged in | |||
| pmichaud | the type registry will be much simpler now also. | ||
| jonathan | As usual, I've got a grant that I'm behind on. ;-) | ||
| chromatic | Coke, delete line 561 of src/oo.c and see what happens. | ||
| jonathan | Hope to be caught up nicely this month, however | ||
| pmichaud | same here. | ||
| Coke | chromatic: if (!PMC_IS_NULL(classobj)) { | 21:57 | |
| eric256 | jonathan++ # line numbers and file names ;) right? | ||
| Coke | ? | ||
| jonathan | Your refactors will be nice to have before I did into dispatch changes too. | ||
| eric256: Yes. | |||
| s/did/dig/ | |||
| pmichaud | wednesday I got sidetracked realizing I needed to quickly spend some EOY funds. Yesterday was a lot of things going on around here, including a UPS that kept cutting out on me. | ||
| chromatic | Coke, hm, no. The fail_if_type_exists(...) line. | ||
| jonathan | Ah, un-fun. | ||
| pmichaud | (would've been nice to get the UPS replacement using EOY funds... but, oh well.) | 21:58 | |
| jonathan | I'm guessing, tax year there matches up with calender year? | ||
| pmichaud | yes, for me at least. | ||
| jonathan | I'm in transition between tax systems at the moment, having decided I'm staying in Slovakia for the medium-term, I expect. | 21:59 | |
| But in UK it ends in April. | |||
| pmichaud | anyway, I'm back to working on the branch again. | ||
| jonathan | OK, awesome. | ||
| Coke | chromatic: | 22:00 | |
| 10,634,063 < /home/coke/sandbox/parrot/./src/pmc/hash.pmc:Parrot_Hash_exists_keyed_str (113917x) | |||
| 15,628,302 * ???:parrot_hash_get_bucket [/home/coke/sandbox/parrot/blib/lib/libparrot.so.0.8.2] | |||
| ... virtual no impact? | |||
| *virtually | |||
| gotta run. I'll see if I can get some machine running kcachegrind. | 22:01 | ||
|
22:01
Whiteknight joined
|
|||
| Coke | -> | 22:01 | |
| jonathan | Family that have been staying with me head home tomorrow morning, I'll take the train up to Brno and have a day alone to relax and get back in the mood for work stuff, then by Monday I'll be in the right frame of mind, and free of distractions. :-) | ||
| chromatic | Coke, not on that function but on overall runtime. | ||
| pmichaud | jonathan: that works well for me. Kids start back to school on Tuesday, so I might be a little distracted on Monday itself, but after that things are very good. | ||
| jonathan | Great. | ||
| Coke | chromatic: I wasn't testing runtime. =-) | 22:02 | |
| hang on. | |||
| purl | hang on. is this actually "session is still there but user has been deleted" ? | ||
| jonathan | I'll likely hack on bytecode annotations as a priority thing. | ||
| pmichaud | that would be good. | ||
| jonathan | As they need to be landed by the next Parrot release. | ||
| pmichaud | my next priority after rvar (and closing tickets) is the PGE refactors to support the bytecode annotations :-) | ||
| jonathan | If you have Cursor changes in time it'd be nice if we used them in Rakudo by the next release. :-) | ||
| pmichaud | so, yes. | 22:03 | |
| jonathan | Great. That will be a nice thing for Rakudo users. | ||
| justin | Is it already known that: 'my $i = 0; $i++++; say($i)' produces '1' instead of '2' (prefixed '++' work correctly)? | ||
| dalek | r34837 | rurban++ | branches/pdd30install_stage3/runtime/parrot/include: | ||
| : fixes Trac TT#123, remove more hard-coded runtime/ paths from libs | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34837 | |||
| pmichaud | justin: I suspect that 1 might be right. | ||
| or that it's an error. | |||
| justin | oh? ok.. | 22:04 | |
| jonathan | If it parses as ($i++)++ then yes, 1 is right. | ||
| I'm a tad surprised it's not a syntax error, however. | |||
| pmichaud | I suspect that postfix:<++> returns an rvalue. | ||
| Coke | chromatic: with the value for that declaration commented out, runtime for a simple program is 80% of original. | ||
| (define a function and invoke it.) | |||
| justin | ah, okay.. but in that case it should produce an error, right? | 22:05 | |
| Coke | (lemme try something with a while loop in it.) | ||
| chromatic | Okay. Just brainstorming. | ||
| pmichaud | justin: yes, I think it should probably produce an error. | ||
| chromatic | HLLCompiler should really not try to redefine classes over and over again. | ||
| pmichaud | chromatic: I can fix it to test for an existing class first. | ||
| I kinda thought the point of exceptions was to avoid such tests, though. | |||
| chromatic | pmichaud, you might be surprised at the performance improvement. | ||
| pmichaud | and did you mean HLLCompiler, or PGE ? | 22:06 | |
| I don't recall that HLLCompiler itself creates classes (but could be wrong there) | |||
| chromatic | I've noticed it in HLLCompiler. | ||
| in the compile method. | |||
| Coke | I'm not using HLLCompiler. | 22:07 | |
| (fyi) | |||
| chromatic | Maybe PGE then.... | ||
| Coke | ah. right. | ||
| pmichaud | and I don't see anything in the compile method, or things that it calls. | ||
| I know that PGE and Perl6::Grammar use exception handling for duplicate classes. | |||
| chromatic | Re-registering 'Perl6Grammar' | 22:08 | |
| pmichaud | but yes, we can do the explicit null check instead. | ||
| chromatic | Yes, that's the one. | ||
| Coke | chromatic: for something a little more serious, run time is cut from 56.99 to 35.237 | ||
| chromatic | 40% improvement. | ||
| Coke | wow. only 17 more of those to go, and I'll be as fast as tclsh. =-) | 22:10 | |
| if that's all from PGE trying to register Perl6Grammar, am I not using PGE properly? | 22:11 | ||
| pmichaud | Coke: it's possible. | ||
| justin | pmichaud: no error on latest trunk build (or earlier version), but why does $i++ produce an rvalue and ++$i an lvalue? | 22:12 | |
| pmichaud | $i++ increments $i and returns the value of $i prior to the increment. Obviously that's not $i itself. | ||
| Coke | chromatic: so did you find this by looking at the CG output I sent you? | 22:13 | |
| justin | oh it's implemented like that | ||
| chromatic | Coke, I saw that this is a bottleneck in the CG output. | ||
| justin | that's one way, I always implemented it as a delayed increment.. but this probably makes more sense with closures | 22:14 | |
| chromatic | The 'Perl6Grammar' line I pasted I coaxed out of Rakudo, which behaves similarly. | ||
| Coke | k. really have to go now. Let me know if I can do anything to get this 40% improvement checked in. =-) | 22:15 | |
|
22:15
eric256 left
|
|||
| Coke | -> | 22:15 | |
| pmichaud | I think I need to understand the context a bit better here. | ||
| by "redefine classes over and over again", how many times are we talking about? | 22:16 | ||
| < 10? dozens? hundreds? | |||
| chromatic | Every time you invoke PGE::Exp's compile() method. | 22:17 | |
| pmichaud | so that would be once per regex compilation. | ||
| okay, I'll check that. | |||
| chromatic | Looks like nine times for each sanity test. | 22:18 | |
|
22:31
TiMBuS joined
|
|||
| dalek | r34838 | pmichaud++ | trunk/runtime/parrot/library: | 22:59 | |
| : [p6object]: Add 'get_proto' method to obtain a protoobject (if it exists). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34838 | |||
| r34839 | pmichaud++ | trunk (2 files): | 23:00 | ||
| : [pge]: Use P6object 'get_proto' method to skip creating a class if it | |||
| : already exists. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34839 | |||
|
23:08
allison joined
|
|||
| Coke | that change had no appreciable impact. | 23:17 | |
| pmichaud | I didn't think it would. But it should get rid of the "redefine classes over and over again". | 23:18 | |
| chromatic_away | 2% | 23:23 | |
| purl | 0.02 | ||
| Infinoid | allison: "make realclean" doesn't fix TT #116 for me. I'm adding more info to the ticket | 23:24 | |
|
23:36
gmansi joined
23:43
TiMBuS joined
23:47
alvar joined
23:48
Aisling joined,
diakopter joined,
cotto joined,
Ademan joined
23:51
confound joined
|
|||
| Whiteknight | I'm having the hardest time finding a complete BCPL grammar online | 23:52 | |
| I found a decent-looking B grammar, and already have it written up in mostly-perl6grammar | 23:53 | ||
| and GW-BASIC is a hard grammar to find too | 23:55 | ||
| I did find a nice one for VS COBOL II | 23:57 | ||