[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [Patch] Make Ruby and Perl shared libraries .dll again

From: Joe Swatosh <joe.swatosh_at_gmail.com>
Date: Thu, 28 May 2009 22:23:54 -0700

On Fri, May 22, 2009 at 11:07 AM, Branko Čibej <brane_at_xbc.nu> wrote:
> Joe Swatosh wrote:
>> Hi Mark, Stefan, Brane
>> On Fri, May 22, 2009 at 6:55 AM, Mark Phippard <markphip_at_gmail.com> wrote:
>>> On Fri, May 22, 2009 at 9:52 AM, Stefan Sperling <stsp_at_elego.de> wrote:
>>>> On Thu, May 21, 2009 at 11:26:50PM -0700, Joe Swatosh wrote:
>>>>> Make the Ruby and Perl shared libraries .dll instead of .pyd. There is
>>>>> probably a smarter way to do this with the ._extension_map, but I'm no
>>>>> kind of Python expert.
>>>> Your log message and explanation of your patch do not contain any
>>>> reasoning about why r37331 needs to be reverted. Can you explain?
>>>> You seem to assume that everyone already knows what's wrong with
>>>> .pyd. But, for example, I don't even know what a .pyd is! :)
>>>> Please try to explain the reasoning behind a change in the log message.
>>> I had the same reaction.  I suspect that it is tied to the comment
>>> about Ruby.  Clearly, the Ruby bindings DLL should not be named .pyd
>>> as that is a Python-specific extension.  So perhaps the problem is
>>> that the way this change was implemented it impacts the Ruby bindings?
>> Hm.  I guess I was having a hard time yesterday saying what I mean.  Maybe
>> it was just too late.  That is it exactly. r37331 changed the extensions of the
>> shared libraries for all the SWIG based bindings to .pyd.  Truthfully, I don't
>> know what a .pyd is either, but it prevented the Ruby (and I am assuming)
>> the Perl bindings from working.
> That'd be my bad ... I didn't check a patch carefully enough. BTW, a
> .pyd is a .dll containing a Python extension, on Windows.

This is not part of the Ruby bindings so it is not for me to commit
without approval by a full committer. Is the patch acceptable with the
log message amended below?

Partially revert r37331 "On Windows, shared libs for Python bindings
should be *.pyd not *.dll."  In addition to changing the shared libs for
the Python bindings, r37331 inadvertently changed the extensions of the
shared libraries produced for the Perl and Ruby bindings from .dll to
.pyd.  Change the extensions back to .dll for the Ruby and Perl
* build/generator/gen_base.py (TargetSWIG.add_dependencies): Mark Python
  wrapper shared libs as type "pyd" not "lib".
--- build/generator/gen_base.py (revision 37787)
+++ build/generator/gen_base.py (working copy)
@@ -550,12 +550,13 @@
    # Extract SWIG module name from .i file name
    module_name = iname[:4] != 'svn_' and iname[:-2] or iname[4:-2]
-    lib_extension = self.gen_obj._extension_map['pyd', 'target']
+    lib_extension = self.gen_obj._extension_map['lib', 'target']
    if self.lang == "ruby":
      lib_filename = module_name + lib_extension
    elif self.lang == "perl":
      lib_filename = '_' + module_name.capitalize() + lib_extension
+      lib_extension = self.gen_obj._extension_map['pyd', 'target']
      lib_filename = '_' + module_name + lib_extension
    self.name = self.lang + '_' + module_name
Received on 2009-05-29 07:31:48 CEST

This is an archived mail posted to the Subversion Dev mailing list.