Camelia, the Perl 6 bug

IRC log for #parrot, 2009-01-02

Parrot | source cross referenced

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

All times shown according to UTC.

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

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

Parrot | source cross referenced