Re: [blead-498-gb94a8c4] vms chdir/chmod/mkdir... thread contextdependency removal

[email protected] ("Craig A. Berry")
Newsgroups perl.perl5.porters,perl.vmsperl
Message-ID <[email protected]>
On Feb 7, 2009, at 1:06 AM, John Malmberg wrote:

> Craig A. Berry wrote:
>> On Feb 5, 2009, at 6:50 PM, John Malmberg wrote:
>>> Craig A. Berry wrote:
>
>>>> On Feb 4, 2009, at 8:43 AM, John Malmberg wrote:
>>>>
>>>>>
>>>>> +  ret = Perl_flex_lstat(NULL, file_spec, &st);
>>>>
>>>> You're explicitly passing a null thread context?  That won't work.

> I forgot that the thread context did not exist on non-threaded  
> builds when I put the NULLs in.

That's what the aTHX_ and pTHX_ macros are for.  I can't think of any  
reason you would ever explicitly pass a null thread context.

>>> as would remove the thread context from the wrappers and static   
>>> routines that do not need it.
>> If you're talking about routines prefixed with "Perl_" that's  
>> really  considered a public interface and shouldn't be changed on a  
>> whim.   Didn't you create some internal routines specifically for  
>> the cases  where we don't or can't use a thread context?
>
> Most of the wrapper routines for the CRTL do not need a thread  
> context anymore.  I can put that back.

I think we should leave the public-facing interfaces the same.   
Internal routines, on the other hand, (for example  
vms_rename_with_acl) can be changed if the change is an improvement.

>>> I will revise and resubmit with the changes to vmsish.h to remove   
>>> the thread context.  It will probably take a few days.
>
> Attached is the patch.

There seem to be at least three different things going on in this patch.

1.)  Removing thread context from the calling sequences of some  
routines.  I don't see that we gain a lot by doing this, particularly  
when there is an alternative routine without thread context available,  
and even if there's a compelling reason to do so we really shouldn't  
before 5.12 for the externally-visible routines.

2.)  A wrapper for fgetname to convert its result to Unix format when  
unix reporting is in effect.  Wouldn't it be easier to just define a  
macro like so:

#define fgetname(a,b) decc$fgetname(a,b,!decc_filename_unix_report)

?  Or when you said it's not working did you mean it is ignoring its  
optional third argument?

3.)  Some logic changes to the mkdir/chdir/chmod wrappers.  Those look  
fine offhand but are tangled up with #1 above.  Could I get them as a  
separate patch?

>

________________________________________
Craig A. Berry
mailto:[email protected]

"... getting out of a sonnet is much more
  difficult than getting in."
                  Brad Leithauser
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.