Re: [svn:parrot] r21891 - branches/pdd15oo/src/pmc
On Friday 05 October 2007 14:02:32 [EMAIL PROTECTED] wrote: Author: allison Date: Fri Oct 5 14:02:31 2007 New Revision: 21891 Modified: branches/pdd15oo/src/pmc/namespace.pmc Log: [pdd15oo] The namespace PMC adds methods and vtable overrides to the class if it's associated with a class. Modified: branches/pdd15oo/src/pmc/namespace.pmc === === --- branches/pdd15oo/src/pmc/namespace.pmc (original) +++ branches/pdd15oo/src/pmc/namespace.pmcFri Oct 5 14:02:31 2007 @@ -182,6 +182,7 @@ Parrot_NSInfo *nsinfo= PARROT_NSINFO(SELF); PMC *vtable= nsinfo-vtable; Parrot_sub*sub = PMC_sub(value); +PMC * const classobj = VTABLE_get_class(interp, SELF); /* Handle vtable methods with two underscores at the start. */ if (sub-vtable_index == -1) { @@ -202,9 +203,14 @@ /* Insert it. */ VTABLE_set_pmc_keyed_int(INTERP, vtable, sub-vtable_index, value); + +/* Insert it in class, if there is a class */ +if (!PMC_IS_NULL(classobj) PObj_is_class_TEST(classobj)) + VTABLE_add_vtable_override(interp, classobj, key, value); } Is there a reason why classobj would *not* be a class if it's not PMCNULL? I don't understand this additional test. -- c
Re: pdd15oo: load_bytecode and :method subs
Allison Randal wrote: Patrick R. Michaud wrote: In pdd15oo, there seems to be an issue about using load_bytecode to load :method subs after a class has been created. Working now for both load_bytecode and the eval case. One problem: with this change, every named method is inserted into the class associated with its namespace. As specified, it throws an exception when you try to readd a method of the same name, unless you explicitly tell it to override the old method (this metamodel enforces more than the previous one). That's all good, except that PGE::P6Regex has a routine 'compile_p6regex' that regenerates the same method named '_regex' in the PGE::Grammar namespace for every anonymous rule (every rule that has no name and no grammar specified). PGE::P5Regex has the same problem. The attached patch creates the rule's method in a randomly numbered faux-anonymous class, instead of PGE::Grammar. This gets the tests to pass again, but it's not a permanent solution. You probably want to use :anon methods, or delete the '_regex' method from the class when you're done with it. There's a similar problem in t/compilers/pge/06-grammar.t, which keeps recompiling a test rule named 'main', into the class Simple::Test. I'll look at it more tomorrow. Allison Index: compilers/pge/PGE/P6Regex.pir === --- compilers/pge/PGE/P6Regex.pir (revision 21905) +++ compilers/pge/PGE/P6Regex.pir (working copy) @@ -36,7 +36,12 @@ adverbs['grammar'] = $S0 goto with_grammar adverb_grammar_1: -adverbs['grammar'] = 'PGE::Grammar' +$P0 = new 'Random' +$I0 = $P0 +$S0 = $I0 +$S0 = 'PGE::Grammar::Anon' . $S0 +adverbs['grammar'] = $S0 +#adverbs['grammar'] = 'PGE::Grammar' with_grammar: $I0 = exists adverbs['name'] if $I0 goto with_name
[perl #46137] [TODO] The text in an instruction after ':' is a label isn't it? (PDB_hasinstruction)
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46137] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46137 In src/debug.c:PDB_hasinstruction() has the todo item: else if (*c == ':') { /* this is a label. XXX right? */ We just need to check here that the text after a ':' denotes a label. This function could also do with some more expressive variable names than 'h' and 'c'.
[perl #46139] [TODO] Do more in the parrot debugger
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46139] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46139 In src/debug.c:GDB_P() there is the todo item: * TODO more, more What exactly needs to be done is a good question, however, needs more work.
[perl #46141] [TODO] Move gdb breakpoints to the debugger interpreter
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46141] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46141 In src/debug.c there is the todo item: /* TODO move these to debugger interpreter */ static PDB_breakpoint_t *gdb_bps; I think this means to move gdb breakpoints into the parrot debugger interpreter.
[perl #46143] [TODO] Handle removing breakpoints in debugger
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46143] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46143 In src/debug.c:GDB_B() there is the todo item: * XXX We can't remove the breakpoint yet, executing the next ins * most likely fails, as the length of the debug-brk stmt doesn't * match the old opcode * Setting a breakpoint will also fail, if the bytecode os r/o
[perl #46145] [TODO] Perform bounds checking in GDB_B()
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46145] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46145 In src/debug.c:GDB_B() there is the todo item: /* HACK alarm pb 45 is passed as the integer not a string */ /* TODO check if in bounds */ pc = interp-code-base.data + (unsigned long)s;
[perl #46147] [TODO] Print out more information about the macro in imcc
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46147] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46147 In compilers/imcc/main.c:do_pre_process() there is the todo item: /* TODO: print out more information about the macro */
[perl #46149] [TODO] Parrot_runcode and/or imcc_run_pbc should return a value
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46149] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46149 In compilers/imcc/main.c:imcc_run_pbc() there is the todo item: /* XXX no return value :-( */ Parrot_runcode(interp, argc, argv);
[perl #46153] [TODO] Check for regular file in Parrot_readbc()
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46153] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46153 In src/embed.c:Parrot_readbc() there is the todo item: * TODO check for regular file
[perl #46155] [TODO] Is usage of mem_sys_free() ok in Parrot_readbc()?
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46155] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46155 In src/embec.c:Parrot_readbc() there is the todo item (with context): #ifdef PARROT_HAS_HEADER_SYSMMAN if (fd = 0) { close(fd); /* the man page states, it's ok to close a mmaped file */ } #else /* XXX Parrot_exec uses this mem_sys_free(program_code); */ #endif Should mem_sys_free() be called here?
[perl #46157] [TODO] Stop depending upon typed namespaces in internal_ns_keyed()
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46157] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46157 In src/global.c:internal_ns_keyed() there is the todo item: /* TODO - stop depending on typed namespace */
[perl #46159] [TODO] Match HLL of enclosing namespace in internal_ns_keyed()?
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46159] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46159 In src/global.c:internal_ns_keyed() there is the todo item: /* TODO - match HLL of enclosing namespace? */
[perl #46161] [TODO] Use the untyped interface in Parrot_find_global_n()
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46161] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46161 In src/global.c:Parrot_find_global_n() there is the todo item: XXX - For now this function prefers non-namespaces, it will eventually entirely use the untyped interface.
[perl #46163] [TODO] Parrot's default namespaces should be fully typed
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46163] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46163 In src/global.c:Parrot_find_global_n() there is the todo item: * XXX - we should be able to use 'get_pmc_keyed' here, * but we can't because Parrot's default namespaces are not * fully typed and there's a pseudo-typed interface that * distinguishes 'get_pmc_keyed' from 'get_pointer_keyed'; * the former is for NS and the latter is for non-NS.
[perl #46165] [TODO] Implement method cache invalidation in Parrot_store_global_cur()
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46165] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46165 In src/global.c:Parrot_store_global_cur() there is the todo item: /* FIXME - method cache invalidation should occur */
[perl #46167] [TODO] Replace temporary hack for method cache invalidation with decent implementation
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46167] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46167 In src/global.c:Parrot_store_global_k() there is the todo item: * XXX - temporary hack to notice when key is actually a string, so that * the legacy logic for invalidating method cache will be called; this * is not good enough but it avoids regressesions for now
[perl #46169] [TODO] Method cache invalidation should be a namespace function
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46169] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46169 In src/global.c:Parrot_store_global_s() there is the todo item: /* FIXME - method cache invalidation should be a namespace function */ Parrot_invalidate_method_cache(interp, str_key, globalname);
[perl #46171] [TODO] Parrot_find_name_op() should walk up the scopes
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46171] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46171 In src/global.c:Parrot_find_name_op() there is the todo item: TODO - THIS IS BROKEN - it doesn't walk up the scopes yet - TODO
[perl #46177] [TODO] GC should lower CHUNKED_CTX_MEM threshold when collecting continuations
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46177] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46177 In src/gc/regsiter.c there is the todo item: TODO GC has to lower this threshold when collecting continuations.
[perl #46179] [TODO] Remove GC code depending upon -D40 before parrot 1.0
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46179] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46179 In src/gc/register.c:clear_regs() there is the todo item: /* depending on -D40 we set int, num to garbage different garbage * TODO remove this code for parrot 1.0
[perl #46181] [TODO] Who clears ctx-current_object created in init_context()?
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46181] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46181 In src/gc/register.c:init_context() there is the todo item: ctx-current_object = NULL; /* XXX who clears it? */
[perl #46183] [TODO] Move stacks into the interpreter?
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46183] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46183 In src/gc/register.c:init_context() there is the todo item: ctx-reg_stack = old-reg_stack; /* XXX move into interpreter? */ ctx-user_stack = old-user_stack; /* XXX move into interpreter? */
[perl #46185] [TODO] Create specialised context for contexts due to self-recursive calls
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46185] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46185 In src/gc/register.c:Parrot_alloc_context() there is the todo item: * TODO (OPT) if we allocate a new context due to a self-recursive call * create a specialized version that just uses caller's size
[perl #46187] [TODO] Work out what todo item means in parrot_gc_context()
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46187] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46187 In src/gc/register.c:parrot_gc_context() there is the todo item: LVALUE_CAST(char *, ctx.bp) = interp-ctx_mem.threshold - sizeof (parrot_regs_t); /* TODO */ It is unclear what one has to do here, so the first thing to do is to work out what the todo is there to do.
[perl #46191] [TODO] Process exceptions properly in init_context()
# New Ticket Created by Paul Cochrane # Please include the string: [perl #46191] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46191 In src/gc/register.c:init_context() there is the todo item: ctx-ref_count = 0; /* TODO 1 - Exceptions !!! */ I think this means to handle exceptions wrt reference counts correctly, but I'm really not sure.
Re: [perl #46099] [TODO] Check for existing parent classes in add_parent()
I think it should be something like this: /* RT46099 Check we don't already have this parent. */ /* If we have already added a method with this name... */ if (VTABLE_exists_keyed_str(interp, _class-all_parents, VTABLE_name(interp, parent))) { real_exception(interp, NULL, E_NotImplementedError, This class already has this parent.); } can't test this, parrot does not build in pdd15 branch. it should be more or less like this, based on impl of add_attribute. the headerfile classobject.h is missing in the branch, while it is there in trunk. Is this right? btw, the type of exception should be changed, also for other methods. hth kjs On 10/5/07, via RT Paul Cochrane [EMAIL PROTECTED] wrote: # New Ticket Created by Paul Cochrane # Please include the string: [perl #46099] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=46099 In src/pmc/class.pmc:add_parent() there is the todo item: /* XXX Check we don't already have this parent. */
Re: [perl #45935] [TODO][IMCC] syntax for assignment/creating objects
On 10/2/07, via RT Klaas-Jan Stol [EMAIL PROTECTED] wrote: # New Ticket Created by Klaas-Jan Stol # Please include the string: [perl #45935] # in the subject line of all future correspondence about this issue. # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=45935 hi, a code snippet like this: the_value = new 'Type' the_value = 42 is in my eyes not clear. It seems as if the first line creates an object, and it seems to be discarded on the second line, as some value is assigned to the_value. some time ago (months, maybe 1 year?) there was a discussion about different assignment operators for setting/assigning. I remember := being mentioned. I don't recall whether it was about the issue, or that it was about the ops set and assign. I think this syntax could be improved, to make it more clear that the value 42 is assigned to the newly created object. kjs as a note-to-self, maybe this is an idea: .local pmc a,b,c a = new 'Integer' set a = 42 So, instead of a=42, you need to use the op. It reads kinda natural, set a to 42, but it's a bit longer to type. likewise, this could be done for assign as well assign b = c Also, the aforementioned := could be introduced, like so: a := new 'Integer' # assign a new object to a a = 42 # set some value to a a := b # assign value in b to a I'm not really sure if assigning another pmc and creating a new pmc can both be considered assignment, thus using the := assignment operator; in other words, would this be more consistent? Just some thoughts. kjs
Re: [perl #45935] [TODO][IMCC] syntax for assignment/creating objects
Klaas-Jan Stol (via RT) wrote: a code snippet like this: the_value = new 'Type' the_value = 42 is in my eyes not clear. It seems as if the first line creates an object, and it seems to be discarded on the second line, as some value is assigned to the_value. The key thing to keep in mind is that '=' is not an operator in PIR, it's just syntactic sugar for human convenience. Those two lines are actually: new the_value, 'Type' set the_value, 42 These apply two simple rules of An '=' followed by an opcode means the result argument is the first argument to the opcode and Any other '=' (that's not a sub or method call) is the 'set' opcode, and the result argument is the first argument to 'set'. The different behavior is a result of calling different opcodes. Each individual opcode decides whether it has assignment or binding behavior. Allison
Some questions about using NaN and Inf
I'm thinking about how to explain Perl 6's numbers to the beginners just picking up Learning Perl 6. I had some questions about NaN and Inf (which I can't just try since neither Parrot or Pugs appear to know about these yet). * In S02's table of Immutable types, it mentions that Int allows Inf and NaN, but doesn't say anything about Num and Complex handling them. Is it that it's unexpected that Int would handle it, so you have to say this explicitly, or um, I don't have a good alternative :) Int Perl integer (allows Inf/NaN, arbitrary precision, etc.) Num Perl number Complex Perl complex number The complex and num native type handles NaN accroding to Native type, a couple of subsections back, and I'm confident that Num and Complex should have them too. It just looked odd to me that only one of Int, Complex, and Num said anything about it. * will NaN, -Inf, or +Inf be literal values (or something close) so I can use them in comparisons? e.g. $x ~~ NaN. I see uses of Inf in list creation ( 1 .. Inf ), but can I use that everywhere? * If I can match $x to NaN (or its stand-in), what happens when $x is undef? There's a note about this in S02 (Conjecture: num might ...). Native type say that an int type defaults to 0, which complicates things for beginners, but if everything starts off as a num, it doesn't matter until we talk about types. * If I declare a sub to return a number of some sort (either by using Cof or Cas, what happens when the value is NaN or Inf? I suppose that should be fine as a return value, but it also seems that if someone wants to impose some sort of constaint on the return value that they wouldn't want exceptional values.
Re: Some questions about using NaN and Inf
brian d foy wrote: * If I can match $x to NaN (or its stand-in), what happens when $x is undef? undef is a property of the container variable (that it holds no value), whereas NaN is a property of the content (like 1/0). so undef ~~ NaN should be false IMHO. There's a note about this in S02 (Conjecture: num might ...). Native type say that an int type defaults to 0, which complicates things for beginners, but if everything starts off as a num, it doesn't matter until we talk about types. And native means no container, no magic, so it can't be undef. * If I declare a sub to return a number of some sort (either by using Cof or Cas, what happens when the value is NaN or Inf? I suppose that should be fine as a return value, but it also seems that if someone wants to impose some sort of constaint on the return value that they wouldn't want exceptional values. return a native type? -- Moritz Lenz http://moritz.faui2k3.org/ | http://perl-6.de/ signature.asc Description: OpenPGP digital signature
Re: Some questions about using NaN and Inf
In article [EMAIL PROTECTED], brian d foy [EMAIL PROTECTED] wrote: I'm thinking about how to explain Perl 6's numbers to the beginners just picking up Learning Perl 6. I had some questions about NaN and Inf (which I can't just try since neither Parrot or Pugs appear to know about these yet). Oi, sent that before I was done writing it. I was looking way back into the past at Numeric literals, take 1 http://www.nntp.perl.org/group/perl.perl6.documentation/2002/11/msg205.h tml and wondering how much of that is should be in S02. For comparisons, how are we going to use Inf and NaN? Are those going to be special flyweight objects, so: $x = 1 / 0; $x == Inf;# is it the same value $x === Inf; # it is always the same object
Re: Parallel GC for parrot - does it make sense?
Thanks, Will! I succeeded to merge Harmony tree into my local copy: $ svn propget svn:externals src/gc gen http://svn.apache.org/repos/asf/harmony/enhanced/drlvm/trunk/vm/gc_gen/src Then I fixed Manifest.pm to process external entries correctly and started to understand that MANIFEST is used mainly for bundling of the product. It seems to me that it is not used for Makefile generation. Is it true that config/gen/makefiles/root.in is hand-written? Thanks! On 10/6/07, Will Coleda [EMAIL PROTECTED] wrote: On Oct 5, 2007, at 1:35 PM, Maria Fedotova wrote: Hello folks, I wonder if the community would be interested in attaching another garbage collector to the parrot VM. For example, Apache Harmony contains implementation of a parallel garbage collector [1] which is quicker on modern multi-core and SMP systems. If you think this may be technically feasible, I wonder if there are any legal issues which prevent Apache-licensed component to be used with the code licensed under artistic license. I'm currently looking at tools/dev/mk_manifest_and_skip.pl to add GC files to the build process. I'm also trying to dig up how --gc=config option of Configure.pl works. This script automatically generates MANIFEST and MANIFEST.SKIP based on what's checked into the repository; If files are added to the repo, running this tool automatically adds them. [1] http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/ gc_gen/ With best regards, Masha -- Will Coke Coleda [EMAIL PROTECTED] externals_fix.patch Description: Binary data
Pair notation for number radix
This is basically the same question I had about file test operators earlier (http://www.nntp.perl.org/group/perl.perl6.language/2007/04/msg27415.htm l). I never got an answer on my syntax question and the discussion went off to talk about file tests instead of pair notation. From S02 The general radix form of a number involves prefixing with the radix in adverbial form. This seems to say that there are non-general radix forms, and that those might involve a different radix form that's not adverbial. Later in the Literals section of S02, there's a chart of the corresponding forms for fat arrow, pair, and paren notation. It has a = 'foo' :afoo :a(foo) That looks like it might mean that these are corresponding forms: 8 = 377:8377:8(377) Now, if I can do that, what happens to the pair form in a hash composer when I want the key of '8' and the value of :10377? Also, going a bit further, the table lists a = foo bar :afoo bar :a(foo bar) So can I do things like 255 = 10 1 0 6; # hey, that looks like an IP address :25510 1 0 6; # is that the same as :255[ 10,1,0,6 ] ? And, if that works, what might this do? q:w:25510 1 0 6
Re: Parallel GC for parrot - does it make sense?
On Saturday 06 October 2007 13:49:21 Maria Fedotova wrote: I succeeded to merge Harmony tree into my local copy: $ svn propget svn:externals src/gc gen http://svn.apache.org/repos/asf/harmony/enhanced/drlvm/trunk/vm/gc_gen/src Then I fixed Manifest.pm to process external entries correctly and started to understand that MANIFEST is used mainly for bundling of the product. It seems to me that it is not used for Makefile generation. Is it true that config/gen/makefiles/root.in is hand-written? Yes, that's exactly right. After you make the change, re-run perl Configure.pl and you'll get new Makefiles. It should be *fairly* easy to modify, but if you run into trouble there should be someone in #parrot on irc.perl.org who can help you. -- c
Re: Some questions about using NaN and Inf
At 3:20 PM -0500 10/6/07, brian d foy wrote: For comparisons, how are we going to use Inf and NaN? Are those going to be special flyweight objects, so: $x = 1 / 0; $x == Inf;# is it the same value $x === Inf; # it is always the same object Be mindful of the difference between value types and non value types. For value types, the generalized value equality test === can return true for 2 objects if they have the same value, but for non value types, === tests if they are the same object. All built-in number types are value types, so === and == would return the same answer for them. By contrast, the =:= operator always tests if 2 things are the same object or not, even for those of value types. -- Darren Duncan
use more $Id$: Was: Re: [svn:parrot] r21940
Not to pick on James here. There are a LOT of files where we put the name of the file *in* the file; this becomes a maintenance burden, especially with duplication, refactoring, renaming... I noticed this when trying to do some cleanup in the t/ directory some months ago. For example, in the cut at the end, are NAME SYNOPSIS necessary here at all? They are just boilerplate that's going to bitrot; We can write the SYNOPSIS once at a toplevel doc somewhere. The NAME is just the path; you obviously know the path if you ran the perldoc to see it. Any thoughts? $ head -20 t/oo/composition.t #!perl # Copyright (C) 2007, The Perl Foundation. # $Id: /parrot/offline/t/oo/composition.t 7681 2007-09-06T12:28:44.077679Z coke $ use strict; use warnings; use lib qw( . lib ../lib ../../lib ); use Test::More; use Parrot::Test tests = 10; =head1 NAME t/oo/compositon.t - test role composition =head1 SYNOPSIS % prove t/oo/compositon.t =head1 DESCRIPTION On Oct 6, 2007, at 9:24 PM, [EMAIL PROTECTED] wrote: /t/configure/039-run_single_step.t -- Will Coke Coleda [EMAIL PROTECTED]
Re: [perl #44353] [BUG] Configure.pl: verbose-step option not workingwith named step
Allison Randal wrote: Simplification is a good idea. I suspect most people would rather type some short unique value for the option than the text of the description anyway. In the reconfigure/ branch, I have figured out how to do this with the --fatal-step option (https://rt.perl.org/rt3/Ticket/Display.html?id=45525). I will soon be proposing a patch to trunk for --fatal-step, and it would be great if --verbose-step and --fatal-step could work in the same manner. Agreed on wanting consistency here. I should note that currently you can also specify --verbose-step=53 and have step # 53, and only #53, execute verbosely. How that would be affected I haven't yet thought through? Given a choice between the two, I'd rather see the step number in the non-verbose output: 53) Loading platform and local hints files...done. than see the step name: inter::progs: Loading platform and local hints files...done. So, how about we make both --fatal-step and --verbose-step accept either a step number or step name. Didn't I hear someone recently remark, Simplification is a good idea? ;-) This is doable, but it will take me at least 9 separate test files to thoroughly test it.
Re: Parallel GC for parrot - does it make sense?
Hi, Allison Randal wrote: It's worth exploring, and may lead to other experiments in parallel GC.. Parrot allows multiple different GC systems, so you shouldn't encounter significant problems on the Parrot side, but if you do, let us know and we'll fix them. I don't know if Harmony's parallel GC was designed to be plugged into other systems, though, so you may need to write a wrapper around it (which may lose some of the speed gains). What is the future of Parrot and GC systems ? Are we gonna have in near future similar GCs what the JVM has at this moment: - serial collector - parallel collector - concurrent collector ? That would be good since you can adjust your application for different loads. As well that would increase the time spent how to tune and do maintenance for your app so documentation would be valuable. Im curious, is Parrot a generational type of VM (objects are allocated in generations), similar as the popular JVM ? Rgds, Stefan
Re: Parallel GC for parrot - does it make sense?
The three schemes currently implemented are generational, stop-the-world mark-and-sweep, and incremental mark-and-sweep. The generational GC implementation is not complete yet. The default GC scheme at the moment is stop-the-world mark-and-sweep. For the 1.0 release the default will likely be either incremental or generational, depending on which proves to be the most stable and best performance on average across common use cases. We will definitively need good documentation for this part: - Parrot VM tuning, is it needed, why and when ? - Parrot and JVM, a simple face-to-face comparative description will help a lot of folks coming from Java land and as well sysadmins which are maintaining the JVM options for app servers, for instance. For instance, this would be very interesting how Parrot VM will be configured to run Perl 6... - Parrot's VM options should try to stay as a small set, good documented and not expand in dozens hard to maintain and hard to understand. Thanks for message, Stefan