You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2012/02/17 01:37:36 UTC
[lucy-commits] svn commit: r1245270 - in
/incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding: Index.pm Index/
Lucy.pm Misc.pm Search.pm Search/ Test/
Author: marvin
Date: Fri Feb 17 00:37:35 2012
New Revision: 1245270
URL: http://svn.apache.org/viewvc?rev=1245270&view=rev
Log:
Consolidate binding spec files.
Take small binding spec files and consolidate them into their parent files.
Rename Lucy::Build::Binding::Lucy to Lucy::Build::Binding::Misc in order to
more accurately represent its content.
Added:
incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Misc.pm
- copied, changed from r1245260, incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Lucy.pm
Removed:
incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index/
incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Lucy.pm
incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search/
incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Test/
Modified:
incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index.pm
incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search.pm
Modified: incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index.pm
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index.pm?rev=1245270&r1=1245269&r2=1245270&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index.pm (original)
+++ incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Index.pm Fri Feb 17 00:37:35 2012
@@ -44,6 +44,9 @@ sub bind_all {
$class->bind_polylexicon;
$class->bind_polyreader;
$class->bind_posting;
+ $class->bind_matchposting;
+ $class->bind_richposting;
+ $class->bind_scoreposting;
$class->bind_postinglist;
$class->bind_postinglistreader;
$class->bind_defaultpostinglistreader;
@@ -739,6 +742,56 @@ sub bind_posting {
parcel => "Lucy",
class_name => "Lucy::Index::Posting",
);
+ Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
+sub bind_matchposting {
+ my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+ parcel => "Lucy",
+ class_name => "Lucy::Index::Posting::MatchPosting",
+ );
+ Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
+sub bind_richposting {
+ my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+ parcel => "Lucy",
+ class_name => "Lucy::Index::Posting::RichPosting",
+ );
+ Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
+sub bind_scoreposting {
+ my @hand_rolled = qw( Get_Prox );
+
+ my $xs_code = <<'END_XS_CODE';
+MODULE = Lucy PACKAGE = Lucy::Index::Posting::ScorePosting
+
+SV*
+get_prox(self)
+ lucy_ScorePosting *self;
+CODE:
+{
+ AV *out_av = newAV();
+ uint32_t *positions = Lucy_ScorePost_Get_Prox(self);
+ uint32_t i, max;
+
+ for (i = 0, max = Lucy_ScorePost_Get_Freq(self); i < max; i++) {
+ SV *pos_sv = newSVuv(positions[i]);
+ av_push(out_av, pos_sv);
+ }
+
+ RETVAL = newRV_noinc((SV*)out_av);
+}
+OUTPUT: RETVAL
+END_XS_CODE
+
+ my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+ parcel => "Lucy",
+ class_name => "Lucy::Index::Posting::ScorePosting",
+ );
+ $binding->append_xs($xs_code);
+ $binding->exclude_method($_) for @hand_rolled;
Clownfish::CFC::Binding::Perl::Class->register($binding);
}
Copied: incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Misc.pm (from r1245260, incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Lucy.pm)
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Misc.pm?p2=incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Misc.pm&p1=incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Lucy.pm&r1=1245260&r2=1245270&rev=1245270&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Lucy.pm (original)
+++ incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Misc.pm Fri Feb 17 00:37:35 2012
@@ -12,7 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-package Lucy::Build::Binding::Lucy;
+package Lucy::Build::Binding::Misc;
use strict;
use warnings;
@@ -23,6 +23,7 @@ sub bind_all {
$class->bind_testutils;
$class->bind_testqueryparsersyntax;
$class->bind_testschema;
+ $class->bind_bbsortex;
}
sub bind_lucy {
@@ -346,4 +347,65 @@ sub bind_testschema {
Clownfish::CFC::Binding::Perl::Class->register($binding);
}
+sub bind_bbsortex {
+ my @hand_rolled = qw(
+ Fetch
+ Peek
+ Feed
+ );
+ my $xs_code = <<'END_XS_CODE';
+MODULE = Lucy PACKAGE = Lucy::Test::Util::BBSortEx
+
+SV*
+fetch(self)
+ lucy_BBSortEx *self;
+CODE:
+{
+ void *address = Lucy_BBSortEx_Fetch(self);
+ if (address) {
+ RETVAL = XSBind_cfish_to_perl(*(lucy_Obj**)address);
+ CFISH_DECREF(*(lucy_Obj**)address);
+ }
+ else {
+ RETVAL = newSV(0);
+ }
+}
+OUTPUT: RETVAL
+
+SV*
+peek(self)
+ lucy_BBSortEx *self;
+CODE:
+{
+ void *address = Lucy_BBSortEx_Peek(self);
+ if (address) {
+ RETVAL = XSBind_cfish_to_perl(*(lucy_Obj**)address);
+ }
+ else {
+ RETVAL = newSV(0);
+ }
+}
+OUTPUT: RETVAL
+
+void
+feed(self, bb)
+ lucy_BBSortEx *self;
+ lucy_ByteBuf *bb;
+CODE:
+ CFISH_INCREF(bb);
+ Lucy_BBSortEx_Feed(self, &bb);
+
+END_XS_CODE
+
+ my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+ parcel => "Lucy",
+ class_name => "Lucy::Test::Util::BBSortEx",
+ );
+ $binding->exclude_method($_) for @hand_rolled;
+ $binding->append_xs($xs_code);
+
+ Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
1;
+
Modified: incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search.pm
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search.pm?rev=1245270&r1=1245269&r2=1245270&view=diff
==============================================================================
--- incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search.pm (original)
+++ incubator/lucy/trunk/perl/buildlib/Lucy/Build/Binding/Search.pm Fri Feb 17 00:37:35 2012
@@ -22,7 +22,9 @@ sub bind_all {
$class->bind_andquery;
$class->bind_bitvecmatcher;
$class->bind_collector;
+ $class->bind_bitcollector;
$class->bind_offsetcollector;
+ $class->bind_sortcollector;
$class->bind_compiler;
$class->bind_hitqueue;
$class->bind_hits;
@@ -127,6 +129,40 @@ END_CONSTRUCTOR
Clownfish::CFC::Binding::Perl::Class->register($binding);
}
+sub bind_bitcollector {
+ my @exposed = qw( Collect );
+
+ my $pod_spec = Clownfish::CFC::Binding::Perl::Pod->new;
+ my $synopsis = <<'END_SYNOPSIS';
+ my $bit_vec = Lucy::Object::BitVector->new(
+ capacity => $searcher->doc_max + 1,
+ );
+ my $bit_collector = Lucy::Search::Collector::BitCollector->new(
+ bit_vector => $bit_vec,
+ );
+ $searcher->collect(
+ collector => $bit_collector,
+ query => $query,
+ );
+END_SYNOPSIS
+ my $constructor = <<'END_CONSTRUCTOR';
+ my $bit_collector = Lucy::Search::Collector::BitCollector->new(
+ bit_vector => $bit_vec, # required
+ );
+END_CONSTRUCTOR
+ $pod_spec->set_synopsis($synopsis);
+ $pod_spec->add_constructor( alias => 'new', sample => $constructor, );
+ $pod_spec->add_method( method => $_, alias => lc($_) ) for @exposed;
+
+ my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+ parcel => "Lucy",
+ class_name => "Lucy::Search::Collector::BitCollector",
+ );
+ $binding->set_pod_spec($pod_spec);
+
+ Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
sub bind_offsetcollector {
my $binding = Clownfish::CFC::Binding::Perl::Class->new(
parcel => "Lucy",
@@ -135,6 +171,14 @@ sub bind_offsetcollector {
Clownfish::CFC::Binding::Perl::Class->register($binding);
}
+sub bind_sortcollector {
+ my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+ parcel => "Lucy",
+ class_name => "Lucy::Search::Collector::SortCollector",
+ );
+ Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
sub bind_compiler {
my @exposed = qw(
Make_Matcher