perl6-internals
[Top] [All Lists]

[svn:parrot-pdd] r30604 - in trunk: docs/pdds/draft src

To: perl6-internals@perl.org
Subject: [svn:parrot-pdd] r30604 - in trunk: docs/pdds/draft src
From: Whiteknight@cvs.perl.org
Date: Wed, 27 Aug 2008 16:25:01 -0700 (PDT)
Delivered-to: mailing list perl6-all@perl.org
Delivered-to: perl6-all-poster@perl.org
Delivered-to: mailing list perl6-internals@perl.org
Delivered-to: moderator for perl6-internals@perl.org
Delivered-to: perl6-internals@perl.org
List-help: <mailto:perl6-all-help@perl.org>
List-id: <perl6-all.perl.org>
List-id: <perl6-internals.perl.org>
List-post: <mailto:perl6-all@perl.org>
List-subscribe: <mailto:perl6-all-subscribe@perl.org>
List-unsubscribe: <mailto:perl6-all-unsubscribe@perl.org>
Mailing-list: contact perl6-all-help@perl.org; run by ezmlm
Author: Whiteknight
Date: Wed Aug 27 16:25:00 2008
New Revision: 30604

Modified:
   trunk/docs/pdds/draft/pdd11_extending.pod

Changes in other areas also in this revision:
Modified:
   trunk/src/extend.c
   trunk/src/inter_run.c

Log:
[DOCS] Document Parrot_call_method as per RT#36243. Also, document a function 
that is a dependency of this one.

Modified: trunk/docs/pdds/draft/pdd11_extending.pod
==============================================================================
--- trunk/docs/pdds/draft/pdd11_extending.pod   (original)
+++ trunk/docs/pdds/draft/pdd11_extending.pod   Wed Aug 27 16:25:00 2008
@@ -283,11 +283,13 @@
 up Parrot's registers in line with the Parrot calling conventions; see
 L<pdd03_calling_conventions.pod> for more details.
 
-=item C<Parrot_call_method(interp,
-Parrot_PMC sub, Parrot_String method, Parrot_Int argcount, ...)>
+=item C<Parrot_call_method(PARROT_INTERP, Parrot_PMC sub, Parrot_PMC obj,
+    Parrot_String method, ARGIN(const char *signature), ...)>
 
-Calls a Parrot method named C<method> with C<argcount> PMC parameters. NB.
-This is not yet implemented and may change.
+Call the parrot subroutine C<sub> as a method on PMC object C<obj>. The method
+should have the name C<method> as a Parrot_string, and should have a function
+signature C<signature>. Any arguments to the method can be passed at the end
+as a variadic argument list.
 
 =back
 


