I stated #4 wrong...it should be perlnum.pmc not perlint.pmc
----- Original Message -----
From: "Tanton Gibbs (via RT)" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, July 22, 2002 12:26 AM
Subject: [perl #15306] [PATCH] pmc RECALL command implemented


> # New Ticket Created by  "Tanton Gibbs"
> # Please include the string:  [perl #15306]
> # in the subject line of all future correspondence about this issue.
> # <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=15306 >
>
>
> This patch does a number of things
>
> 1.) adds the RECALL command.  This command was described in a previous
> email, but basically after a CHANGE_TYPE(SELF, X), code should not be
> written.
> Instead the function should be relooked up in the new vtable and recalled.
> The RECALL preprocessor directive automates that.  This has the benefit
that
> a pmc's
> code is not duplicated (perhaps erroneously) every time a type is changed.
> It is worth noting that perlundef.pmc was already doing this, but manually
> (which is error prone).
>
> 2.) adds POD to pmc2c.pl - this file was completely uncommented...I added
> POD and comments to help describe what was happening.
>
> 3.) changes perlnum, perlstring, perlundef, and perlint to use RECALL when
> appropriate
>
> 4.) a few minor style corrections to perlint.pmc
>
> There are two notes:
>
> 1.) This may run slightly slower because of the additional function calls.
> However, this ensures correct semantics and I think is worth the price.
>      I sent out previous timings which noted a 6.5 tenth of a second
> slowdown over 10,000,000 calls on a cygwin machine (which runs slow
anyway).
>
> 2.) This will run much slower for X -> string conversions because it was
> previously only doing an assign, now it is calling the set_string function
> in
>       perlstring.pmc which does a string_copy (and thus an allocation).
I'm
> not sure whether an allocation should be done or not, but at least
> everything
>       is doing it the same way and can be fixed in only one place.
>
> Also, I apologize for sending out multiple diff files, but everytime I did
a
> cvs diff it gave me the following error message:
>
> cvs server: failed to create lock directory for
`/cvs/public/parrot/Parrot'
> (/cv
> s/public/parrot/Parrot/#cvs.lock): No such file or directory
> cvs server: failed to obtain dir lock in repository
> `/cvs/public/parrot/Parrot'
> cvs [server aborted]: read lock failed - giving up
>
> Does anyone know why?
>
> Thanks!
> Tanton
>
>
> -- attachment  1 ------------------------------------------------------
> url: http://rt.perl.org/rt2/attach/30927/25904/a654bd/pmc2c.diff
>
> -- attachment  2 ------------------------------------------------------
> url: http://rt.perl.org/rt2/attach/30927/25905/bc9095/perlnum.diff
>
> -- attachment  3 ------------------------------------------------------
> url: http://rt.perl.org/rt2/attach/30927/25906/36bcdc/perlstring.diff
>
> -- attachment  4 ------------------------------------------------------
> url: http://rt.perl.org/rt2/attach/30927/25907/7c2d57/perlundef.diff
>
> -- attachment  5 ------------------------------------------------------
> url: http://rt.perl.org/rt2/attach/30927/25908/456164/perlint.diff
>
>

Reply via email to