RE: Fundraising
> From: Karen Pauley [mailto:[EMAIL PROTECTED] > Sent: Thursday, April 24, 2008 6:55 AM > > In response to the messages on the mailing list regarding Perl 6 > Fundraising > TPF have been discussing two possible ways to handle donations and fund > allocations for Perl 6. > > 1. add a new category to the current donation system. > > The new category would be called "Perl 6 Development", or something > similar. Any donations made in this category will be used specifically > to fund Perl 6. > > It would also be possible to use the Perl 6 wiki to allow the community > to identify and prioritise projects that require funding. > > This is a simple solution that uses systems that are already in place. > It may not be exactly what everyone wants but it would limit the amount > of overheard required by the developers who need funded. > > 2. build a system as described by Richard Hainsworth in his email sent > on March 11, with body beginning "Richard Dice covered some crucial > questions below." > > To do this TPF would need someone from the Perl community to implement > this system. Once the system is built TPF would handle taking the money > and giving it to the correct people. > > So, which one is better? The first solution is simple, but is it > enough? > Is there someone who is willing to implement the system that Richard > Hainsworth described? Well, first of all, thanks much for pursuing this! Unless someone steps forward in the near future to do #2, I'd opt for doing #1 in the mean time. We could set up a Perl 6 wiki page that contained a master list of proposed earmark tasks. Each item in the main list could contain a few standard sub-items in this format: * Earmark: A brief descriptive task name * Paragraph-long synopsis of task. * Person(s) or Organization * Required funding and terms "Earmark: A brief descriptive task name" would be linked to a an identically-titled wiki page with more information, including relevant task-specific admin info. Such pages would be used for (among other things) tracking donors and donations. This would be done by designated volunteers, since we want to make things as easy as possible for developers. Until #2 is implemented, there is a question of how to handle cases requiring a minimum donation threshold, since the only option at present is to donate or not. So for the time being, there could be a per-donor fallback use for donations made in such cases, which would be invoked after some pre-specified period of time. There are other details to work out, but I first want to see if something along these lines might be half-way reasonable. PS: I'm willing to donate $500 towards getting #2 done, which I suggest doing by means of making (say) 10 $50 donations by means of the system at various stages of its implementation, thereby helping to user-test it with real $ transactions. Best regards, Conrad Schneiker www.AthenaLab.com Official Perl 6 Wiki - http://www.perlfoundation.org/perl6 Official Parrot Wiki - http://www.perlfoundation.org/parrot
[perl #53298] [BUG] inheritance not working?
# New Ticket Created by dakkar # Please include the string: [perl #53298] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=53298 > parrot r27159, built on Linux, both x86-32 and x86-64 Running the attached program produces: > 5 > Null PMC access in morph() > current instr.: '!TYPECHECKEDASSIGN' pc 6754 (src/gen_builtins.pir:4728) > called from Sub 'parrot;Bar;set' pc 255 (EVAL_13:94) > called from Sub '_block10' pc 156 (EVAL_13:49) > called from Sub 'parrot;PCT::HLLCompiler;eval' pc 785 > (src/PCT/HLLCompiler.pir:458) > called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1067 > (src/PCT/HLLCompiler.pir:587) > called from Sub 'parrot;PCT::HLLCompiler;command_line' pc 1246 > (src/PCT/HLLCompiler.pir:676) > called from Sub 'parrot;Perl6::Compiler;main' pc 8860 (perl6.pir:183) If I uncomment the $u.boo after the re-assignment to $u, I get a "Null PMC access in get_string()" It looks like inheritance is not working as I'd expect. To make it "work", I have to move the 'set' method into Foo, and remove all references to Bar. -- Dakkar - GPG public key fingerprint = A071 E618 DD2C 5901 9574 6FE2 40EA 9883 7519 3F88 key id = 0x75193F88 "Every group has a couple of experts. And every group has at least one idiot. Thus are balance and harmony (and discord) maintained. It's sometimes hard to remember this in the bulk of the flamewars that all of the hassle and pain is generally caused by one or two highly-motivated, caustic twits." -- Chuq Von Rospach, about Usenet test.p6 Description: Binary data
given vs for
Not being familiar with the big picture design* of Perl 6, I'm not able to answer this. I assume that there is a clear reason, but what is it? Nicholas Clark * Heck, I'm also not familiar with the little bits either. - Forwarded message from Ed Avis <[EMAIL PROTECTED]> - Envelope-to: [EMAIL PROTECTED] Delivery-date: Fri, 25 Apr 2008 11:32:50 +0100 Mailing-List: contact [EMAIL PROTECTED]; run by ezmlm Delivered-To: mailing list [EMAIL PROTECTED] Delivered-To: [EMAIL PROTECTED] To: [EMAIL PROTECTED] From: Ed Avis <[EMAIL PROTECTED]> Subject: Re: [perl #53186] Modifying $_ inside 'given' Date: Fri, 25 Apr 2008 10:32:19 + (UTC) User-Agent: Loom/3.14 (http://gmane.org/) X-Loom-IP: 80.169.169.174 (Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5) Paul Fenwick perltraining.com.au> writes: >for ($foo) { > when ($_ < 500) { ++$_ } > when ($_ > 1000) { --$_ } > default { say "Just right $_" } >} Ahh... that's exactly what I was looking for. Thanks. Makes you wonder why the 'given' keyword was added, when for/when is so close... -- Ed Avis <[EMAIL PROTECTED]> - End forwarded message -
[perl #53270] [TODO] Rename/refactor _handle_mswin32()
On Thu Apr 24 20:49:05 2008, geoff wrote: > On Thu, 2008-04-24 at 19:55 -0700, James Keenan via RT wrote: > > Please see patch attached. It turned out that config/auto/opengl.pm > > didn't quite conform to the pattern, so I left it unchanged. > > Other than having a Darwin case, how is it different than the pattern? > The Darwin case is the difference. > Also, the implementation of C<_add_to_libs> is a little wordy. How's > this? > > sub _add_to_libs { > my ($self, $args) = @_; > croak "_add_to_libs() takes hashref" unless ref($args) eq 'HASH'; > > my $os = $args->{osname}; > my $cc = $args->{cc}; > my $platform = $os =~ /mswin32/i && $cc =~ /^gcc/i ? 'win32_gcc' : > $os =~ /mswin32/i ? 'win32_other' : > $os =~ /darwin/i? 'darwin' : > ? 'default' ; > > my $libs = $args->{$platform} || $args->{default}; > > $args->{conf}->data->add(' ', libs => $libs); > return 1; > } > Does this not imply that in the 4 classes addressed in the patch, the user of this method would be required to supply a 'darwin' key-value pair even though that the value for that key would be identical with 'non_win32' (or 'default')? $self->_add_to_libs( { conf=> $conf, osname => $osname, cc => $cc, win32_gcc => '-lreadline', win32_other => 'readline.lib', darwin => '-lreadline', default => '-lreadline', } ); Do you think that the added generality of what is essentially an internal helper method would then offset the additional complexity in that method's interface?
Re: given vs for
> Paul Fenwick perltraining.com.au> writes: > >>for ($foo) { >> when ($_ < 500) { ++$_ } >> when ($_ > 1000) { --$_ } >> default { say "Just right $_" } >>} > > Ahh... that's exactly what I was looking for. Thanks. > > Makes you wonder why the 'given' keyword was added, when for/when is so > close... I'd assume 'given' provides scalar context onto its argument, 'for' obviously provides list context. But I guess the main difference is that 'for' is associated with iteration, and IMHO it feels unnatural to iterate over one item. -- Moritz Lenz http://moritz.faui2k3.org/ | http://perl-6.de/ signature.asc Description: OpenPGP digital signature
Re: given vs for
In a message dated Fri, 25 Apr 2008, Moritz Lenz writes: Paul Fenwick perltraining.com.au> writes: for ($foo) { when ($_ < 500) { ++$_ } when ($_ > 1000) { --$_ } default { say "Just right $_" } } Ahh... that's exactly what I was looking for. Thanks. Makes you wonder why the 'given' keyword was added, when for/when is so close... I'd assume 'given' provides scalar context onto its argument, 'for' obviously provides list context. But I guess the main difference is that 'for' is associated with iteration, and IMHO it feels unnatural to iterate over one item. In 5.10, given seems to copy its argument, whereas for aliases it. (I haven't looked at the code; maybe it's COW-ing it.) If you add a C"Value is now $foo";> to the end of the below program, and then change C to C and run the program with values of $foo less than 500 or greater than 1000, you'll see the difference: with C, the value remains changed after the block, with C it is not. I do not believe this distinction is true in Perl 6, is it? Trey
Re: given vs for
AIUI, this is the difference: given (@foo) { # this code runs exactly once, topic is @foo } vs for (@foo) { # this code runs once per item in @foo, topic # is @foo[0], then @foo[1], etc. } So eseentially, given (@foo) means the same as Perl5 for ([EMAIL PROTECTED])
Re: given vs for
Moritz Lenz moritz-at-casella.verplant.org |Perl 6| wrote: Paul Fenwick perltraining.com.au> writes: for ($foo) { when ($_ < 500) { ++$_ } when ($_ > 1000) { --$_ } default { say "Just right $_" } } Ahh... that's exactly what I was looking for. Thanks. Makes you wonder why the 'given' keyword was added, when for/when is so close... I'd assume 'given' provides scalar context onto its argument, 'for' obviously provides list context. But I guess the main difference is that 'for' is associated with iteration, and IMHO it feels unnatural to iterate over one item. "given" and "when" are not dedicated as a matched set as in select/case or such in other languages. They are independent features. 'given' sets a topic if you just need to do that. If you are in a loop or otherwise like to use the $_ variable, you don't need to. If you lean away from using the default variable and like to name things, then 'given' comes in handy for 'when' and for something like Pascal's 'with' statement for accessing a bunch of methods in one object. 'for' takes a list as its argument. The parens don't add anything, they are just for old times' sake. The writeup in S04 is not detailed, but if the control argument is equivalent to *$@, then you specified a list of one item. But the resulting $_ is a single item. --John
Re: given vs for
Trey Harris trey-at-lopsa.org |Perl 6| wrote: In 5.10, given seems to copy its argument, whereas for aliases it. (I haven't looked at the code; maybe it's COW-ing it.) If you add a C to the end of the below program, and then change C to C and run the program with values of $foo less than 500 or greater than 1000, you'll see the difference: with C, the value remains changed after the block, with C it is not. I do not believe this distinction is true in Perl 6, is it? Trey Correct. In S04, " If you rely on C<$_> as the implicit parameter to a block, then C<$_> is considered read/write by default. That is, the construct: for @foo {...} is actually short for: for @foo <-> $_ {...} so you can modify the current list element in that case. " Are you saying that Perl 5.10 has given/when ? Or is that the CPAN module that basically rewrites the entire file? --John
Re: Decrement of Numbers in Strings (Was: [svn:perl6-synopsis] r14460 - doc/trunk/design/syn)
HaloO, John M. Dlugosz wrote: Do we still get to keep the current semantics if we specificially declare a string? e.g. I'd vote for that. I'd vote for it as well with the following rational. Note that a simple scalar parameter involves three types: 1) the constraint of the parameter 2) the constraint of the argument container (for an uncontained value this is the impossible constraint 'where {False}') 3) the type of the argument value (the WHAT) I think we are checking 3 against 1 and dispatching on 3. The natural use of 2 is in writable args but the first question is how would a string increment implementation get it? sub incr (Any $x is rw) { if $x.VAR.WHAT ~~ Str {...} # "-100" -> "-101" else {...} # "-100" -> "-99" } This doesn't work because $x.VAR accesses the inner container and that has constraint Any which effectively is 'where {True}'. So, the natural solution to get at the constraint of the container the caller uses to keep the argument value is capturing it: sub incr (Any ::Type $x is rw) { if Type ~~ Str {...} # "-100" -> "-101" else {...} # "-100" -> "-99" } BTW, calling incr with an rvalue can be handled as well sub incr (Any ::Type $x is rw) { my $ret; if Type ~~ Str {...; $ret = ...} else {...; $ret = ...} ::T $x = $ret if T ~~ Type; # don't violate caller's constraint return $ret; } say incr(5); # print 6, no error my int8 $i = 5; incr($i); say $i; # prints 6 $i = 127; incr($i); say $i; # prints 127, no error I wonder if the constraint check can be written as I did. A version with explicit WHAT is defined to have a bad smell, though. I believe capturing the caller's container type is implicitly done by the compiler to check constraint violation of rw parameters. Here's one riddle for the linguists. We have '::Any ::= where {True}' as the constraint that permits any value. Would then '::All ::= where {False}' work as expected? That is does it intuitively mean that it forbids all values? I know that english natives have issues with stringent boolean negation in the sense of !Any == All. IOW, I negated "permits any" to "forbids all" which is strangely twisted for the german eye. We have "erlaubt alles" and "verbietet alles" respectively. Also there are the other negations "erlaubt nichts" and "verbietet nichts". However I've no clever idea how to denote a contra-variant constraint on the caller's container's constraint in an rw sub. Perhaps sub foo (FooOut <-- FooIn $x is rw) {...} The arrow is of course optional. Its absence means that the caller has to provide an unconstraint container to be type save. The visual problem with this arrow is that is cousin --> is not per parameter but for the whole sub. Alternatively it could be a signature on the trait. sub foo (FooIn $x is rw:(FooOut)) {...} or a type parameter sub foo (FooIn $x is rw[FooOut]) {...} As well as a hand full of adjectives. $x++ :p5 # do it the old way, I just ported my program. $x++ :field # I'm interested in preserving lengths of runs $x++ :num # Preserve meanings of things that look like numeric literals $x++ :order # I'm interested in preserving comparison order Just an idea, especially the first one. This is a very good idea. But I would replace :field with :length. Regards, TSa. -- "The unavoidable price of reliability is simplicity" -- C.A.R. Hoare
Re: given vs for
On Fri, Apr 25, 2008 at 10:39 AM, John M. Dlugosz <[EMAIL PROTECTED]> wrote: > Are you saying that Perl 5.10 has given/when ? Yes. Perl 5.10 has several Perl 6 features back-ported into it, available via the "use feature" pragma: "say" (enables the say() built-in), "state" (enables state vars), "switch" (enables given/when). > Or is that the CPAN module that basically rewrites the entire file? No. -- Mark J. Reed <[EMAIL PROTECTED]>
Re: given vs for
HaloO, John M. Dlugosz wrote: for @foo {...} is actually short for: for @foo <-> $_ {...} Ups, I missed that one. Do we also have the fill-me idiom for @foo <- $_ {...} And again the question if this is the same as for @foo -> $_ is ref {...} Regards, TSa. -- "The unavoidable price of reliability is simplicity" -- C.A.R. Hoare
Re: [perl #53270] [TODO] Rename/refactor _handle_mswin32()
On Fri, 2008-04-25 at 03:45 -0700, James Keenan via RT wrote: > > Other than having a Darwin case, how is it different than the pattern? > The Darwin case is the difference. Ah. > > my $platform = $os =~ /mswin32/i && $cc =~ /^gcc/i ? 'win32_gcc' : > > $os =~ /mswin32/i ? 'win32_other' : > > $os =~ /darwin/i? 'darwin' : > > ? 'default' ; > > > > my $libs = $args->{$platform} || $args->{default}; > > Does this not imply that in the 4 classes addressed in the patch, the > user of this method would be required to supply a 'darwin' key-value > pair even though that the value for that key would be identical with > 'non_win32' (or 'default')? No. That's why the default key is called 'default', and why $libs is set that way. (Subtle note -- the || really wants to be //, but as I recall we're not allowed to assume that // is there yet.) > $self->_add_to_libs( { > conf=> $conf, > osname => $osname, > cc => $cc, > win32_gcc => '-lreadline', > win32_other => 'readline.lib', > darwin => '-lreadline', > default => '-lreadline', > } ); As I mentioned to Infinoid on IRC, I designed a real default case so that any key can be missing, and it will just fall back to the default. So in your example above, both the 'darwin' and 'win32_gcc' cases could just be dropped. > Do you think that the added generality of what is essentially an > internal helper method would then offset the additional complexity in > that method's interface? Not more complex. Simpler. :-) -'f
Re: given vs for
Mark J. Reed wrote: So eseentially, given (@foo) means the same as Perl5 for ([EMAIL PROTECTED]) Just wondering: should "given @foo {...}" alias to $_, or @_?
Squaak README
Someone looking for basic information about Squaak may have difficulty finding it. Below is some text I adapted from the parrotblog tutorial that might be suitable as a starting point for a README in languages/squaak. Feel free to add or modify it as appropriate. Pm [Adapted from the parrotblog.org page -- feel free to update --Pm] Squaak: A Simple Language Squaak is a case-study language described in the Parrot Compiler Tools tutorial at http://www.parrotblog.org/2008/03/targeting-parrot-vm.html . Squaak demonstrates some common language constructs, but at the same time is lacking some other, seemingly simple features. For instance, Squaak does not have return, break or continue statements (or equivalents in your favorite syntax). Squaak has the following features: * global and local variables * basic types: integer, floating-point and strings * aggregate types: arrays and hash tables * operators: +, -, /, *, %, <, <=, >, >=, ==, !=, .., and, or, not * subroutines and parameters * assignments and various control statements, such as "if" and "while" A number of common (more advanced) features are missing. Most notable are: * classes and objects * exceptional control statements such as break and return * advanced control statements such as switch * closures (nested subroutines and accessing local variables in an outer scope)
[perl #53344] [PATCH] Misplaced brace in src/gc/dod.c
# New Ticket Created by Andy Dougherty # Please include the string: [perl #53344] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=53344 > I tripped over this while working on a stacks patch. It prevents compilation without debugging. --- parrot-svn/src/gc/dod.c Fri Apr 25 07:55:47 2008 +++ parrot-andy/src/gc/dod.cFri Apr 25 09:29:55 2008 @@ -218,8 +218,8 @@ else if (p->pmc_ext && PMC_metadata(p)) fprintf(stderr, "GC: error obj %p (%s) has properties\n", (void *)p, (char*)p->vtable->whoami->strstart); -} # endif +} # if GC_VERBOSE /* buffer GC_DEBUG stuff */ if (GC_DEBUG(interp) && PObj_report_TEST(obj)) -- Andy Dougherty [EMAIL PROTECTED]
Re: [perl #53270] [TODO] Rename/refactor _handle_mswin32()
On Fri, Apr 25, 2008 at 8:38 AM, Geoffrey Broadwell <[EMAIL PROTECTED]> wrote: > (Subtle note -- the || really wants to be //, but as I recall we're not > allowed to assume that // is there yet.) > correct, parrot depends on perl 5.8, so we can't rely on //. so i strongly suggest you use the idiomatic (however verbose) perl5 equivalent: defined $foo ? $foo : $default correctness++ ~jerry
Re: [perl #53344] [PATCH] Misplaced brace in src/gc/dod.c
On Fri, Apr 25, 2008 at 9:12 AM, via RT Andy Dougherty <[EMAIL PROTECTED]> wrote: > # New Ticket Created by Andy Dougherty > # Please include the string: [perl #53344] > # in the subject line of all future correspondence about this issue. > # http://rt.perl.org/rt3/Ticket/Display.html?id=53344 > > > > I tripped over this while working on a stacks patch. It prevents > compilation without debugging. > > --- parrot-svn/src/gc/dod.c Fri Apr 25 07:55:47 2008 > +++ parrot-andy/src/gc/dod.cFri Apr 25 09:29:55 2008 > @@ -218,8 +218,8 @@ > else if (p->pmc_ext && PMC_metadata(p)) > fprintf(stderr, "GC: error obj %p (%s) has properties\n", > (void *)p, (char*)p->vtable->whoami->strstart); > -} > # endif > +} > # if GC_VERBOSE > /* buffer GC_DEBUG stuff */ > if (GC_DEBUG(interp) && PObj_report_TEST(obj)) > thanks, i've already fixed it in trunk, since i ran into it as well. ~jerry
Re: [perl #53270] [TODO] Rename/refactor _handle_mswin32()
On Fri, 2008-04-25 at 09:39 -0700, jerry gay wrote: > On Fri, Apr 25, 2008 at 8:38 AM, Geoffrey Broadwell <[EMAIL PROTECTED]> wrote: > > (Subtle note -- the || really wants to be //, but as I recall we're not > > allowed to assume that // is there yet.) > > > correct, parrot depends on perl 5.8, so we can't rely on //. > > so i strongly suggest you use the idiomatic (however verbose) perl5 > equivalent: > defined $foo ? $foo : $default > correctness++ Fair enough. Please remember that the version of the sub I put up was freehanded -- I was trying to make a point about making its API and internals cleaner, not replace James Keenan's patch. Unfortunately, I think my overall point was lost in the details. :-( -'f
Re: given vs for
Dave Whipp writes: > Mark J. Reed wrote: > > > So eseentially, > > given (@foo) > > means the same as Perl5 > > for ([EMAIL PROTECTED]) > > Just wondering: should "given @foo {...}" alias to $_, or @_? I'd expect it to alias to C<$_>, on the grounds that everything always aliases to C<$_>. What's the argument for it being C<@_>? Smylers
[perl #53350] Build warnings in src/jit_emit.h
# New Ticket Created by Will Coleda # Please include the string: [perl #53350] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=53350 > a default build on feather is generating the following warnings: src/jit_emit.h:1725: warning: cast discards qualifiers from pointer target type src/jit_emit.h:1764: warning: cast discards qualifiers from pointer target type src/jit_emit.h:1958: warning: cast discards qualifiers from pointer target type -- Will "Coke" Coleda
[perl #53352] Build warnings in STRUCT_COPY
# New Ticket Created by Will Coleda # Please include the string: [perl #53352] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=53352 > The following lines that use the STRUCT_COPY macro are generating build warnings. src/charset/ascii.c:792: warning: the address of 'base_set' will always evaluate as 'true' src/charset/binary.c:470: warning: the address of 'base_set' will always evaluate as 'true' src/charset/iso-8859-1.c:631: warning: the address of 'base_set' will always evaluate as 'true' src/charset/unicode.c:928: warning: the address of 'base_set' will always evaluate as 'true' src/encodings/fixed_8.c:558: warning: the address of 'base_encoding' will always evaluate as 'true' src/encodings/ucs2.c:578: warning: the address of 'base_encoding' will always evaluate as 'true' src/encodings/utf16.c:711: warning: the address of 'base_encoding' will always evaluate as 'true' src/encodings/utf8.c:898: warning: the address of 'base_encoding' will always evaluate as 'true' For example, the last line here is: STRUCT_COPY(return_encoding, &base_encoding); but base_encoding is declared just before that: static const ENCODING base_encoding = {...} The PARROT_ASSERT in the macro against base_encoding is then apparently superfluous. -- Will "Coke" Coleda
[PATCH] Re: [perl #53264] [PATCH] Re: [svn:parrot] r27144 - in trunk: include/parrot src src/pmc
On Thu, 24 Apr 2008, Andy Dougherty wrote: > On Wed, 23 Apr 2008, Andy Dougherty wrote: > > > 2. There are some casting and type-punning warnings that have, as their > > ultimate cause, the STACK_DATAP() macro. Getting rid of the > > type-punning warning gives rise to a cast alignment warning. > > > > Looking up a level, the only uses for that macro are to return > > Stack_Entry_t pointers. Why not be explicit about it in the definition > > in include/parrot/stacks.h? The attached patch tries to do just that. > > I haven't tested this, but it looks like it ought to work. > > Oops. It won't work because I missed a level of indirection. Ok. Fixed. This version avoids both type-punning and cast alignment warnings by declaring the 'data' element of a Stack_Chunk_t to be of type Stack_Entry_t, since that's the only way it is ever used, at least as far as I could tell. > Oops. I can only say I was fooled by the function signatures that these > functions returned 'void *', when they actually return 'void **'. Now they return Stack_Entry_t *, since their return values always were cast to that type anyway. I have tested this on Solaris/SPARC with Sun's cc. It introduces no new warnings or failures that I can detect. (The build actually doesn't complete either with or without this patch, but it does get far enough that I can run most of the core tests.) diff -r -u parrot-x64-before/include/parrot/stacks.h parrot-x64/include/parrot/stacks.h --- parrot-x64-before/include/parrot/stacks.h 2008-04-23 13:58:26.0 -0400 +++ parrot-x64/include/parrot/stacks.h 2008-04-25 10:12:42.0 -0400 @@ -33,7 +33,7 @@ Parrot_UInt refcount; union { /* force appropriate alignment of 'data'. If alignment is necessary, assume double is good enough. 27-04-2007. */ -void *data; +Stack_Entry_t data; #if PARROT_PTR_ALIGNMENT > 1 double d_dummy; #endif @@ -158,7 +158,7 @@ PARROT_API PARROT_WARN_UNUSED_RESULT PARROT_CANNOT_RETURN_NULL -void* stack_prepare_pop(PARROT_INTERP, ARGMOD(Stack_Chunk_t **stack_p)) +Stack_Entry_t* stack_prepare_pop(PARROT_INTERP, ARGMOD(Stack_Chunk_t **stack_p)) __attribute__nonnull__(1) __attribute__nonnull__(2) FUNC_MODIFIES(*stack_p); @@ -166,7 +166,7 @@ PARROT_API PARROT_WARN_UNUSED_RESULT PARROT_CANNOT_RETURN_NULL -void* stack_prepare_push(PARROT_INTERP, ARGMOD(Stack_Chunk_t **stack_p)) +Stack_Entry_t* stack_prepare_push(PARROT_INTERP, ARGMOD(Stack_Chunk_t **stack_p)) __attribute__nonnull__(1) __attribute__nonnull__(2) FUNC_MODIFIES(*stack_p); diff -r -u parrot-x64-before/src/stack_common.c parrot-x64/src/stack_common.c --- parrot-x64-before/src/stack_common.c2008-04-25 07:55:48.0 -0400 +++ parrot-x64/src/stack_common.c 2008-04-25 10:12:20.0 -0400 @@ -110,7 +110,7 @@ /* -=item C +=item C Return a pointer, where new entries go for push. @@ -121,7 +121,7 @@ PARROT_API PARROT_WARN_UNUSED_RESULT PARROT_CANNOT_RETURN_NULL -void* +Stack_Entry_t* stack_prepare_push(PARROT_INTERP, ARGMOD(Stack_Chunk_t **stack_p)) { Stack_Chunk_t * const chunk = *stack_p; @@ -138,7 +138,7 @@ /* -=item C +=item C Return a pointer, where new entries are popped off. @@ -149,7 +149,7 @@ PARROT_API PARROT_WARN_UNUSED_RESULT PARROT_CANNOT_RETURN_NULL -void* +Stack_Entry_t* stack_prepare_pop(PARROT_INTERP, ARGMOD(Stack_Chunk_t **stack_p)) { Stack_Chunk_t * const chunk = *stack_p; diff -r -u parrot-x64-before/src/stacks.c parrot-x64/src/stacks.c --- parrot-x64-before/src/stacks.c 2008-04-25 07:55:49.0 -0400 +++ parrot-x64/src/stacks.c 2008-04-25 10:14:06.0 -0400 @@ -60,7 +60,6 @@ mark_stack(PARROT_INTERP, ARGMOD(Stack_Chunk_t *chunk)) { for (; ; chunk = chunk->prev) { -void **entry_data; Stack_Entry_t *entry; pobject_lives(interp, (PObj *)chunk); @@ -68,8 +67,7 @@ if (chunk == chunk->prev) break; -entry_data = STACK_DATAP(chunk); -entry = (Stack_Entry_t *)entry_data; +entry = STACK_DATAP(chunk); if (entry->entry_type == STACK_ENTRY_PMC && UVal_pmc(entry->entry)) pobject_lives(interp, (PObj *)UVal_pmc(entry->entry)); @@ -140,7 +138,6 @@ stack_entry(PARROT_INTERP, ARGIN(Stack_Chunk_t *stack), INTVAL depth) { Stack_Chunk_t *chunk; -void **entry; size_t offset = (size_t)depth; if (depth < 0) @@ -159,9 +156,7 @@ if (chunk == chunk->prev) return NULL; -/* this looks bad, but it avoids a type-punning warning */ -entry = STACK_DATAP(chunk); -return (Stack_Entry_t *)entry; +return STACK_DATAP(chunk); } /* -- Andy Dougherty [EMAIL PROTECTED]
[perl #53356] Misc. build warnings
# New Ticket Created by Will Coleda # Please include the string: [perl #53356] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=53356 > Miscellaneous build warnings that need to be cleaned up. src/key.c:306: warning: switch missing default case compilers/imcc/imclexer.c:4288: warning: switch missing default case compilers/imcc/imclexer.c:4447: warning: comparison between signed and unsigned compilers/imcc/imclexer.c:4615: warning: switch missing default case -- Will "Coke" Coleda
Re: Decrement of Numbers in Strings (Was: [svn:perl6-synopsis] r14460 - doc/trunk/design/syn)
TSa Thomas.Sandlass-at-barco.com |Perl 6| wrote: sub incr (Any $x is rw) { if $x.VAR.WHAT ~~ Str {...} # "-100" -> "-101" else {...} # "-100" -> "-99" } This doesn't work because $x.VAR accesses the inner container and that has constraint Any which effectively is 'where {True}'. So, the natural solution to get at the constraint of the container the caller uses to keep the argument value is capturing it: Huh? if you call $q = "aaa"; incr($q); then the value passed in is a Str. The static type is Any, the dynamic type is Str. $x.VAR.WHAT will be the prototype object for Scalar, which has nothing to do with the value inside it. $x.WHAT is the Str prototype, the same thing Str as an argument listop returns. So if $x.WHAT ~~ Str will be True. sub incr (Any ::Type $x is rw) { if Type ~~ Str {...} # "-100" -> "-101" else {...} # "-100" -> "-99" } Same thing, only trusting smartmatch to compare a protoobject with a metaobject. BTW, calling incr with an rvalue can be handled as well sub incr (Any ::Type $x is rw) { my $ret; if Type ~~ Str {...; $ret = ...} else {...; $ret = ...} ::T $x = $ret if T ~~ Type; # don't violate caller's constraint return $ret; } T is undefined. say incr(5); # print 6, no error Compile-time error; can't bind 5 to an rw. my int8 $i = 5; incr($i); say $i; # prints 6 $i = 127; incr($i); say $i; # prints 127, no error I wonder if the constraint check can be written as I did. A version with explicit WHAT is defined to have a bad smell, though. I believe capturing the caller's container type is implicitly done by the compiler to check constraint violation of rw parameters. Why not just let MMD do it? Switching on the type is bad smell. Polymorphism should do that. multi sub incr (Str $x is rw --> Str) { ... }# do the string version. multi sub incr (Numeric ::T $x is rw --> T) { $x += 1; return $x; } I'm postulating the existence of a Numeric role that will constrain T to Int, Num, Rat, etc. and ignoring any progressive details concerning F-bounds. multi sub incr (Enum ::T $x is rw --> T) { ... } Again, should match anything that is created as an enumeration, ignoring progressive details about bases that are not supertypes because of variance violations in the derived class. But assume there will be a way to say "any kind of Enum" with higher-order matching. But I'm getting ahead of myself. The body can be written without explicit testing against types, just using the generics to get to the real enumeration type with its interrogation methods. Here's one riddle for the linguists. We have '::Any ::= where {True}' as the constraint that permits any value. Would then '::All ::= where {False}' work as expected? That is does it intuitively mean that it forbids all values? I've not plumbed the depths, but I naivly expect that the constraint is evaluated when assignment is made. If it returns False, the assignment fails. You always return False, so no value will ever be assigned without error, or no value will ever match if used in MMD. However I've no clever idea how to denote a contra-variant constraint on the caller's container's constraint in an rw sub. Perhaps sub foo (FooOut <-- FooIn $x is rw) {...} The arrow is of course optional. Its absence means that the caller has to provide an unconstraint container to be type save. The visual problem with this arrow is that is cousin --> is not per parameter but for the whole sub. Alternatively it could be a signature on the trait. I think I see what you're getting at. But I don't see what it has to do with the container. The value bound to $x needs to be at least as general as FooIn. Hmm, or are you thinking of subset constrained containers trying to bind to $x? Currently, there is no mechanism to propagate the constraint in. If the binding chooses to work by "copy/return" mechanism, then it will be checked when the value is copied back to the original container, using that container's SET, assuming copy/return is designed and intended to reference the original container not just the differently-typed value. I can see the need for that, such as with tied variables in general. Or maybe the container for $x aliases the original container -- that might be what "is ref" is supposed to mean.
Re: given vs for
Smylers wrote: Dave Whipp writes: So eseentially, given (@foo) means the same as Perl5 for ([EMAIL PROTECTED]) Just wondering: should "given @foo {...}" alias to $_, or @_? I'd expect it to alias to C<$_>, on the grounds that everything always aliases to C<$_>. What's the argument for it being C<@_>? Yes, my expectation would be C<$_>, too. But then I started thinking that it might be nice to preserve the sigil; and that binding to C<@_> is what subs do, so it's not entirely unprecedented. But yes, the use-case of given/when is based on the idea of creating a scalar alias to the collection.
Re: given vs for
The topic should always be $_ unless explicitly requested differently via the arrow. Now in the case of for, it might be nice if @_ bound to the entire collection being iterated over (if any)...
Re: given vs for
TSa Thomas.Sandlass-at-barco.com |Perl 6| wrote: HaloO, John M. Dlugosz wrote: for @foo {...} is actually short for: for @foo <-> $_ {...} Ups, I missed that one. Do we also have the fill-me idiom for @foo <- $_ {...} No. There is no concept of output parameters. And again the question if this is the same as for @foo -> $_ is ref {...} is rw, not is ref. But yes, the double-ended arrow is the same as making rw the default on all the parameters. Regards, TSa.
Re: given vs for
Dave Whipp dave-at-whipp.name |Perl 6| wrote: Mark J. Reed wrote: So eseentially, given (@foo) means the same as Perl5 for ([EMAIL PROTECTED]) Just wondering: should "given @foo {...}" alias to $_, or @_? $_. It will contain the whole list as one item, like what Perl 5 does with [EMAIL PROTECTED] given @foo { when .length > 5 { say "That's a long list" } when .length == Inf { say "That's a very long list" } when .WHAT ~~ Range { say "That's an iterator" } }
Re: given vs for
On Fri, Apr 25, 2008 at 01:19:27PM -0500, John M. Dlugosz wrote: >given @foo { > when .length > 5 { say "That's a long list" } > when .length == Inf { say "That's a very long list" } > when .WHAT ~~ Range { say "That's an iterator" } > } Erm, .length is dead, and .WHAT just smells that way. given @foo { when .elems > 5 { say "That's a long list" } when .elems == Inf { say "That's a very long list" } when Range { say "That's an iterator" } } Larry
Re: given vs for
Mark J. Reed wrote: The topic should always be $_ unless explicitly requested differently via the arrow. Now in the case of for, it might be nice if @_ bound to the entire collection being iterated over (if any)... As a perl5-ism: sub foo { say @_; } ... given (@bar) { when ... { &foo } } Does perl6 still have some implicit mechanism to say "call sub using current arglist"? (No, I'm not arguing to support any of this: just asking the questions)
Re: Squaak README
Good idea! I'll add the file (if nobody beats me to it). BTW, I think it'd be good to keep Squaak up to date, meaning that once return statements are supported in PAST, that these are added as well. This way it can be used as a complete showcase, demonstrating all of PAST. As soon as PAST is feature-complete and I have enough time to play, I'll improve Squaak kjs On Fri, Apr 25, 2008 at 4:49 PM, Patrick R. Michaud <[EMAIL PROTECTED]> wrote: > > Someone looking for basic information about Squaak may have > difficulty finding it. > > Below is some text I adapted from the parrotblog tutorial that > might be suitable as a starting point for a README in > languages/squaak. Feel free to add or modify it as appropriate. > > Pm > > [Adapted from the parrotblog.org page -- feel free to update --Pm] > > Squaak: A Simple Language > > Squaak is a case-study language described in the Parrot Compiler Tools > tutorial at http://www.parrotblog.org/2008/03/targeting-parrot-vm.html . > > Squaak demonstrates some common language constructs, but at the same > time is lacking some other, seemingly simple features. For instance, > Squaak does not have return, break or continue statements (or equivalents > in your favorite syntax). > > Squaak has the following features: > > * global and local variables > * basic types: integer, floating-point and strings > * aggregate types: arrays and hash tables > * operators: +, -, /, *, %, <, <=, >, >=, ==, !=, .., and, or, not > * subroutines and parameters > * assignments and various control statements, such as "if" and "while" > > A number of common (more advanced) features are missing. > Most notable are: > > * classes and objects > * exceptional control statements such as break and return > * advanced control statements such as switch > * closures (nested subroutines and accessing local variables in an outer > scope) > > >
Re: given vs for
On Fri, Apr 25, 2008 at 01:05:37PM -0700, Dave Whipp wrote: > As a perl5-ism: > > sub foo { say @_; } > > ... > > given (@bar) { > when ... { &foo } > } > > > Does perl6 still have some implicit mechanism to say "call sub using > current arglist"? Yes, you can do it implicitly with one of callsame, callwith, nextsame and nextwith (S06 and S12), depending on whether you want to specify what to call next or just rely on the dispatcher to pick the next one, and on whether you want to pass the original arguments or some modified arguments. You can also do it explicitly with a Capture declaration in the signature and the prefix:<|> capture interpolator in an argument list.. However, &foo doesn't mean what it means in Perl 5. It's just the function as a noun rather than a verb. Larry
Infinite (WAS Re: Decrement of Numbers in Strings)
Larry Wall larry-at-wall.org |Perl 6| wrote: Inf is just a special value that you can use in a signature, so multiple dispatch already can handle that. My muse took a liking to that. The Inf values are not treated much in the synopses. It never says that Inf is something that MMD can sense. But based on this comment, the rest crystallized. I wrote a complete treatment of Inf support. Please take a look at "24.26 Infinite" on pages 116-119, and "3.11.3 Infinities" on pages 26-27. --John
Re: given vs for
To loop back to my earlier question: In Perl 5.10: use strict; use warnings; use feature qw(switch say); my $foo = 10; for ($foo) { when ($foo < 50) { $_++ } } say "for: $foo"; $foo = 10; given ($foo) { when ($foo < 50) { $_++ } } say "given: $foo"; Prints: for: 11 given: 10 In Perl 6, that same code (minus the three C lines) should print: for: 11 given: 11 Correct? Trey
Re: given vs for
Dave Whipp dave-at-whipp.name |Perl 6| wrote: Does perl6 still have some implicit mechanism to say "call sub using current arglist"? (No, I'm not arguing to support any of this: just asking the questions) Yes. You can use 'callsame' and it knows the current argument list. You can get at it explicitly if you declare it like this: sub foo (|$arglist) { ... Now $arglist is an object of type Capture, which would be getting into a lot more than a simple reply. It's not just a simple @_ array, but handles named, optional, slice, etc. " =head2 Argument list binding The underlying C object may be bound to a single scalar parameter marked with a C<|>. sub bar ($a,$b,$c,:$mice) { say $mice } sub foo (|$args) { say $args.perl; &bar.callwith(|$args); } This prints: foo 1,2,3,:mice; # says "\(1,2,3,:mice)" then "blind" " See http://svn.perl.org/perl6/doc/trunk/design/syn/S06.pod for more information.
Basic help navigating individual characters of a string
Please forgive my ignorance up front. I'm very much a beginner. Ok, I'm trying to be able to look at the individual characters of a string with the ultimate hope of being able to parse messages based on a series of messages of variable length. I thought I had found the answer with the following text: use String; $str = new String("$line[0]"); print "The string is '$str\n"; printf("Length of the string is %d characters\n", $str->length); printf("The first character of the string is %s\n", $str->charAt(0)) But, when I run the program I get the following error: Can't locate String.pm in @INC (@INC contains: /System/Library/Perl/ 5.8.8/darwin-thread-multi-2level /System/Library/Perl/5.8.8 /Library/ Perl/5.8.8/darwin-thread-multi-2level /Library/Perl/5.8.8 /Library/ Perl /Network/Library/Perl/5.8.8/darwin-thread-multi-2level /Network/ Library/Perl/5.8.8 /Network/Library/Perl /System/Library/Perl/Extras/ 5.8.8/darwin-thread-multi-2level /System/Library/Perl/Extras/5.8.8 / Library/Perl/5.8.6 /Library/Perl/5.8.1 .) at ItchExercise.pl line 8. BEGIN failed--compilation aborted at ItchExercise.pl line 8. Is there a substitute I can use? Or can I download something somewhere? Help! And thanks in advance!
Re: In lieu of "This Week in Perl 6"
On Fri, Apr 25, 2008 at 2:21 AM, Conrad Schneiker <[EMAIL PROTECTED]> wrote: > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, April 23, 2008 1:59 PM > > > > On Sun, Apr 13, 2008 at 1:22 PM, Patrick R. Michaud > > <[EMAIL PROTECTED]> wrote: > > > > > - The sidebar links should be updated. It might be good to update > > > the "Talks", "Who's Who", and "Status" links to point to the > > > appropriate pages on the Perl 6 wiki. > > > > Can you give me the appropriate links for these? A quick glance at the > > wiki main page only found me some tangential links. > > Hmmm. It may be time for (yet another) front page reorganization then, > since all those things are there. I was hoping that such things would be > fairly obvious, despite the many other additions. > > "Talks": > > > http://www.perlfoundation.org/perl6/index.cgi?perl_6_articles_and_presentati > ons Changed sidebar but left page and put link to wiki there also. > "Who's Who": > > http://www.perlfoundation.org/perl6/index.cgi?perl_6_people Changed sidebar but left page and put link to wiki there also. > "Status": > > http://www.perlfoundation.org/perl6/index.cgi?when_will_perl_6_be_released > > http://www.perlfoundation.org/perl6/index.cgi?development_dashboard Left sidebar but put link to both wiki pages on page. > I also suggest adding "Latest News": > > http://www.perlfoundation.org/perl6/index.cgi?perl_6_rss_news_feeds > Added to sidebar. > > Best regards, > Conrad Schneiker > > www.AthenaLab.com > > Official Perl 6 Wiki - http://www.perlfoundation.org/perl6 > Official Parrot Wiki - http://www.perlfoundation.org/parrot -- Will "Coke" Coleda
Re: Decrement of Numbers in Strings (Was: [svn:perl6-synopsis] r14460 - doc/trunk/design/syn)
Just out of idle curiousity, (and so I can explain it when training), I would like to know the original motivation for string/number arithmetic. My guess is automatic generation of predictable filenames. Am I anywhere close? -- Email and shopping with the feelgood factor! 55% of income to good causes. http://www.ippimail.com
[perl #53362] [NEW] Add a test for the sysinfo op.
# New Ticket Created by "Brad Gilbert" # Please include the string: [perl #53362] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=53362 > I added a test for the sysinfo op. The main reason I decided to work on it is so that we can figure out what system were running on, especially if it's not the one we were compiled on. parrot/CREDITS: Added my information parrot/MANIFEST: Added t/op/sysinfo.t parrot/t/op/sysinfo.t: Added Index: CREDITS === --- CREDITS (revision 27163) +++ CREDITS (working copy) @@ -116,6 +116,10 @@ D: Numerous document typos. E: [EMAIL PROTECTED] +N: Brad Gilbert +D: Add test for sysinfo op. +E: [EMAIL PROTECTED] + N: Bram Geron D: IMCC documentation update E: [EMAIL PROTECTED] Index: MANIFEST === --- MANIFEST (revision 27163) +++ MANIFEST (working copy) @@ -3233,6 +3233,7 @@ t/op/string_cclass.t[] t/op/string_cs.t[] t/op/stringu.t [] +t/op/sysinfo.t [] t/op/time.t [] t/op/trans.t[] t/op/types.t[] Index: t/op/sysinfo.t === --- t/op/sysinfo.t (revision 0) +++ t/op/sysinfo.t (revision 0) @@ -0,0 +1,141 @@ +#!perl +# Copyright (C) 2001-2008, The Perl Foundation. +# $Id$ + +# initial work by Brad Gilbert b2gills gmail com + +use strict; +use warnings; +use lib qw( . lib ../lib ../../lib ); +use Test::More; +use Parrot::Test tests => 8; +use Parrot::Config; + +use Data::Dump 'dump'; + +use Config; + +=head1 NAME + +t/op/sys_ops.t - System Ops + +=head1 SYNOPSIS + +% prove t/op/sys_ops.t + +=head1 DESCRIPTION + +Tests basic string and branching operations. + +=item 1 The size of a platform integer +=item 2 The size of a platform float +=item 3 The size of a platform pointer. (Largest possible data pointer) +=item 4 The OS name +=item 5 The OS version string +=item 6 The OS version number string +=item 7 The CPU architecture +=item 8 The CPU model + +=cut + + + +pasm_output_is( <<'CODE', $PConfig{intsize}, "sysinfo integer size" ); + sysinfo_i_ic I1, 1 + print I1 + end +CODE + +# XXX is 'doublesize' the right thing to use? +pasm_output_is( <<'CODE', $PConfig{doublesize}, "sysinfo float size" ); + sysinfo_i_ic I1, 2 + print I1 + end +CODE + +pasm_output_is( <<'CODE', $PConfig{ptrsize}, "sysinfo pointer size" ); + sysinfo_i_ic I1, 3 + print I1 + end +CODE + +pasm_output_is( <<'CODE', $PConfig{osname}, "sysinfo osname" ); + sysinfo_s_ic S1, 4 +print S1 +end +CODE + +# 5 +if( $PConfig{osname} eq 'MSWin32' ){ + eval{ require Win32; }; + SKIP: { + skip "requires package Win32 for these tests", 2; + + # specifically don't use $Config{osvers} + # because it probably was the system perl was compiled on + # and we can do much better than that + + my $osname = Win32::GetOSName(); + $osname = 'WinXP' if $osname ~~ /^WinXP/; + TODO: { + local $TODO = "Not Currently Implemented"; +pasm_output_is( <<'CODE', $osname, "sysinfo OS version string" ); + sysinfo_s_ic S1, 5 + print S1 + end +CODE + + my($osvername,$major,$minor,$id) = Win32::GetOSVersion(); + +pasm_output_is( <<'CODE', "$major.$minor", "sysinfo OS version number string" ); + sysinfo_s_ic S1, 6 + print S1 + end +CODE + } + } + +}else{ + +# XXX I know this is wrong on Win32 but is it correct on any others? +# XXX also should it be %Config or %PConfig +TODO: { + local $TODO = "Not Currently Implemented"; + +pasm_output_is( <<'CODE', $Config{osvers}, "sysinfo OS version string" ); + sysinfo_s_ic S1, 5 + print S1 + end +CODE + +pasm_output_is( <<'CODE', $Config{osvers}, "sysinfo OS version number string" ); + sysinfo_s_ic S1, 6 + print S1 + end +CODE + } + +} + +# Common + +TODO: { + local $TODO = "Not Currently Implemented"; + +pasm_output_is( <<'CODE', $PConfig{cpuarch}, "sysinfo CPU Arch Family" ); + sysinfo_s_ic S1, 7 + print S1 + end +CODE +} + +SKIP: { + skip "Requires a lot of work to find out the correct answer", 1; + +pasm_output_is( <<'CODE', $PConfig{archname}, "sysinfo CPU Model" ); + sysinfo_s_ic S1, 8 + print S1 + end +CODE +} +
Re: Basic help navigating individual characters of a string
1) Wrong list. This list is for the folks who are currently implementing the new language Perl 6. You want [EMAIL PROTECTED] Send a message to [EMAIL PROTECTED] to subscribe, and please send any followups there rather than here. 2) Strings in Perl are not objects, and there is no "String" class - Perl 5 is simply not that object-oriented. You don't say $str = new String("blah") (which would be redundant even in Java and Javascript, since the literal already constructs an object); you just say $str = "blah". Anyway, it looks like you already have a string variable in your example, namely $line[0]. 3) Since strings aren't objects, you don't call methods on them; you use functions instead. So it's not $str->length, but length($str). 4) There's no distinction between characters and strings in Perl; strings are not considered to be a collection of characters, but rather a fundamental type. So you can't index into the string. Instead, use the substr() function to pull out a substring of length 1: printf "The first character of the string is '%s'\n", substr($str,0,1); Also, since print() takes multiple arguments and concatenates them, and you can interpolate variables in strings, you don't need printf most of the time: print "The first character of the string is '", substr($str,0,1), "'\n"; ...although it is arguably clearer in this case. -- Mark J. Reed <[EMAIL PROTECTED]>
Re: given vs for
Larry Wall larry-at-wall.org |Perl 6| wrote: However, &foo doesn't mean what it means in Perl 5. It's just the function as a noun rather than a verb. Larry A gerund.
[perl #42350] [TODO] fix kludge in find_type op
On Sun Apr 08 11:52:15 2007, ptc wrote: > There is a warning in src/ops/pmc.ops within the find_type() op: > > KLUDGE ALERT - XXX FIXME - THIS LOGIC SHOULD BE IN pmc_type_p() > > This needs to be fixed. The opcode this warning is listed in is scheduled for deletion; there's no need to resolve this comment.