From: "Christoph Otto via RT" <parrotbug-followup@parrotcode.org>
X-Virus-Check-By: mailtest2.pair.com
X-Spam-Check-By: mailtest2.pair.com
X-Spam-Status: No, hits=-9.3 required=4.0 
tests=BAYES_00,DATE_IN_PAST_03_06,MISSING_HEADERS,RCVD_IN_DNSWL_HI 
autolearn=ham version=3.002004
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Filtered: 052f96e22adcb440ba93d277d4a1272f
Mailing-List: contact perl6-all-help@perl.org; run by ezmlm
Precedence: bulk
List-Post: <mailto:perl6-all@perl.org>
List-Help: <mailto:perl6-all-help@perl.org>
List-Unsubscribe: <mailto:perl6-all-unsubscribe@perl.org>
List-Subscribe: <mailto:perl6-all-subscribe@perl.org>
List-Id: <perl6-all.perl.org>
Delivered-To: mailing list perl6-all@perl.org
Delivered-To: perl6-all-poster@perl.org
X-Mailing-List: contact perl6-internals-help@perl.org; run by ezmlm
X-Mailing-List-Name: perl6-internals
List-Id: <perl6-internals.perl.org>
Delivered-To: mailing list perl6-internals@perl.org
Delivered-To: moderator for perl6-internals@perl.org
Delivered-To: perl6-internals@perl.org
X-Authentication-Warning: x17.develooper.com: rt set sender to 
rt-christoph_bitcard=mksig.org@rt.perl.org using -f
Subject: [perl #46823] [TODO] [Pir] Rewrite Resizeable*Array tests properly 
when exceptions are implemented 
Reply-To: parrotbug-followup@parrotcode.org
In-Reply-To: <rt-3.6.HEAD-4732-1193298578-1782.46823-15-0@perl.org>
References: <RT-Ticket-46823@perl.org> 
<rt-3.6.HEAD-20360-1193260620-1537.46823-72-0@perl.org> 
<8e8ee0d40710241421l13705d8dm2bc1fd39362dae22@mail.gmail.com> 
<4720093B.7020703@perl.org> 
<8e8ee0d40710250049t2ea6c09bv38a6da0c7ecc0cb0@mail.gmail.com> 
<rt-3.6.HEAD-4732-1193298578-1782.46823-15-0@perl.org>
Message-ID: <rt-3.6.HEAD-29762-1219902576-1295.46823-15-0@perl.org>
X-RT-Loop-Prevention: perl
RT-Ticket: perl #46823
Managed-by: RT 3.6.HEAD (http://www.bestpractical.com/rt/)
RT-Originator: christoph_bitcard@mksig.org
Cc: perl6-internals@perl.org
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="utf-8"
X-RT-Original-Encoding: utf-8
Date: Wed, 27 Aug 2008 22:49:39 -0700
X-Old-Spam-Check-By: la.mx.develooper.com
X-Old-Spam-Status: No, hits=-2.3 required=8.0
        tests=BAYES_00,MISSING_HEADERS,RCVD_IN_DNSWL_LOW

On Thu Oct 25 00:49:38 2007, pcoch wrote:
> 
> To be totally honest I wish I knew.  I'm just going through converting
> the todo items in code into RT tickets and sometimes the todo comments
> aren't necessarily all that clear as to what needs to be done.  I'm
> also (unfortunately) not familiar enough with pir to see in the code
> of the tests what needs fixing otherwise I might have been able to
> expand a little in the ticket.  I'm really sorry I can't be of more
> help here!
> 
> Paul
> 

Most of these test wouldn't throw an exception anyway, since assigning
to a positive out-of-bounds element simply resizes the array.  (This
excludes nonsensically large positive indicies, which should probably
tested for.)  I added exception handling for oob indicies to the one
fixed array test in r30610, which still passes.  I deleted the other
references to this ticket.
It's possible that out-of-bounds refers to negative indicies.  I added
some tests with exception handlers for those cases in r30611.

If there are no objections, I'll mark this resolved after the weekend.

Christoph



From: Allison Randal (via RT) <parrotbug-followup@parrotcode.org>
X-Virus-Check-By: mailtest2.pair.com
X-Spam-Check-By: mailtest2.pair.com
X-Spam-Status: No, hits=-10.6 required=4.0 
tests=BAYES_00,DATE_IN_PAST_03_06,RCVD_IN_DNSWL_HI autolearn=ham 
version=3.002004
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Filtered: 052f96e22adcb440ba93d277d4a1272f
Mailing-List: contact perl6-all-help@perl.org; run by ezmlm
Precedence: bulk
List-Post: <mailto:perl6-all@perl.org>
List-Help: <mailto:perl6-all-help@perl.org>
List-Unsubscribe: <mailto:perl6-all-unsubscribe@perl.org>
List-Subscribe: <mailto:perl6-all-subscribe@perl.org>
List-Id: <perl6-all.perl.org>
Delivered-To: mailing list perl6-all@perl.org
Delivered-To: perl6-all-poster@perl.org
X-Mailing-List: contact perl6-internals-help@perl.org; run by ezmlm
X-Mailing-List-Name: perl6-internals
List-Id: <perl6-internals.perl.org>
Delivered-To: mailing list perl6-internals@perl.org
Delivered-To: moderator for perl6-internals@perl.org
Delivered-To: perl6-internals@perl.org
Resent-Date: Thu, 28 Aug 2008 00:45:14 -0700
Resent-From: rt-allison=perl.org@netlabs.develooper.com
Resent-Message-Id: <200808280745.m7S7jEc0018661@x17.develooper.com>
X-Authentication-Warning: x17.develooper.com: rt set sender to 
rt-allison=perl.org@rt.perl.org using -f
X-RT-NewTicket: yes
To: bugs-bitbucket@netlabs.develooper.com
Resent-To: perl6-internals@perl.org
Mail-Followup-To: perl6-internals@perl.org
Reply-To: perl6-internals@perl.org
Date: Thu, 28 Aug 2008 00:45:12 -0700
Subject: [perl #58414] [TODO] review calling conventions 
In-Reply-To: <48B6576A.4040303@perl.org>
References: <RT-Ticket-58414@perl.org> <48B6576A.4040303@perl.org>
Message-ID: <rt-3.6.HEAD-29759-1219909512-1098.58414-72-0@perl.org>
X-RT-Loop-Prevention: perl
RT-Ticket: perl #58414
Managed-by: RT 3.6.HEAD (http://www.bestpractical.com/rt/)
RT-Originator: allison@perl.org
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="utf-8"
X-RT-Original-Encoding: utf-8
X-Old-Spam-Check-By: la.mx.develooper.com
X-Old-Spam-Status: No, hits=-3.6 required=8.0
        tests=BAYES_00,RCVD_IN_DNSWL_LOW

# New Ticket Created by  Allison Randal 
# Please include the string:  [perl #58414]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58414 >


Briefly discussed in a phone call with Patrick, Jerry, and chromatic: 
Our calling conventions have grown in an organic fashion over the past 
few years, and they're showing some signs of cruft. The current design 
and implementation could use a consistency review. Among the topics for 
review:

- VTABLE_invoke is inconsistent between different sub-like PMCs. For 
most subs it simply sets up the environment for invocation, and selects 
the first opcode instruction of the sub as the next 'opcode_t *' for 
'runops'. For NCI subs it actually invokes the function pointer. The 
disjoint means that NCI subs can't be invoked from C argument lists the 
same way as all the other subs (because the regular C argument list 
passing can only happen *after* VTABLE_invoke has been called to set up 
the environment, but NCI requires the arguments to be passed *before* 
the call to VTABLE_invoke).

- Also, VTABLE_invoke can't really be overridden from PIR, because it 
requires direct access to low-level interpreter data structures.

- Standardize on PCC-style signature description strings throughout the 
system (instead of different signature description strings for NCI, PCC, 
and regular subs).

- Refactor to remove code duplication between the various dispatch systems.

- Optimize PCC dispatch (refactor to slim down the code).

- Enable dispatching by CallSignature PMC everywhere.


Some of these elements may be post-1.0 features. Consider this ticket a 
collection point for calling convention issues, and link in related tickets.

Allison


<Prev in Thread] Current Thread [Next in Thread>
  • [svn:parrot-pdd] r30604 - in trunk: docs/pdds/draft src, Whiteknight <=