[perl #45357] [TODO] Which exception should be thrown with register overflow?

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


Having a look through PDD03 I noticed the TODO item left by Chip:

  =head3 Overflow

  If too many values are provided to fit into the given target registers, Parrot
  will throw an exception.  Note that if the final target is a P register with
  FLAT set, then this exception can never occur.

  XXX - FIXME - which exception?  We really could use an exception subsystem.
  Oh, wait, that's my job.  Never mind.  --Chip

What should we do here?  Do we already have an exception subsystem?
Has this been designed/implemented?


[svn:parrot-pdd] r21179 - trunk/docs/pdds

2007-09-11 Thread paultcochrane
Author: paultcochrane
Date: Tue Sep 11 02:26:58 2007
New Revision: 21179

Modified:
   trunk/docs/pdds/pdd03_calling_conventions.pod

Log:
[pdds] Minor formatting and textual corrections.


Modified: trunk/docs/pdds/pdd03_calling_conventions.pod
==
--- trunk/docs/pdds/pdd03_calling_conventions.pod   (original)
+++ trunk/docs/pdds/pdd03_calling_conventions.pod   Tue Sep 11 02:26:58 2007
@@ -90,7 +90,7 @@
 =head2 Passing Arguments, Returning Values
 
 Just before calling a subroutine with Cinvokecc or calling a method with
-call_methodcc, use the Cset_args opcode to tell Parrot where the
+Ccall_methodcc, use the Cset_args opcode to tell Parrot where the
 subroutine's or method's arguments will come from and how they should be
 expanded by the target.
 
@@ -143,7 +143,7 @@
 =head2 Accepting Parameters, Accepting Return Values
 
 As the Ifirst opcode in a subroutine that will be called with Cinvokecc or
-a method that will be called with call_methodcc, use the Cget_params opcode
+a method that will be called with Ccall_methodcc, use the Cget_params 
opcode
 to tell Parrot where the subroutine's or method's arguments should be stored
 and how they should be expanded.
 
@@ -273,8 +273,8 @@
 
 Positional targets can only be filled with positional values.
 
-Named targets can be filled with either positional or named values.  However,
-if a named target was already filled by an positional (positional) value, and
+Named targets can be filled with either positional or named values.
+However, if a named target was already filled by a positional value, and
 then a named value is also given, this is an overflow error.
 
 =head3 Type Conversions


[perl #45359] [TODO] Enumerate all non-C89 assumptions that Parrot depends on

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


In the coding standards PDD (pdd07) there is the todo item:

{{ TODO: Enumerate all other non-C89 assumptions that Parrot depends on. }}

For context, the rest of the section where this appears reads:

C code must generally depend on only those language and library features
specified by the ISO C89 standard.

In addition, C code may assume that any pointer value can be coerced to an
integral type (no smaller than typedef CINTVAL in Parrot), then back to its
original type, without loss.

Also C code may assume that there is a single NULL pointer representation
and that it consists of a number, usually 4 or 8, of '\0' chars in memory.

C code that makes assumptions beyond these must depend on the configuration
system, either to not compile an entire non-portable source where it will not
work, or to provide an appropriate #ifdef macro.



Ok, so the question is: what other assumptions does/should the Parrot
C-language source rely on which are C89 nonstandard?


[perl #45363] [TODO] Deprecate opcode lists surrounded by parentheses

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


In pdd03, Chip deprecated the syntax of opcode lists as a whole
surrounded by parentheses:

  (DEPRECATED: The list as a whole may be surrounded by parentheses.)


Some more text for context:

The common syntax of these opcodes is:

 set_opcode (flags0, flags1, ..., flagsN), VAL0, VAL1, ... VALN
 get_opcode (flags0, flags1, ..., flagsN), REG0, REG1, ... REGN
 get_opcode (..., 0x200, flags0, ...), ..., name, REG0, ...

So, what should the syntax now be?  Does the syntax given above fit
the deprecated syntax or the correct syntax (it looks like it's
deprecated to me, but I'm not an expert in these things)?  Anyway, any
files containing this syntax need to be changed to the appropriate
syntax so that things are up to date.


[perl #45365] [TODO] Update parrot.el to remove return argument parenthesis requirement

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


In the coding standards PDD (pdd07) there is the todo item (with context):

  =item *

  Return values should not be parenthesized without need.  It may be necessary
  to parenthesize a long return expression so that a smart editor will properly
  indent it.

  {{ TODO: Modify parrot.el so this rule is no longer required. }}


If this hasn't been seen to already, do it.  :-)


[perl #45367] [TODO] Limit the required interface for PMCs

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


In the pdd03 design document there is the todo item (with context):

=item 5 CFLAT (P only)

If this bit is set on a PMC value, then the PMC must be an aggregate.  The
contents of the aggregate, rather than the aggregate itself, will be passed.

If the CNAMED bit is also set, the aggregate will be used as a hash; its
contents, as key/value pairs, will be passed as named parameters.  The PMC
must implement the full hash interface.  {{ TODO: Limit the required
interface. }}

What is the required interface?  How should it be limited?  This, I
suspect, needs to be discussed and decided upon, and then documented
in the PDD.


[svn:parrot-pdd] r21180 - trunk/docs/pdds

2007-09-11 Thread paultcochrane
Author: paultcochrane
Date: Tue Sep 11 05:01:37 2007
New Revision: 21180

Modified:
   trunk/docs/pdds/pdd03_calling_conventions.pod
   trunk/docs/pdds/pdd07_codingstd.pod

Log:
[pdd] Converted TODO items to RT tickets.


Modified: trunk/docs/pdds/pdd03_calling_conventions.pod
==
--- trunk/docs/pdds/pdd03_calling_conventions.pod   (original)
+++ trunk/docs/pdds/pdd03_calling_conventions.pod   Tue Sep 11 05:01:37 2007
@@ -63,7 +63,7 @@
 prefixed with 0b/0x, in binary/hexadecimal.  There must be exactly one
 integer for each value or register given.
 
-(DEPRECATED: The list as a whole may be surrounded by parentheses.)
+(RT#45363 DEPRECATED: The list as a whole may be surrounded by parentheses.)
 
 For documentation purposes we'll number the bits 0 (low) through 30 (high).
 Bit 31 (and higher, where available) will not be used.
@@ -117,7 +117,7 @@
 
 If the CNAMED bit is also set, the aggregate will be used as a hash; its
 contents, as key/value pairs, will be passed as named parameters.  The PMC
-must implement the full hash interface.  {{ TODO: Limit the required
+must implement the full hash interface.  {{ RT#45367: Limit the required
 interface. }}
 
 If the CNAMED bit is not set, the aggregate will be used as an array; its
@@ -226,7 +226,7 @@
 will throw an exception.  Note that if the final target is a P register with
 FLAT set, then this exception can never occur.
 
-XXX - FIXME - which exception?  We really could use an exception subsystem. 
+RT#45357 - which exception?  We really could use an exception subsystem. 
 Oh, wait, that's my job.  Never mind.  --Chip
 
 =head3 Underflow

Modified: trunk/docs/pdds/pdd07_codingstd.pod
==
--- trunk/docs/pdds/pdd07_codingstd.pod (original)
+++ trunk/docs/pdds/pdd07_codingstd.pod Tue Sep 11 05:01:37 2007
@@ -69,7 +69,7 @@
 system, either to not compile an entire non-portable source where it will not
 work, or to provide an appropriate #ifdef macro.
 
-{{ TODO: Enumerate all other non-C89 assumptions that Parrot depends on. }}
+{{ RT#45359: Enumerate all other non-C89 assumptions that Parrot depends on. }}
 
 =item *
 
@@ -202,7 +202,7 @@
 to parenthesize a long return expression so that a smart editor will properly
 indent it.
 
-{{ TODO: Modify parrot.el so this rule is no longer required. }}
+{{ RT#45365: Modify parrot.el so this rule is no longer required. }}
 
 =item *
 


[perl #45249] [BUG] r21103-21121 won't build on 64-bit intel

2007-09-11 Thread Patrick R. Michaud via RT
Agreed, r21175 appears to have resolved this problem, so I'm 
closing the ticket.

Instead of filing a ticket for the t/pmc/fixedfloatarray.t 
problem, I just went ahead and fixed it (r21182).  

Pm



[svn:parrot-pdd] r21183 - trunk/docs/pdds

2007-09-11 Thread paultcochrane
Author: paultcochrane
Date: Tue Sep 11 06:27:26 2007
New Revision: 21183

Modified:
   trunk/docs/pdds/pdd07_codingstd.pod

Log:
[pdd] Minor textual and formatting cleanups.


Modified: trunk/docs/pdds/pdd07_codingstd.pod
==
--- trunk/docs/pdds/pdd07_codingstd.pod (original)
+++ trunk/docs/pdds/pdd07_codingstd.pod Tue Sep 11 06:27:26 2007
@@ -388,7 +388,7 @@
 Parrot is a large program maintained by many people.  Therefore:
 
 Don't use a Cchar * when a Parrot STRING would suffice.  Don't use a C array
-when a Parrot array PMC would suffice.  If do use a Cchar * or C array,
+when a Parrot array PMC would suffice.  If you do use a Cchar * or C array,
 check and recheck your code for even the slightest possibility of buffer
 overflow or memory leak.
 
@@ -489,10 +489,12 @@
 svn propedit svn:ignore PATH
 
 In order to keep the two different checks synchronized, 
-the MANIFEST and MANIFEST.SKIP file should be regenerated with:
+the MANIFEST and MANIFEST.SKIP files should be regenerated with:
 
 perl tools/dev/mk_manifest_and_skip.pl
 
+and the files then committed to the Parrot svn repository.
+
 =head3 svn:mime-type
 
 The Csvn:mime-type property must be set to Ctext/plain for all test
@@ -506,6 +508,9 @@
 [auto-props]
 *.t = svn:mime-type=text/plain
 
+The Ft/distro/file_metadata.t test checks that the files needing
+this property have it set.
+
 =head3 svn:keywords
 
 The Csvn:keywords property should be set to:
@@ -557,7 +562,7 @@
 =item Subsystems and APIs
 
 The Parrot core will be split into a number of subsystems, each with an
-associated API. For the purposes of naming files, data structures, etc, each
+associated API. For the purposes of naming files, data structures, etc., each
 subsystem will be assigned a short nickname, e.g. Ipmc, Igc, Iio. All 
code
 within the core will belong to a subsystem; miscellaneous code with no obvious
 home will be placed in the special subsystem called Imisc.
@@ -582,13 +587,13 @@
 this is not essential.
 
 Each subsystem Ifoo should supply the following files. This arrangement is
-based on the assumption that each subsystem will - as far as is practical -
+based on the assumption that each subsystem will -- as far as is practical --
 present an opaque interface to all other subsystems within the core, as well as
 to extensions and embeddings.
 
 =over 4
 
-=item foo.h
+=item Cfoo.h
 
 This contains all the declarations needed for external users of that API (and
 nothing more), i.e. it defines the API. It is permissible for the API to 
include
@@ -596,7 +601,7 @@
 with its use in extensions and embeddings. In this case, the extra stuff within
 the file is enabled by testing for the macro CPERL_IN_CORE.
 
-=item foo_private.h
+=item Cfoo_private.h
 
 This contains declarations used internally by that subsystem, and which must
 only be included within source files associated the subsystem. This file
@@ -605,20 +610,20 @@
 used to define shorter working names for functions without the perl prefix (see
 below).
 
-=item foo_globals.h
+=item Cfoo_globals.h
 
 This file contains the declaration of a single structure containing the private
 global variables used by the subsystem (see the section on globals below for
 more details).
 
-=item foo.sym
+=item Cfoo.sym
 
 This file (format and contents TBD) contains information about global symbols
 associated with the subsystem, and may be used by scripts to auto-generate such
 stuff as the include files mentioned above, linker map tables, documentation
-etc, based upon portability and extensibility requirements.
+etc., based upon portability and extensibility requirements.
 
-=item foo_bar.[ch] etc
+=item Cfoo_bar.[ch] etc.
 
 All other source files associated with the subsystem will have the prefix foo_
 
@@ -626,7 +631,7 @@
 
 =item Names of code entities
 
-Code entities such as variables, functions, macros etc (apart from strictly
+Code entities such as variables, functions, macros etc. (apart from strictly
 local ones) should all follow these general guidelines.
 
 =over 4
@@ -645,8 +650,8 @@
 
 =item *
 
-All entities should be prefixed with the name of the subsystem they appear in,
-e.g. Cpmc_foo(), Cstruct io_bar.
+All entities should be prefixed with the name of the subsystem in which they
+appear, e.g. Cpmc_foo(), Cstruct io_bar.
 
 =item *
 
@@ -707,8 +712,8 @@
 =item *
 
 Macros can be defined to cover common flag combinations, in which case they
-should have C_SETALL, CCLEARALL, C_TESTALL or _TESTANY suffixes as
-appropriate, to indicate aggregate bits, e.g. CPMC_valid_CLEARALL(foo)
+should have C_SETALL, C_CLEARALL, C_TESTALL or C_TESTANY suffixes as
+appropriate, to indicate aggregate bits, e.g. CPMC_valid_CLEARALL(foo).
 
 =item *
 
@@ -719,7 +724,7 @@
 
 A macro indicating the compilation 'location' should be prefixed with CIN_,
 e.g. CPERL_IN_CORE, CPERL_IN_PMC, CPERL_IN_X2P. Individual include file
-visitations should 

Re: [perl #45255] [PATCH] Add Generated File Warning to Externally-Generated Files

2007-09-11 Thread chromatic
On Tuesday 11 September 2007 06:53:13 Jerry Gay via RT wrote:

 it'd be even better if the patch included the perl code used to do the
 fixup. without it, the idea is made clear, but it will remain unproven
 on any system but your own. oops!

Er, yeah.

-- c


fixup_gen_file.pl
Description: Perl program


Re: [perl #45023] SUGGESTION inlining subs

2007-09-11 Thread Bernhard Schmalhofer

Patrick R. Michaud schrieb:

On Tue, Aug 28, 2007 at 09:37:39AM -0700, Debbie Harry wrote:
  
# New Ticket Created by  Debbie Harry 
# Please include the string:  [perl #45023]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=45023 


Maybe it would be useful to support inlining of subs (at PIR level?)

This would support good programming style.



Well, I'm a bit confused as to what's being asked here, so I'll
go ahead and ask for some clarification.

Are you asking for the ability to define subs in PIR such that
any PIR-based calls to those subs are then inlined?

Or are you looking at this from more of a high-level language (HLL)
perspective, such that someone writing in a HLL can designate
certain blocks as being suitable for inlining?
  

I remember this as a conversation I had with a German guy at YAPC::EU.
The idea was optimisation of PIR code. Avoid the overhead of argument
passing by inlining subs in the PBC.

My suggestion was to start a discussion by submitting an RT ticket for 
that idea.


Regards,
  Bernhard



[perl #43513] [docs] new content in book/ch01_overview.pod

2007-09-11 Thread Nuno Carvalho via RT
Hi all,

On Wed Jul 11 13:14:15 2007, bernhard wrote:
 On Di. 03. Jul. 2007, 13:19:56, smash wrote:
  Hi all,
  
   I spent some time around docs/book/ch01_overview.pod. Since most of
  this chapter is not very technical it's still pretty much up to date.
  I added a lot of info about roles and responsabilities to the project
  overview based in RESPONSIBLE_PARTIES, docs/roles_responsibilities.pod
   and docs/project/*. I'm still in a bit of a struggle with pseudopod
  tags, so bear with me on this please. You can find a patch for
  ch01_overview.pod attached to this message.
  
   Any comments / ideias would be nice, thank you in advance.
 
 I suggest to apply that patch, as it is an improvement.
 
 Bringing the whole book up to date, or starting on a new book,
 is IMHO a major undertaking. A saner organisation of the 'docs'
 directory might be a start. 

Committed in revision 21181, closing ticket. Thanks.

./smash


Re: [perl #44101] Parrot 0.4.14 fails: src/pmc/object.c, line 153: void function cannot return value

2007-09-11 Thread Andy Dougherty
On Tue, 11 Sep 2007, Bernhard Schmalhofer via RT wrote:

 On Mo. 23. Jul. 2007, 10:35:38, doughera wrote:
  As of version 0.4.14, parrot no longer builds for me with Sun's
  Workshop
  compiler on Solaris 8/SPARC.  I get 66 errors of the form:
  
  src/pmc/object.c, line 153: void function cannot return value
 
 I believe this is the same issue as in RT#44009.
 
 It looks like the issue has been fixed. 
 Can you confirm that for  Solaris 8/SPARC ?

Yes, that one's fixed.  I'll close the ticket.

-- 
Andy Dougherty  [EMAIL PROTECTED]


[perl #42769] Should 'object' and basic PMC names be keywords in PIR

2007-09-11 Thread Allison Randal via RT
We will deprecate all types for .local other than string, num, int, and pmc.

Allison


[perl #45387] [BUG] languages/lua/pmc/lua_private.h generating error in t/codingstd/c_header_guards.t

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


I've been getting these errors:

[parrot] 504 $ prove -v t/codingstd/c_header_guards.t
t/codingstd/c_header_guards1..5

# Failed test (t/codingstd/c_header_guards.t at line 129)
# missing guard:
# /Users/jimk/work/parrot/languages/lua/pmc/lua_private.h

# Failed test (t/codingstd/c_header_guards.t at line 133)
# missing define:
# /Users/jimk/work/parrot/languages/lua/pmc/lua_private.h

# Failed test (t/codingstd/c_header_guards.t at line 137)
# missing endif comment:
# /Users/jimk/work/parrot/languages/lua/pmc/lua_private.h
# Looks like you failed 3 tests of 5.
ok 1 - identical PARROT_*_GUARD macro names used in headers
ok 2 - multiple PARROT_*_GUARD macros found in headers
not ok 3 - missing or misspelled PARROT_*_GUARD ifndef in headers
not ok 4 - missing or misspelled PARROT_*_GUARD define in headers
not ok 5 - missing or misspelled PARROT_*_GUARD comment after the  
endif in headers
dubious
 Test returned status 3 (wstat 768, 0x300)
DIED. FAILED tests 3-5
 Failed 3/5 tests, 40.00% okay
Failed Test   Stat Wstat Total Fail  List of Failed
 
---
t/codingstd/c_header_guards.t3   768 53  3-5
Failed 1/1 test scripts. 3/5 subtests failed.
Files=1, Tests=5,  8 wallclock secs ( 0.93 cusr +  0.32 csys =  1.25  
CPU)
Failed 1/1 test programs. 3/5 subtests failed.


I tried to fix them but failed.  I probably don't understand the  
PARROT_*_GUARD macros.  This test file appears to have no 'ifndef'  
headers; that may be part of the problem.

kid51