[Xapian-tickets] [Xapian] #523: Migrate from XS Search::Xapian to SWIG version

Xapian nobody at xapian.org
Tue Apr 14 06:18:07 BST 2020


#523: Migrate from XS Search::Xapian to SWIG version
----------------------------+-------------------------------
 Reporter:  Olly Betts      |             Owner:  Olly Betts
     Type:  defect          |            Status:  assigned
 Priority:  normal          |         Milestone:  1.5.0
Component:  Search::Xapian  |           Version:  git master
 Severity:  normal          |        Resolution:
 Keywords:                  |        Blocked By:
 Blocking:                  |  Operating System:  All
----------------------------+-------------------------------
Description changed by Olly Betts:

Old description:

> This ticket is to track the issues remaining to solve before the SWIG
> Perl bindings are a complete replacement for the XS ones.
>
>  * ~~~{{{"$it"}}} doesn't work in SWIG, while in XS it dereferences (for
> !TermIterator and !ValueIterator at least).  I did some digging last year
> and it seemed there was some problematic interaction with eq/ne which I
> didn't get to the bottom of.~~~
>  * ~~~"Stringify" is also missing for subclasses of Error (which in the
> XS version I'm using in 1.2.4 to give backwards compatibility for cases
> which were still throwing string exceptions in 1.2.3).~~~
>  * XS version has simple anon-sub wrappers for !MatchDecider and
> !ExpandDecider.  SWIG doesn't support directors for Perl in current
> releases (though there's work on a branch).  But perhaps we can support
> these simple wrappers without needing directors.
>  * The SWIG-generated version is fussier about what sort of scalars you
> pass - for example, if an integer is expected, passing a string
> containing an integer or floating point number doesn't work, at least in
> some cases.
>
> One option is to deprecate the stringify stuff and make the switch at the
> start of the next release series.

New description:

 This ticket is to track the issues remaining to solve before the SWIG Perl
 bindings are a complete replacement for the XS ones.

  * ~~~{{{"$it"}}} doesn't work in SWIG, while in XS it dereferences (for
 !TermIterator and !ValueIterator at least).  I did some digging last year
 and it seemed there was some problematic interaction with eq/ne which I
 didn't get to the bottom of.~~~
  * ~~~"Stringify" is also missing for subclasses of Error (which in the XS
 version I'm using in 1.2.4 to give backwards compatibility for cases which
 were still throwing string exceptions in 1.2.3).~~~
  * XS version has simple anon-sub wrappers for !MatchDecider and
 !ExpandDecider.  SWIG doesn't support directors for Perl in current
 releases (though there's work on a branch).  But perhaps we can support
 these simple wrappers without needing directors.
  * ~~~The SWIG-generated version is fussier about what sort of scalars you
 pass - for example, if an integer is expected, passing a string containing
 an integer or floating point number doesn't work, at least in some
 cases.~~~ Now documented at least.

 One option is to deprecate the stringify stuff and make the switch at the
 start of the next release series.

--
-- 
Ticket URL: <https://trac.xapian.org/ticket/523#comment:20>
Xapian <https://xapian.org/>
Xapian


More information about the Xapian-tickets mailing list