Parrot Bug Summary

2006-11-06 Thread Parrot Bug Summary
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to
complete your request.

Please contact the server administrator, [EMAIL PROTECTED] and inform them of
the time the error occurred, and anything you might have done that may have
caused the error.

More information about this error may be available in the server error log.


[perl #40686] [TODO] release prep: update CREDITS and NEWS

2006-11-06 Thread via RT
# New Ticket Created by  Jerry Gay 
# Please include the string:  [perl #40686]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=40686 


in preparation for the upcoming (date pending) parrot release, we need
to update CREDITS and NEWS files. if anyone has the ability and time
to search through the svn log (http://nopaste.snit.ch:8001/8609) since
the last release, and create a blurb that's NEWS-worthy, or add
appropriate info to the CREDITS file, that would be most appreciated.

patches applied directly to parrot, or attached to this ticket are very welcome.
if you want to work on this, make yourself known by responding.
~jerry


[perl #40687] [TODO] Tcl - return the stacktrace for the current exception in src/macros.pir

2006-11-06 Thread via RT
# New Ticket Created by  Paul Cochrane 
# Please include the string:  [perl #40687]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=40687 


From the comment in languages/tcl/src/macros.pir:

return the stacktrace for the current exception

This is in the context of the get_stacktrace() macro.

This ticket is in response to cage task #39704.


[perl #40688] [TODO] Tcl - split or rename src/grammar/expr/expression.pg

2006-11-06 Thread via RT
# New Ticket Created by  Paul Cochrane 
# Please include the string:  [perl #40688]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=40688 


From the file languages/tcl/src/grammar/expr/expression.pg:

# XXX This began as an [expr] only grammar, and has since grown to
# encompass the language itself. Either rename the whole thing, or,
# preferentially, split out the non-expr specific bits into another
# grammar that this one can then refer to.

This ticket is in response to cage task #39704.


[perl #40689] [TODO] Tcl - test parsing hack in src/grammar/expr/functions.pir

2006-11-06 Thread via RT
# New Ticket Created by  Paul Cochrane 
# Please include the string:  [perl #40689]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=40689 


Test the parsing hack in languages/tcl/src/grammar/expr/functions.pir

This ticket is in response to cage task #39704.


[perl #40690] [TODO] Tcl - correct workaround due to parrotbug #38896 in src/grammar/expr/past2pir.tg

2006-11-06 Thread via RT
# New Ticket Created by  Paul Cochrane 
# Please include the string:  [perl #40690]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=40690 


Correct floating point workaround due to parrotbug #38896 in
languages/tcl/src/grammar/expr/past2pir.tg

This ticket is in response to cage task #39704.


[perl #40691] [TODO] Tcl - is goto statement needed in src/grammar/expr/pge2past.tg

2006-11-06 Thread via RT
# New Ticket Created by  Paul Cochrane 
# Please include the string:  [perl #40691]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=40691 


Determine if goto statement is needed in
languages/tcl/src/grammar/expr/pge2past.tg

This ticket is in response to cage task #39704.


Re: set_pmc_keyed_int delegates to set_pmc_keyed...?

2006-11-06 Thread Patrick R. Michaud
On Sun, Nov 05, 2006 at 05:41:12PM +0100, Leopold Toetsch wrote:
 Am Sonntag, 5. November 2006 15:22 schrieb Patrick R. Michaud:
  So, I can create the missing cases, but what do I put for the body
  of the method to get to the corresponding method of Capture?
 
      .namespace [ 'Match' ]
      .sub set_integer_keyed_int :vtable
          .param int key
          .param int value
 
          # ... how to do set_integer_keyed_int method of Capture?
 
      .end
 
 A subclass of a PMC delegates to that PMC (via deleg_pmc.pmc). The PMC is the 
 first attribute of that class named '__value'. Your code would look like:
 
   .local pmc capt
   capt = getattribute SELF, '__value'
   capt[key] = value
 
 But this is all clumsy, and might/should change.
 
 Therefore I've ci'ed in r15111 another workaround in parrotobject.pmc, which 
 checks, if the parent isa PMC and in that case calls the deleg_pmc method 
 instead of the default.

Alas, this seems to work only for immediate subclasses of a PMC.
If we have a sub-subclass, then we're apparently back to the
same problem as before:

$ cat zz.pir
.sub main :main
$P0 = new .Capture # create Capture object
$P0['alpha'] = 1   # store value in hash component
$P0[0] = 2 # store value in array component
$I0 = elements $P0 # display size of array  (should be 1)
print $I0
print \n

# create a 'Match' subclass of Capture
$P99 = subclass 'Capture', 'Match'

$P1 = new 'Match'  # create Match object
$P1['alpha'] = 1   # store value in hash component
$P1[0] = 2 # store value in array component
$I1 = elements $P1 # display size of array (should be 1)
print $I1
print \n

# create a 'Exp' subclass of Match
$P99 = subclass 'Match', 'Exp'

$P2 = new 'Exp'# create Exp object
$P2['alpha'] = 1   # store value in hash component
$P2[0] = 2 # store value in array component
$I2 = elements $P2 # display size of array (should be 1)
print $I2
print \n

.end

$ ./parrot zz.pir
1
1
0
$  

Looking at the above, it seems to me that the crux of the problem
(short of an overall saner design) is that deleg_pmc is occuring
after default.pmc.  That seems backwards.  Perhaps any deleg_pmc
methods should be taking place before falling back to the PMC defaults.

We also have a similar problem currently taking place with PMC
methods -- methods defined in a PMC aren't being properly inherited
or re-delegated in ParrotObject subclasses.  For capture.pmc I've
put some workarounds for this into Capture's 'get_array' and 'get_hash'
methods (r15129), but it again points to something fundamentally
wrong with the way that method inheritance/delegation is being 
handled in ParrotObjects.

Pm


[svn:perl6-synopsis] r13463 - doc/trunk/design/syn

2006-11-06 Thread larry
Author: larry
Date: Mon Nov  6 14:44:17 2006
New Revision: 13463

Modified:
   doc/trunk/design/syn/S12.pod

Log:
Changed has= to autoclose for consistency with other temporal declarators.


Modified: doc/trunk/design/syn/S12.pod
==
--- doc/trunk/design/syn/S12.pod(original)
+++ doc/trunk/design/syn/S12.podMon Nov  6 14:44:17 2006
@@ -12,9 +12,9 @@
 
   Maintainer: Larry Wall [EMAIL PROTECTED]
   Date: 27 Oct 2004
-  Last Modified: 1 Nov 2006
+  Last Modified: 6 Nov 2006
   Number: 12
-  Version: 30
+  Version: 31
 
 =head1 Overview
 
@@ -466,13 +466,25 @@
 @.foo.(1,2,3);  # ditto
 
 Pseudo-assignment to an attribute declaration specifies the default
-value.  The value on the right is evaluated at class composition
-time, that is, while the class is being compiled and the class
-object constructed.  However, if the default value is a closure,
-that closure will be executed later at object initialization time.
-(Use a double closure to initialize to a closure value.)  The topic
-of the closure will be the attribute being initialized, while self
-refers to the entire object being initialized.
+value.  The value on the right is treated as an implicit closure and
+evaluated at object build time, that is, when the object is being
+constructed, not when class is being composed.  To refer to a value
+computed at compilation or composition time, you can either use a
+temporary or a temporal block of some sort:
+
+has $.r = rand;# each object gets different random value
+
+constant $random = rand;
+has $.r = $random; # every object gets same value
+
+has $.r = BEGIN { rand };
+has $.r = INIT { rand };
+has $.r = ENTER { rand };
+has $.r = FIRST { rand };
+
+When it is called at BUILD time, the topic of the implicit closure
+will be the attribute being initialized, while self refers to the
+entire object being initialized.
 
 Class attributes are declared with either Cmy or Cour.  The only
 difference from ordinary Cmy or Cour variables is that an accessor


Re: :init Where should we put the flag?

2006-11-06 Thread Leopold Toetsch
Am Montag, 30. Oktober 2006 22:58 schrieb Kevin Tew:
 Using either of those flags ( PObj_private0_FLAG or  PObj_private2_FLAG
 ) break other tests.

 I'm up for more suggestions.

Sorry for the very delayed answer.

Reusing these compile-time flags isn't really safe obviously, as running the 
code of course might need the reused flags for runtime. I should have thought 
of that in the first place.

Therefore we need:
- a new field in the struct Parrot_sub / struct Parrot_coro: UINTVAL 
comp_flags  [1]
- it's usable as PMC_sub(pmc)-comp_flags then
- all the compile time flags should go there (moving the new one first as a 
test is of course ok)
- the flags can then be defined in sub.h and imcc can just reuse these defines 
(using the current imcc bits, which are more restricted)

leo

[1] include/parrot/sub.h
please regard the common order of fields in these 2 structs



Re: set_pmc_keyed_int delegates to set_pmc_keyed...?

2006-11-06 Thread Leopold Toetsch
Am Montag, 6. November 2006 21:54 schrieb Patrick R. Michaud:
 Alas, this seems to work only for immediate subclasses of a PMC.
 If we have a sub-subclass, then we're apparently back to the
 same problem as before:

I somehow thought that any object subclass would have a proper object vtable, 
but as that is also inherited from the (already broken) parent vtable, this 
of course doesn't work.

I've now removed [1] the default and the workaround for this one vtable call 
as a test case and the impact seems to be very low: one String failure and 
one explicit test for this case. It seems that these default vtable 
redirections aren't very heavily used, and I'm inclined to go that direction, 
i.e. remove the defualts. But that needs more testing by removing all such 
keyed redirections and implementing a few keyed_int vtables in core PMCs.

leo

[1]
(pmc2c is ignoring unknown vtable names, thus the xxx_ ;)

Index: src/pmc/parrotobject.pmc
===
--- src/pmc/parrotobject.pmc(Revision 15139)
+++ src/pmc/parrotobject.pmc(Arbeitskopie)
@@ -368,7 +368,7 @@
 }
 }

-void set_integer_keyed_int (INTVAL key, INTVAL value) {
+void xxx_set_integer_keyed_int (INTVAL key, INTVAL value) {
 STRING *meth = CONST_STRING(interpreter, __set_integer_keyed_int);
 STRING *meth_v = CONST_STRING(interpreter, set_integer_keyed_int);
 PMC *sub = find_vtable_meth(interpreter, pmc, meth_v);
Index: src/pmc/default.pmc
===
--- src/pmc/default.pmc (Revision 15139)
+++ src/pmc/default.pmc (Arbeitskopie)
@@ -680,7 +680,7 @@

 */

-void set_integer_keyed_int (INTVAL key, INTVAL value) {
+void xxx_set_integer_keyed_int (INTVAL key, INTVAL value) {
 PMC* r_key = INT2KEY(INTERP, key);
 DYNSELF.set_integer_keyed(r_key, value);
 }


Re: RFC: Actions without barriers

2006-11-06 Thread Bob Rogers
   From: Allison Randal [EMAIL PROTECTED]
   Date: Sun, 29 Oct 2006 22:52:03 -0800

   Bob Rogers wrote:
You want a patch that just gets rid of Error_Handler?  This might be
messier without the other changes . . .

   Not urgent. It may turn out that the experiment is really only useful 
   with this solution.

In the event, I think that is true.  Folding the Error_Handler hackery
into Continuation could be done in either of two ways, but the general
way would involve inventing a whole new mechanism for C code (i.e. the
error signaller) to return results via a continuation, while the simple
way just moves the hackery into a different place without much gain.

   And it may be that Error_Handler is useful even if it is not that
different from Continuation.  If the continuation object was passed to
an action when unwinding, testing the class of the object could be much
more informative than the current practice of passing a simple boolean.
So perhaps Error_Handler is worth keeping, at least for now.  (Though
maybe ExitContinuation would be a more general name for it.)

-- Bob


Re: Anyone relying on objects stringifying to class names?

2006-11-06 Thread Patrick R. Michaud
On Sat, Nov 04, 2006 at 08:46:37PM +, Jonathan Worthington wrote:
 Jonathan Worthington wrote:
 At the moment, if you have some ParrotObject instance, say foo, and do 
 something like:
 
  $S0 = foo
 
 Then $S0 will contain the name of the class.
 
 =item CSTRING *name()
 
 Erm, what the heck was I smoking when I wrote this...the name method 
 doesn't control what an object stringifies to at all. I managed to read 
 it as get_string. :-(
 
 Sorry 'bout that. And while this is marked as being bad in the comment, 
 I can't remove it since it's used (and I'm not even sure, how bad it is 
 now). PGE uses it for example.

Hmm, I can't recall where PGE might be using this -- could you
point to an example so I can make sure it's relatively sane?

Thanks,

Pm