Camelia, the Perl 6 bug

IRC log for #parrot, 2008-12-27

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:09 AndyA joined #parrot
00:11 Coke I'm seeing a rise in smolder reports. the smokers must have switched.
00:11 Coke or, rather, survived the switch.
00:11 Coke I am confused to see allison still working in the remove_pic branch.
00:12 Coke ah well. it will result in less code thatn we have now.
01:29 tetragon joined #parrot
01:49 kid51 joined #parrot
02:07 Limbic_Region joined #parrot
02:09 Ademan joined #parrot
02:46 Whiteknight joined #parrot
03:58 apeiron joined #parrot
04:02 elmex_ joined #parrot
04:30 Andy joined #parrot
04:32 ChrisDavaz joined #parrot
05:06 dalek r34402 | allison++ | branches/pdd22io_part3/src (3 files):
05:06 dalek : [pdd22io] Invert 'close', 'is_closed', and 'putps', so public interface just
05:06 dalek : calls a method on the FileHandle PMC, to allow clean polymorphism.
05:06 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34402
05:08 gmansi joined #parrot
05:09 dalek r34403 | allison++ | branches/pdd22io_part3/include/parrot:
05:09 dalek : [pdd22io] Run the headerizer on I/O files for new functions and filename
05:09 dalek : changes.
05:09 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34403
05:32 dalek r34404 | petdance++ | trunk/src:
05:32 dalek : SHIMmed an argument
05:32 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34404
05:32 dalek r34405 | petdance++ | trunk/tools/build:
05:32 dalek : no need to have an import on ::Utils
05:32 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34405
05:40 gmansi joined #parrot
05:43 Andy anyone around?
05:43 purl wait a minute and see
05:46 chromatic Something in mind?
05:50 dalek r34406 | petdance++ | trunk/lib/Parrot (2 files):
05:50 dalek : consting
05:50 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34406
05:51 Andy it's just hard to tell what's failing and why
05:51 Andy http://smolder.plusthree.com/app​/public_projects/smoke_reports/8
05:51 shorten Andy's url is at http://xrl.us/beaqvk
05:51 Andy some things fail, some don't, none of them what's failing for m.e
05:52 dalek r34407 | allison++ | branches/pdd22io_part3 (4 files):
05:52 dalek : [pdd22io] Invert 'flush', so public interface calls method on filehandle
05:52 dalek : object, for clean polymorphic substitution.
05:52 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34407
05:53 chromatic Andy, the OpenBSD ones are probably very specific to OpenBSD's transcendental number handling.
05:56 Andy it's also tragic that the headerizer can't run.
05:57 chromatic I had it working a while ago.
06:15 Andy can't find HEADERIZER HFILE directive in 'src/jit_defs.c' at tools/build/headerizer.pl line 452.
06:16 Andy Adding it in.
06:23 Andy nobody's run headerizer in a while.
06:26 dalek r34408 | petdance++ | trunk (16 files):
06:26 dalek : reran headerizer
06:26 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34408
06:36 dalek r34409 | petdance++ | trunk/src (3 files):
06:36 dalek : removing unused vars
06:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34409
06:39 chromatic What's the point of a register machine if our calling conventions are so heavyweight that we have to construct a CallSignature PMC for every subroutine invocation?
06:47 TiMBuS sounded like a cool idea at the time?
07:02 Andy didn't we ave a page of who's running what compiler somewhere?
07:03 Andy I bet I'm the only one even thinking of the intel COmpiler
07:03 Andy compiler
07:03 purl rumour has it compiler is a controversial feature of Perl5.005 which will probably be used for evil ends or a way for the unenlightened to make themselves think their programs will run faster
07:09 TiMBuS would it be a good suggestion to ask for generated labels in inline past nodes? so you dont have a clash if its used twice in the same scope
07:10 TiMBuS and on that subject, what will happen with inline past nodes if it switches to compiling straight to bytecode as (i think) patrick has said might happen?
07:10 dalek r34410 | petdance++ | trunk/src/io:
07:10 dalek : removed unused var, and consted a bunch
07:10 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34410
07:23 dalek r34411 | petdance++ | trunk/src/jit (10 files):
07:23 dalek : added headerizer directives
07:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34411
07:30 Andy sometimes I feel like the only one runing with max compile switches
07:35 tuxdna joined #parrot
07:36 tuxdna hi all
07:36 tuxdna is docs/book/ included in the HTML when we generate html documentation using "make html"
07:37 tuxdna I could'nt locate it there. Please tell me to find it out.
07:40 dalek r34412 | petdance++ | trunk/lib/Parrot/Pmc2c/PMC:
07:40 dalek : no imports for classes
07:40 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34412
07:40 dalek r34413 | petdance++ | trunk (2 files):
07:40 dalek : die_from_exception cannot return
07:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34413
07:50 dalek r34414 | petdance++ | trunk/src/pmc:
07:50 dalek : localizing a pointer
07:50 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34414
07:53 cotto tuxdna, iirc the book stuff is written in a PseudoPOD, which the normal POD code can't deal with.
07:54 cotto I'd look at http://search.cpan.org/~ar​andal/Pod-PseudoPod-0.13/ to get html out of it
07:54 dalek r34415 | petdance++ | trunk/lib/Parrot/Pmc2c:
07:54 dalek : removed unused var
07:54 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34415
07:56 tuxdna cotto, Thanks. I will figure it out.
08:05 dalek r34416 | petdance++ | trunk/lib/Parrot/Pmc2c (2 files):
08:05 dalek : Working on SHIMming out unused args in PMCs that throw exceptions
08:05 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34416
08:50 barney joined #parrot
08:58 Theory joined #parrot
09:57 Zaba joined #parrot
10:11 jimmy joined #parrot
10:14 jimmy_ joined #parrot
10:26 masak joined #parrot
10:58 iblechbot joined #parrot
11:09 dalek r34417 | ask++ | trunk:
11:09 dalek : Add subversion usernames and email addresses for everyone who made a commit
11:09 dalek : Include a small script to make an "svn authors" file
11:09 dalek : Signed-off-by: Ask Bj�rn Hansen <ask@develooper.com>
11:09 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34417
11:09 dalek r34418 | kjs++ | trunk/docs:
11:09 dalek : [docs] update entry for pirc. + remove an unnecessary space.
11:09 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34418
11:15 dalek r34419 | kjs++ | trunk/compilers/pirc/new (3 files):
11:15 dalek : [pirc] prepare to refactor sub struct.
11:15 dalek : + remove __ in some union names. They're ugly.
11:15 dalek : + remove some false comment.
11:15 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34419
11:16 alvar joined #parrot
11:18 kj joined #parrot
11:37 dalek r34420 | kjs++ | trunk/compilers/pirc/new (2 files):
11:37 dalek : [pirc] rewrite some complex code into switch format.
11:37 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34420
11:57 jimmy joined #parrot
12:21 ffwonko joined #parrot
13:14 dalek r34421 | kjs++ | trunk/config/gen/makefiles:
13:14 dalek : [config] fix pirc.in for make test.
13:14 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34421
13:15 register joined #parrot
13:15 dalek r34422 | kjs++ | trunk/compilers/pirc/new (3 files):
13:15 dalek : [pirc] add a parse_string function, which takes a PIR string.
13:15 dalek : + parse_file+parse_string() need to be refactored, but for now this works.
13:15 dalek : + add a PARROT_ASSERT on filename in bcgen.c:new_bytecode(); this cannot be NULL.
13:15 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34422
13:41 kid51 joined #parrot
14:04 jan joined #parrot
14:08 Theory joined #parrot
14:13 mberends joined #parrot
14:33 dalek r34423 | infinoid++ | trunk/compilers/imcc:
14:33 dalek : [cage] Re-add some #ifdef guards that were removed by 'make headerizer'.
14:33 dalek : This kills a gcc warning.
14:33 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34423
14:48 riffraff joined #parrot
14:53 tetragon_ joined #parrot
14:53 jimmy joined #parrot
15:03 riffraff I'd like to build a kind of label/goto thing into a language, but Im not sure how to emit that with PAST nodes. Probably it could be done building a continuation where the label is and calling it where I have the goto statement, but I'm not sure how to do that, is there something I could look for in the parrot code?
15:10 barney riffraff: I'm not aware of any HLL with 'goto'
15:20 riffraff joined #parrot
15:21 riffraff sorry got disconnected
15:21 riffraff I was saying I think perl6 has a kind of goto statement, and php IIRC
15:22 riffraff thougb probably the semantic is not the same as C's one
15:24 masak riffraff: Perl 6 has a goto, but Rakudo doesn't yet, IIRC.
15:25 Infinoid there is a t/spec/S04-statements/goto.t but it doesn't seem to parse correctly yet
15:29 riffraff ok, thanks
15:30 barney Same with Pipp. There is a goto in PHP, but it is not yet supported in Pipp.
15:31 riffraff it seems I found the trick: interpinfo .INTERPINFO_CURRENT_CONT shall return a callable comntinuation, so hopefully I can then invoke it to get a kind of goto behaviour
15:32 masak riffraff: does that mean you can only goto backwards?
15:32 riffraff masak, ah very true
15:33 masak riffraff: actually, worse than that. you can only goto to places you've executed.
15:35 riffraff yep
15:36 pedr joined #parrot
15:36 dalek r34424 | bernhard++ | trunk/languages/pipp (2 files):
15:36 dalek : [Pipp] Get rid of $?BLOCK and use @?BLOCK[0] instead.
15:36 dalek : Rename $past to $block where appropriate.
15:36 dalek : Enter parameters in the symtable of the function or method.
15:36 dalek : Reenable the recently todoed OO tests.
15:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34424
15:37 riffraff maybe i can build a block for each label at parse time and .tailcall it from the goto, but that would require explicitly .tailcall every block from the previous one, which seems painful (scope is not an issue in my case, I just have globals)
15:37 pedr left #parrot
15:40 masak riffraff: specifically, it might not work if you have a label inside a loop block, say.
15:40 dalek r34425 | bernhard++ | trunk/languages/pipp/src/pct:
15:40 dalek : [Pipp] Replace some hard tabs.
15:40 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34425
15:42 masak riffraff: er, disregard that last part.
15:48 dalek r34426 | bernhard++ | trunk/languages/pipp/t/php:
15:48 dalek : [Pipp] Saner function name in testcode.
15:48 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34426
15:49 riffraff masak, well yes I guess it can get pretty hairy anyway, but I'm implementing the shakespeare programming language so my problem space us pretty limited  :)
15:49 * masak googles
15:50 masak oh yes, that one. :)
15:50 masak riffraff: sounds like a fun project. good luck! I should do something like that too, to get to know PCT better.
15:52 Zaba_ joined #parrot
15:55 riffraff yes, as of now it 's  fun, the only problem is that PCT errors are not extremely useful (i.e. no return value if there is no action for a rule is evil)
15:56 masak aye.
16:00 jhorwitz joined #parrot
16:04 tetragon joined #parrot
16:24 kj joined #parrot
16:32 dalek r34427 | bernhard++ | trunk/languages/pipp (2 files):
16:32 dalek : [Pipp] Support for methods with parameters.
16:32 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34427
16:36 dalek r34428 | pmichaud++ | trunk/languages/perl6/docs:
16:36 dalek : [rakudo]: spectest-progress.csv update: 264 files, 5905 passing, 0 failing
16:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34428
16:39 dalek r34429 | pmichaud++ | branches:
16:39 dalek : New branch to refactor parameter, signature, and variable handling.
16:39 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34429
16:56 contingencyplan joined #parrot
16:59 tetragon joined #parrot
17:04 dalek r34430 | bernhard++ | trunk/languages/pipp/src/pct (2 files):
17:04 dalek : [Pipp] Add rule <statement_list> in order to simplify actions.
17:04 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34430
17:07 nopaste joined #parrot
17:18 jq joined #parrot
17:23 dalek r34431 | fperrad++ | trunk (61 files):
17:23 dalek : [Lua]
17:23 dalek : - add a CREDITS file
17:23 dalek : - remove POD section AUTHORS
17:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34431
17:31 peters joined #parrot
17:31 peters Hello
17:32 masak peters: hello.
17:34 peters How is your game coming along?
17:35 masak peters: http://github.com/masak/druid/
17:35 masak peters: quite well, thank you. :)
17:35 dalek r34432 | bernhard++ | trunk/languages/pipp/src/pct (2 files):
17:35 dalek : [Pipp] Eliminate rule block in favour of statement_list.
17:35 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34432
17:35 masak pmichaud: the last thing I wrote was code to check if someone won.
17:36 peters masak: cool, looking forward to play with it =)
17:36 jonathan hi all
17:36 masak jonathan: OH HAI
17:36 peters Hi Jon
17:36 jonathan Will be heading home from Christmas break tomorrow, and then back online more often again. :-)
17:37 masak \o/
17:37 jonathan Looks like pmichaud++ hasn't stopped turning in lots of stuff. :-)
17:38 pmichaud jonathan: I'm refactoring variables, signatures, declarations today
17:40 jonathan pmichaud: OK. Status of rakudoreg branch?
17:41 pmichaud jonathan: I decided to do the parameter refactor first.
17:41 jonathan pmichaud: OK
17:41 pmichaud I think it'll make more logical sense that way.
17:41 jonathan Well, I dodn't see them as hugely related.
17:42 pmichaud right.
17:42 jonathan Other than for type captures.
17:42 pmichaud also, parameter refactor is huge, and I have a couple of days where I can focus on them now.
17:42 jonathan OK, sure.
17:42 pmichaud so if I don't do that now, I don't know when I might get another chance
17:42 jonathan I'll be traveling tomorrow anyway.
17:42 jonathan So won't get to look at it again for a bit.
17:43 jonathan (As in, day or two)
17:43 jonathan So works for me.
17:43 pmichaud sounds good.
17:44 jonathan Having that sorted out will stand me in a good position for dispatch work.
17:45 jonathan January should be fun - finishing of type reg stuff, bunch of dispatch stuff, the start of parametric roles. :-)
17:46 jonathan And a workshop to round it all off.
17:49 Andy joined #parrot
17:52 dalek r34433 | bernhard++ | trunk/languages/pipp/src/pct (2 files):
17:52 dalek : [Pipp] Rename array_arguments to array_argument.
17:52 dalek : Simplify instantiate_array.
17:52 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34433
17:56 masak rakudobug?
17:56 purl rakudobug is mailto:rakudobug@perl.org
17:59 dalek r34434 | bernhard++ | trunk/languages/pipp:
17:59 dalek : [Pipp] add fperrad and cotto to CREDITS
17:59 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34434
18:20 gryphon joined #parrot
18:28 Whiteknight joined #parrot
18:33 kj joined #parrot
18:38 kj joined #parrot
19:02 dalek r34435 | kjs++ | trunk/compilers/pirc/new (5 files):
19:02 dalek : [pirc] refactoring of sub structure.
19:02 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34435
19:06 dalek r34436 | kjs++ | trunk/compilers/pirc/new (4 files):
19:06 dalek : [pirc] refactoring of add_sub_pmc function using new sub_info structure.
19:06 dalek : + move a line in yyerror; this makes more sense, to keep print stuff together.
19:06 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34436
19:07 chromatic joined #parrot
19:13 dalek r34437 | kjs++ | trunk/compilers/pirc/new (4 files):
19:13 dalek : [pirc] re-organize bytecode generation stuff a bit.
19:13 dalek : + the bytecode struct is now created at the start, so we can add constants before generating bytecode.
19:13 dalek : + creating a code segment is now done in a separate step, and should be done right before emiting bytecodes.
19:13 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34437
19:16 dalek r34438 | kjs++ | trunk/compilers/pirc/new (3 files):
19:16 dalek : [pirc] consting + small update in documentation.
19:16 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34438
19:29 dalek r34439 | kjs++ | trunk/compilers/pirc/new (4 files):
19:29 dalek : [pirc] add the sub PMC after the sub has been parsed, in the finalization routine for subroutines. This will allow us to store the constant table index by which this sub was stored in the constant table, in the global_label node, which is created for each subroutine. Then, when a subroutine invokes another subroutine, it can find this constant table index.
19:29 dalek : + rename const_nr as constant_table_index, which is a bit clearer.
19:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34439
19:40 dalek r34440 | kjs++ | trunk/compilers/pirc/new (3 files):
19:40 dalek : [pirc] store the constant table index for the sub in the global_label node for that sub.
19:40 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34440
19:47 dalek r34441 | kjs++ | trunk/compilers/pirc/new:
19:47 dalek : [pirc] convert 4 similar statements into a loop.
19:47 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34441
20:07 Infinoid I've hacked headerizer to give me per-function assert() macros, to verify that some kinds of arguments (ARGIN, ARGMOD, ARGOUT, NOTNULL) really are non-null.  they look like:
20:07 Infinoid #define _PARROT_DOD_CLEAR_LIVE_BITS_ASSERT assert(interp);
20:07 Infinoid #define _PARROT_DOD_FREE_BUFFER_ASSERT assert(pool); assert(b);
20:07 Infinoid #define _PARROT_DOD_FREE_BUFFER_MALLOC_ASSERT assert(b);
20:07 Infinoid #define _PARROT_DOD_FREE_PMC_ASSERT assert(interp); assert(p);
20:07 Infinoid #define _PARROT_DOD_FREE_SYSMEM_ASSERT assert(b);
20:08 Infinoid there are 1709 of them.  any complaints about the naming scheme, before I spend a day or so dropping them into all the functions they correspond to?
20:10 kj I believe the acronym 'DOD' is deprecated
20:11 chromatic It is.
20:11 kj there's an rt ticket on that I think
20:11 kj or maybe trac tricket
20:11 Infinoid its just an uppercasing of the name of the function
20:11 Infinoid rename the function and the macros will get renamed too
20:11 chromatic Fine by me then.
20:12 rhr joined #parrot
20:20 dalek r34442 | allison++ | branches/pdd22io_part3 (3 files):
20:20 dalek : [pdd22io] Invert 'read' so public interface calls the method, allowing cleaner
20:20 dalek : polymorphism.
20:20 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34442
20:25 tewk Any little c tasks I could do?
20:25 tewk I've started looking at the class registry is there a design plan ther yet?
20:26 chromatic I don't think there is.
20:26 chromatic The calling conventions refactoring branch could use some attention.
20:27 chromatic I don't know if Whiteknight's around to comment though.
20:29 tewk is calling_conventions/ the restart based on allison's diff or is it the old mess?
20:29 chromatic I think Whiteknight deleted the old branch and restarted based on a new diff.
20:29 tewk good
20:29 chromatic He had a commit or two there in the past couple of weeks, so if you see a branch without that, it's the old one.
20:29 chromatic I think the new branch compiles.
20:30 chromatic I keep trying to speed up MMD but the overhead is 95% calling conventions, and I don't want to rework those until we get rid of some of the mess.
20:32 pedr joined #parrot
20:33 pedr left #parrot
20:33 tewk chromatic++ I agree with your NCI comments by the way.
20:33 chromatic Thanks.
20:34 chromatic More and more I think we should steal wholesale how a mature Lisp FFI or Python's ctypes does things.
20:35 dalek r34443 | pmichaud++ | trunk/compilers/pge/PGE:
20:35 dalek : [pge]:  Allow spaces before adverbs in regexes (RT #47996).
20:35 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34443
20:36 tewk I'll have to look at ctypes.  I like NCI generally.
20:37 chromatic It's a great idea, but we do only handle a fraction (if significant) of the available signatures.
20:37 Tene tewk: allison tells me that at PDS it was established that we do need to include the HLL name in the type registry
20:37 Tene tewk: so that's a mostly straightforward design
20:37 tewk pmichaud: have you had a chance to look at the nsentry branch? its going to bit rot.
20:38 tewk Tene, that makes sense, I was thinking the same.
20:38 Tene There are a few remaining issues about whether we just use the currentl HLL when looking up types and if so how we get a type from another HLL, and if not do we then require everyone to always specify the HLL, and is that an issue?
20:38 Tene etc.
20:39 Tene Mostly minor things, though.  I think that PM was in favor of just always requiring the HLL name.
20:39 tewk Where do type lookups occur? new?
20:40 Tene there's also an opcode to get the class
20:40 Tene the simple PIr case you want to try is something like .HLL 'foo'; then make a new String class or some such
20:43 apeiron joined #parrot
20:48 pmichaud when looking up types, I think we should distinguish 'XYZ'   from ['Foo';'XYZ'] somehow.
20:48 pmichaud sorry
20:48 pmichaud rephrase
20:48 pmichaud when looking up types, I think we should distinguish 'XYZ' from ['XYZ'] somehow.
20:49 pmichaud I'm definitely _not_ in favor of always requiring the hll name in the PIR code -- much too much will break.
20:50 pmichaud i.e.,   ['parrot';'XYZ']   is just asking for trouble.
20:51 dalek r34444 | kjs++ | trunk/compilers/pirc/new (12 files):
20:51 dalek : [pirc] implement emission of .const items.
20:51 dalek : I'm not entirely happy with the lexer having to distinguish between .const identifiers and all other identifiers: now .const identifiers hide ops and all other identifiers, such as .locals. For now, this works.
20:51 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34444
20:55 Theory_ joined #parrot
20:55 pmichaud Here's my (not completely thought out) proposal:
20:55 pmichaud (1)  Keep the type registry as it is now, but attempting to
20:55 pmichaud create a class with an existing name doesn't carp (and doesn't change
20:55 pmichaud the registry).
20:55 pmichaud (2)  $P0 = get_class 'Foo' and $P0 = get_class $S0   always looks up a
20:55 pmichaud class in the global registry.
20:55 pmichaud (3)  $P0 = get_class ['Foo']  always looks up a class corresponding to the ['Foo'] namespace in the current HLL.
20:55 pmichaud (4)  To obtain a class from another HLL, it's necessary to first get the foreign HLL namespace and then obtain the class from that.
20:55 pmichaud Similar rules apply for newclass and subclass ops.
20:56 chromatic Seems sane to me.  I especially like #1.
20:57 pmichaud This seems to give the most flexibility with the least amount of breakage.  In particular, it means that HLLs can continue to get to Parrot's 'Integer', 'String', 'ResizablePMCArray'   etc. types without having to go through lots of hoops to do so.
20:57 pmichaud Then, if I need Parrot's Integer type, I do   $P0 = get_class 'Integer'
20:57 pmichaud if I need my own local Integer type, I do   $P0 = get_class ['Integer']
20:58 pmichaud If I need someone else's Integer type, I do    $P0 = get_root_namespace ['otherhll';'Integer']    $P1 = get_class $P0
20:58 Tene Different behavior for strings, keys, and namespaces feels awkward to me and possibly a source of bugs or confusion for new parroters in the future.  I don't think that those concerns make it a bad idea, though.
20:58 Tene I tentatively like this design.
20:59 pmichaud we already have different behavior for strings/keys/namespaces in the get_*_namespace opcodes, though.
20:59 pmichaud at least, potentially different behaviors.
20:59 chromatic This is consistent, too; none of Parrot's built in classes/PMCs have compound names.
21:00 pmichaud I do think it important for HLL's to still have a convenient way to get to Parrot's builtin classes.
21:00 pmichaud I haven't thought much about what this might imply for the 'isa' opcode, however.
21:00 pmichaud (which needs fixing anyway, imo)
21:01 Tene And how does it affect things if an HLL dev wants to use the builtin Parrot Integer, but his custom String subclass?  Does he need to arrange for the compiler to generate different get_class ops for the two different types of classes?
21:02 pmichaud best option for such a developer would be to subclass or import parrot's Integer into the local namespace
21:02 Tene Okay.
21:02 kj store the built-in class in the HLLs namespace
21:02 Tene That's reasonable.
21:03 pmichaud of course, rakudo and PCT never really run into this issue because they use protoobjects as handles to all of the classes anyway.
21:03 Tene Yeah, I approve this design too.
21:03 pmichaud (except for some of Parrot's builtins.)
21:04 pmichaud in PGE/PCT/rakudo the only things that really ever use get_class, subclass, or newclass are those things that are dealing with metaclasses in the first place.
21:04 pmichaud s/metaclasses/metaobject programming/
21:05 dalek r34445 | kjs++ | trunk/compilers/pirc/new (3 files):
21:05 dalek : [pirc] no need to store the constant table index in the constant node; it was already handled automatically by existing code.
21:05 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34445
21:05 Tene tewk: haven't seen you comment... you getting this?
21:08 PacoLinux joined #parrot
21:08 tewk back
21:17 kj woohoo! pirc emits code for sub calls :-)
21:18 dalek r34446 | kjs++ | trunk/compilers/pirc/new:
21:18 dalek : [pirc] first hacky attempt to do sub invocations.
21:18 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34446
21:25 pmichaud tewk: (nsentry) I'll definitely get to looking at it in the next 24 hrs.
21:25 pmichaud tewk: I'm not too worried about bitrot -- most things in rakudo are actually moving closer to nsentry compatibility, not farther away from.  :-)
21:30 dalek r34447 | kjs++ | trunk/compilers/pirc/new:
21:30 dalek : [pirc] refactor a bit and generate a signature PMC for auto-leave-instructions in a sub. Now the :main flag is no longer needed to run PIRC with -b option (and not segfault).
21:30 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34447
21:36 dalek r34448 | pmichaud++ | trunk (4 files):
21:36 dalek : [pge]:  Initial implementation of goal matching   '(' ~ ')' <expr>
21:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34448
21:37 Whiteknight Im here now
21:42 dalek r34449 | kjs++ | trunk (2 files):
21:42 dalek : [pirc] generate a fixedintegerarray, not a ~pmcarray. THe problem was that you can't resized a FIA to 0 elements, so only do the resize if size > 0. Also add a NEWS entry for PIRC with this progress.
21:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34449
21:53 Zaba joined #parrot
22:01 dalek r34450 | kjs++ | trunk/compilers/pirc/new:
22:01 dalek : [pirc] rename some stuff and remove some old comments.
22:01 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34450
22:13 Andy joined #parrot
22:17 kid51 joined #parrot
22:17 kid51 New test failure in t/compilers/pge/perl6regex/01-regex.t
22:18 kid51 Unable to open filehandle
22:18 kid51 not ok 755 - [rx_syntax:41] bare : after |+sp
22:18 kid51 Developed somewhere between r34444 and r34449.
22:18 geof joined #parrot
22:20 kid51 http://smolder.plusthree.com/app/p​ublic_projects/tap_stream/9874/342
22:20 shorten kid51's url is at http://xrl.us/beasdh
22:24 kid51 Must be something Patrick is up to:  ------------------------------------​------------------------------------
22:24 kid51 r34448 | pmichaud | 2008-12-27 16:36:20 -0500 (Sat, 27 Dec 2008) | 2 lines
22:24 kid51 [pge]:  Initial implementation of goal matching   '(' ~ ')' <expr>
22:26 pmichaud oh, I forgot to add a file.
22:29 dalek r34451 | pmichaud++ | trunk (2 files):
22:29 dalek : [pge]:  Add test file omitted from r34448 (kid51++)
22:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34451
22:29 dalek r34452 | pmichaud++ | trunk/compilers/pct/src/PCT:
22:29 dalek : [pct]:  Add smarter version of FAILGOAL rule for grammars.
22:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34452
22:29 dalek r34453 | pmichaud++ | trunk/languages/perl6/src/parser:
22:29 dalek : [rakudo]:  Update grammar to use goal matching syntax.
22:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34453
22:34 kid51 magnachef ping
22:37 dalek r34454 | pmichaud++ | branches:
22:37 dalek : Drop branch to start anew with new trunk (PGE) changes.
22:37 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34454
22:46 nopaste joined #parrot
23:08 brunoV joined #parrot
23:21 kid51 Smolder reports now reporting no failures on FreeBSD.
23:22 gryphon joined #parrot
23:23 tewk So my plan for class registry is to add one to the hll info struct.
23:24 tewk The global one will exist mainly for top level parrot pmcs
23:24 tewk Do we have syntax to specify the HLL of dynpmcs?
23:25 tewk If not we should add it.
23:29 TiMBuS joined #parrot
23:30 pmichaud tewk: when would the hll class registry get used?
23:31 pmichaud and did you see my proposal earlier?
23:34 tewk pmichaud: yes I saw it, when you use keyed access []
23:34 tewk I guess I could just use the global one and serialize the FQN of the class as the key to the class registry
23:35 pmichaud ....no
23:35 pmichaud keyed access doesn't use the hll class registry, it uses the namespace
23:35 pmichaud since every class has an associated namespace
23:35 pmichaud there's no need for a "hll class registry"
23:36 pmichaud basically,   $P0 = get_class ['Foo']   is the same as
23:36 pmichaud $P1 = get_namespace ['Foo'];  $P0 = get_class $P1
23:36 pmichaud (or perhaps get_hll_namespace there, depending on whether we want to search from the root or from the current namespace.)
23:37 tewk ok
23:37 pmichaud at least, that's the way I was thinking of it.
23:37 tewk so what goes in the registry then, just core pmcs.
23:44 dalek r34455 | petdance++ | trunk/compilers/imcc (2 files):
23:44 dalek : making internal functions static
23:44 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34455
23:45 pmichaud well, everything goes in the registry
23:45 pmichaud it just doesn't carp about duplicates
23:46 pmichaud (and hll implementors would be wise to avoid the registry except for the core types)
23:46 pmichaud that was my point #1 -- leave the registry as is, just make it so it's less annoying
23:46 pmichaud or, phrased another way
23:46 pmichaud if I do
23:46 pmichaud $P0 = newclass 'Foo'
23:47 pmichaud then 'Foo' goes into the registry, and later  get_class 'Foo'  will grab it from the registry
23:47 pmichaud if I do
23:47 pmichaud $P0 = newclass ['Foo']
23:47 pmichaud then I (pmichaud) don't really care if it goes in the registry or not.  Probably better if it doesn't.
23:47 pmichaud if I do
23:47 pmichaud $P0 = get_namespace ['Foo'];   $P1 = newclass $P0
23:47 pmichaud then it doesn't go into the registry.  (This is current Parrot behavior)
23:48 pmichaud so, the only time things go into the registry:
23:48 pmichaud when creating a class using a string or string constant with newclass or subclass ops
23:48 pmichaud when explicitly giving a class a name via the .name method
23:49 pmichaud in either case, the registry doesn't complain about the duplicate name, or it's a catchable exception that we can ignore
23:51 tewk I think I got it, going to take a look at code
23:53 dalek r34456 | jkeenan++ | trunk/compilers/pct/src/PCT:
23:53 dalek : Eliminate trailing whitespace.
23:53 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34456
23:57 apeiron_ joined #parrot
23:59 dalek r34457 | petdance++ | trunk/compilers/imcc (2 files):
23:59 dalek : staticing and localizing
23:59 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34457

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

Parrot | source cross referenced