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