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 2013/07/31 03:11:18 UTC
[lucy-commits] [6/6] git commit: refs/heads/move-dumpable - Finish moving Dump/Load
from Clownfish to Lucy.
Finish moving Dump/Load from Clownfish to Lucy.
Remove Dump/Load methods from the Clownfish runtime and move their
binding specs up into the Lucy classes that need them.
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/3c3bbaae
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/3c3bbaae
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/3c3bbaae
Branch: refs/heads/move-dumpable
Commit: 3c3bbaae7485200d566b19438c82fcf9a005a205
Parents: 939a52f
Author: Marvin Humphrey <ma...@rectangular.com>
Authored: Tue Jul 30 18:06:08 2013 -0700
Committer: Marvin Humphrey <ma...@rectangular.com>
Committed: Tue Jul 30 18:06:08 2013 -0700
----------------------------------------------------------------------
clownfish/runtime/core/Clownfish/CharBuf.c | 7 --
clownfish/runtime/core/Clownfish/CharBuf.cfh | 3 -
clownfish/runtime/core/Clownfish/Hash.c | 71 --------------------
clownfish/runtime/core/Clownfish/Hash.cfh | 6 --
clownfish/runtime/core/Clownfish/Obj.c | 5 --
clownfish/runtime/core/Clownfish/Obj.cfh | 15 -----
.../runtime/core/Clownfish/Test/TestHash.c | 35 +---------
clownfish/runtime/core/Clownfish/Test/TestObj.c | 21 +-----
.../runtime/core/Clownfish/Test/TestVArray.c | 20 +-----
clownfish/runtime/core/Clownfish/VArray.c | 26 -------
clownfish/runtime/core/Clownfish/VArray.cfh | 6 --
.../perl/buildlib/Clownfish/Build/Binding.pm | 3 -
clownfish/runtime/perl/lib/Clownfish.pm | 1 -
core/Lucy/Plan/FieldType.cfh | 6 ++
perl/buildlib/Lucy/Build/Binding/Analysis.pm | 4 ++
perl/buildlib/Lucy/Build/Binding/Document.pm | 4 ++
perl/buildlib/Lucy/Build/Binding/Index.pm | 4 ++
perl/buildlib/Lucy/Build/Binding/Plan.pm | 8 +++
perl/buildlib/Lucy/Build/Binding/Search.pm | 4 ++
perl/lib/Lucy.pm | 32 ++++++++-
20 files changed, 62 insertions(+), 219 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/core/Clownfish/CharBuf.c
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/CharBuf.c b/clownfish/runtime/core/Clownfish/CharBuf.c
index 3bdc373..8472f5a 100644
--- a/clownfish/runtime/core/Clownfish/CharBuf.c
+++ b/clownfish/runtime/core/Clownfish/CharBuf.c
@@ -445,13 +445,6 @@ CB_clone(CharBuf *self) {
return CB_new_from_trusted_utf8(self->ptr, self->size);
}
-CharBuf*
-CB_load(CharBuf *self, Obj *dump) {
- CharBuf *source = (CharBuf*)CERTIFY(dump, CHARBUF);
- UNUSED_VAR(self);
- return CB_Clone(source);
-}
-
void
CB_mimic_str(CharBuf *self, const char* ptr, size_t size) {
if (!StrHelp_utf8_valid(ptr, size)) {
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/core/Clownfish/CharBuf.cfh
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/CharBuf.cfh b/clownfish/runtime/core/Clownfish/CharBuf.cfh
index 57f2aa5..613dfbf 100644
--- a/clownfish/runtime/core/Clownfish/CharBuf.cfh
+++ b/clownfish/runtime/core/Clownfish/CharBuf.cfh
@@ -239,9 +239,6 @@ class Clownfish::CharBuf cnick CB
public incremented CharBuf*
To_String(CharBuf *self);
- public incremented CharBuf*
- Load(CharBuf *self, Obj *dump);
-
/** Remove Unicode whitespace characters from both top and tail.
*/
uint32_t
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/core/Clownfish/Hash.c
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/Hash.c b/clownfish/runtime/core/Clownfish/Hash.c
index a95485b..ffcd102 100644
--- a/clownfish/runtime/core/Clownfish/Hash.c
+++ b/clownfish/runtime/core/Clownfish/Hash.c
@@ -97,77 +97,6 @@ Hash_destroy(Hash *self) {
SUPER_DESTROY(self, HASH);
}
-Hash*
-Hash_dump(Hash *self) {
- Hash *dump = Hash_new(self->size);
- Obj *key;
- Obj *value;
-
- Hash_Iterate(self);
- while (Hash_Next(self, &key, &value)) {
- // Since JSON only supports text hash keys, Dump() can only support
- // text hash keys.
- CERTIFY(key, CHARBUF);
- Hash_Store(dump, key, Obj_Dump(value));
- }
-
- return dump;
-}
-
-Obj*
-Hash_load(Hash *self, Obj *dump) {
- Hash *source = (Hash*)CERTIFY(dump, HASH);
- CharBuf *class_name = (CharBuf*)Hash_Fetch_Str(source, "_class", 6);
- UNUSED_VAR(self);
-
- // Assume that the presence of the "_class" key paired with a valid class
- // name indicates the output of a Dump rather than an ordinary Hash. */
- if (class_name && CB_Is_A(class_name, CHARBUF)) {
- VTable *vtable = VTable_fetch_vtable(class_name);
-
- if (!vtable) {
- CharBuf *parent_class = VTable_find_parent_class(class_name);
- if (parent_class) {
- VTable *parent = VTable_singleton(parent_class, NULL);
- vtable = VTable_singleton(class_name, parent);
- DECREF(parent_class);
- }
- else {
- // TODO: Fix Hash_Load() so that it works with ordinary hash
- // keys named "_class".
- THROW(ERR, "Can't find class '%o'", class_name);
- }
- }
-
- // Dispatch to an alternate Load() method.
- if (vtable) {
- Obj_Load_t load = METHOD_PTR(vtable, Cfish_Obj_Load);
- if (load == Obj_load) {
- THROW(ERR, "Abstract method Load() not defined for %o",
- VTable_Get_Name(vtable));
- }
- else if (load != (Obj_Load_t)Hash_load) { // stop inf loop
- Obj *dummy = VTable_Make_Obj(vtable);
- Obj *loaded = Obj_Load(dummy, dump);
- DECREF(dummy);
- return loaded;
- }
- }
- }
-
- // It's an ordinary Hash.
- Hash *loaded = Hash_new(source->size);
- Obj *key;
- Obj *value;
- Hash_Iterate(source);
- while (Hash_Next(source, &key, &value)) {
- Hash_Store(loaded, key, Obj_Load(value, value));
- }
-
- return (Obj*)loaded;
-
-}
-
void
Hash_clear(Hash *self) {
HashEntry *entry = (HashEntry*)self->entries;
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/core/Clownfish/Hash.cfh
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/Hash.cfh b/clownfish/runtime/core/Clownfish/Hash.cfh
index 6397368..397cc2d 100644
--- a/clownfish/runtime/core/Clownfish/Hash.cfh
+++ b/clownfish/runtime/core/Clownfish/Hash.cfh
@@ -133,12 +133,6 @@ class Clownfish::Hash inherits Clownfish::Obj {
public bool
Equals(Hash *self, Obj *other);
- public incremented Hash*
- Dump(Hash *self);
-
- public incremented Obj*
- Load(Hash *self, Obj *dump);
-
public void
Destroy(Hash *self);
}
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/core/Clownfish/Obj.c
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/Obj.c b/clownfish/runtime/core/Clownfish/Obj.c
index f8f6e2d..b8a230a 100644
--- a/clownfish/runtime/core/Clownfish/Obj.c
+++ b/clownfish/runtime/core/Clownfish/Obj.c
@@ -87,11 +87,6 @@ Obj_to_bool(Obj *self) {
return !!Obj_To_I64(self);
}
-Obj*
-Obj_dump(Obj *self) {
- return (Obj*)Obj_To_String(self);
-}
-
VTable*
Obj_get_vtable(Obj *self) {
return self->vtable;
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/core/Clownfish/Obj.cfh
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/Obj.cfh b/clownfish/runtime/core/Clownfish/Obj.cfh
index 17c39c5..09818bf 100644
--- a/clownfish/runtime/core/Clownfish/Obj.cfh
+++ b/clownfish/runtime/core/Clownfish/Obj.cfh
@@ -152,21 +152,6 @@ public class Clownfish::Obj {
public bool
To_Bool(Obj *self);
- /** Return a representation of the object using only scalars, hashes, and
- * arrays. Some implementations support JSON serialization via Dump() and
- * its companion method, Load(); for others, Dump() is only a debugging
- * aid. The default simply calls To_String().
- */
- public incremented Obj*
- Dump(Obj *self);
-
- /** Create an object from the output of a call to Dump().
- *
- * @param dump The output of Dump().
- */
- public abstract incremented Obj*
- Load(Obj *self, Obj *dump);
-
/** Update the internal state of the object to mimic that of
* <code>other</code>.
*/
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/core/Clownfish/Test/TestHash.c
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/Test/TestHash.c b/clownfish/runtime/core/Clownfish/Test/TestHash.c
index f71203e..abd7617 100644
--- a/clownfish/runtime/core/Clownfish/Test/TestHash.c
+++ b/clownfish/runtime/core/Clownfish/Test/TestHash.c
@@ -183,38 +183,6 @@ test_Keys_Values_Iter(TestBatchRunner *runner) {
}
static void
-test_Dump_and_Load(TestBatchRunner *runner) {
- Hash *hash = Hash_new(0);
- Obj *dump;
- Hash *loaded;
-
- Hash_Store_Str(hash, "foo", 3,
- (Obj*)CB_new_from_trusted_utf8("foo", 3));
- dump = (Obj*)Hash_Dump(hash);
- loaded = (Hash*)Obj_Load(dump, dump);
- TEST_TRUE(runner, Hash_Equals(hash, (Obj*)loaded),
- "Dump => Load round trip");
- DECREF(dump);
- DECREF(loaded);
-
- /* TODO: Fix Hash_Load().
-
- Hash_Store_Str(hash, "_class", 6,
- (Obj*)CB_new_from_trusted_utf8("not_a_class", 11));
- dump = (Obj*)Hash_Dump(hash);
- loaded = (Hash*)Obj_Load(dump, dump);
-
- TEST_TRUE(runner, Hash_Equals(hash, (Obj*)loaded),
- "Load still works with _class if it's not a real class");
- DECREF(dump);
- DECREF(loaded);
-
- */
-
- DECREF(hash);
-}
-
-static void
test_stress(TestBatchRunner *runner) {
Hash *hash = Hash_new(0); // trigger multiple rebuilds.
VArray *expected = VA_new(1000);
@@ -254,12 +222,11 @@ test_stress(TestBatchRunner *runner) {
void
TestHash_run(TestHash *self, TestBatchRunner *runner) {
- TestBatchRunner_Plan(runner, (TestBatch*)self, 28);
+ TestBatchRunner_Plan(runner, (TestBatch*)self, 27);
srand((unsigned int)time((time_t*)NULL));
test_Equals(runner);
test_Store_and_Fetch(runner);
test_Keys_Values_Iter(runner);
- test_Dump_and_Load(runner);
test_stress(runner);
}
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/core/Clownfish/Test/TestObj.c
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/Test/TestObj.c b/clownfish/runtime/core/Clownfish/Test/TestObj.c
index f1d6d90..4ca121a 100644
--- a/clownfish/runtime/core/Clownfish/Test/TestObj.c
+++ b/clownfish/runtime/core/Clownfish/Test/TestObj.c
@@ -76,18 +76,6 @@ test_To_String(TestBatchRunner *runner) {
}
static void
-test_Dump(TestBatchRunner *runner) {
- Obj *testobj = S_new_testobj();
- CharBuf *string = Obj_To_String(testobj);
- Obj *dump = Obj_Dump(testobj);
- TEST_TRUE(runner, Obj_Equals(dump, (Obj*)string),
- "Default Dump returns To_String");
- DECREF(dump);
- DECREF(string);
- DECREF(testobj);
-}
-
-static void
test_Equals(TestBatchRunner *runner) {
Obj *testobj = S_new_testobj();
Obj *other = S_new_testobj();
@@ -157,11 +145,6 @@ S_attempt_To_F64(void *context) {
}
static void
-S_attempt_Load(void *context) {
- Obj_Load((Obj*)context, (Obj*)context);
-}
-
-static void
S_attempt_Mimic(void *context) {
Obj_Mimic((Obj*)context, (Obj*)context);
}
@@ -190,17 +173,15 @@ test_abstract_routines(TestBatchRunner *runner) {
S_verify_abstract_error(runner, S_attempt_Compare_To, obj, "Compare_To");
S_verify_abstract_error(runner, S_attempt_To_I64, obj, "To_I64");
S_verify_abstract_error(runner, S_attempt_To_F64, obj, "To_F64");
- S_verify_abstract_error(runner, S_attempt_Load, obj, "Load");
S_verify_abstract_error(runner, S_attempt_Mimic, obj, "Mimic");
DECREF(obj);
}
void
TestObj_run(TestObj *self, TestBatchRunner *runner) {
- TestBatchRunner_Plan(runner, (TestBatch*)self, 20);
+ TestBatchRunner_Plan(runner, (TestBatch*)self, 18);
test_refcounts(runner);
test_To_String(runner);
- test_Dump(runner);
test_Equals(runner);
test_Hash_Sum(runner);
test_Is_A(runner);
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/core/Clownfish/Test/TestVArray.c
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/Test/TestVArray.c b/clownfish/runtime/core/Clownfish/Test/TestVArray.c
index b012d7c..802388a 100644
--- a/clownfish/runtime/core/Clownfish/Test/TestVArray.c
+++ b/clownfish/runtime/core/Clownfish/Test/TestVArray.c
@@ -298,26 +298,9 @@ test_Clone_and_Shallow_Copy(TestBatchRunner *runner) {
DECREF(twin);
}
-static void
-test_Dump_and_Load(TestBatchRunner *runner) {
- VArray *array = VA_new(0);
- Obj *dump;
- VArray *loaded;
-
- VA_Push(array, (Obj*)S_new_cb("foo"));
- dump = (Obj*)VA_Dump(array);
- loaded = (VArray*)Obj_Load(dump, dump);
- TEST_TRUE(runner, VA_Equals(array, (Obj*)loaded),
- "Dump => Load round trip");
-
- DECREF(array);
- DECREF(dump);
- DECREF(loaded);
-}
-
void
TestVArray_run(TestVArray *self, TestBatchRunner *runner) {
- TestBatchRunner_Plan(runner, (TestBatch*)self, 44);
+ TestBatchRunner_Plan(runner, (TestBatch*)self, 43);
test_Equals(runner);
test_Store_Fetch(runner);
test_Push_Pop_Shift_Unshift(runner);
@@ -327,7 +310,6 @@ TestVArray_run(TestVArray *self, TestBatchRunner *runner) {
test_Push_VArray(runner);
test_Slice(runner);
test_Clone_and_Shallow_Copy(runner);
- test_Dump_and_Load(runner);
}
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/core/Clownfish/VArray.c
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/VArray.c b/clownfish/runtime/core/Clownfish/VArray.c
index 2370eb9..abe65f9 100644
--- a/clownfish/runtime/core/Clownfish/VArray.c
+++ b/clownfish/runtime/core/Clownfish/VArray.c
@@ -62,32 +62,6 @@ VA_destroy(VArray *self) {
}
VArray*
-VA_dump(VArray *self) {
- VArray *dump = VA_new(self->size);
- for (uint32_t i = 0, max = self->size; i < max; i++) {
- Obj *elem = VA_Fetch(self, i);
- if (elem) { VA_Store(dump, i, Obj_Dump(elem)); }
- }
- return dump;
-}
-
-VArray*
-VA_load(VArray *self, Obj *dump) {
- VArray *source = (VArray*)CERTIFY(dump, VARRAY);
- VArray *loaded = VA_new(source->size);
- UNUSED_VAR(self);
-
- for (uint32_t i = 0, max = source->size; i < max; i++) {
- Obj *elem_dump = VA_Fetch(source, i);
- if (elem_dump) {
- VA_Store(loaded, i, Obj_Load(elem_dump, elem_dump));
- }
- }
-
- return loaded;
-}
-
-VArray*
VA_clone(VArray *self) {
VArray *twin = VA_new(self->size);
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/core/Clownfish/VArray.cfh
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/VArray.cfh b/clownfish/runtime/core/Clownfish/VArray.cfh
index f171a7b..e287bc7 100644
--- a/clownfish/runtime/core/Clownfish/VArray.cfh
+++ b/clownfish/runtime/core/Clownfish/VArray.cfh
@@ -162,12 +162,6 @@ class Clownfish::VArray cnick VA inherits Clownfish::Obj {
public bool
Equals(VArray *self, Obj *other);
- public incremented VArray*
- Dump(VArray *self);
-
- public incremented VArray*
- Load(VArray *self, Obj *dump);
-
public void
Destroy(VArray *self);
}
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/perl/buildlib/Clownfish/Build/Binding.pm
----------------------------------------------------------------------
diff --git a/clownfish/runtime/perl/buildlib/Clownfish/Build/Binding.pm b/clownfish/runtime/perl/buildlib/Clownfish/Build/Binding.pm
index 66fa118..890aed3 100644
--- a/clownfish/runtime/perl/buildlib/Clownfish/Build/Binding.pm
+++ b/clownfish/runtime/perl/buildlib/Clownfish/Build/Binding.pm
@@ -384,8 +384,6 @@ sub bind_obj {
To_I64
To_F64
Equals
- Dump
- Load
);
my @hand_rolled = qw(
Is_A
@@ -497,7 +495,6 @@ END_XS_CODE
parcel => "Clownfish",
class_name => "Clownfish::Obj",
);
- $binding->bind_method( alias => '_load', method => 'Load' );
$binding->exclude_method($_) for @hand_rolled;
$binding->append_xs($xs_code);
$binding->set_pod_spec($pod_spec);
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/clownfish/runtime/perl/lib/Clownfish.pm
----------------------------------------------------------------------
diff --git a/clownfish/runtime/perl/lib/Clownfish.pm b/clownfish/runtime/perl/lib/Clownfish.pm
index 7d6356e..a15c420 100644
--- a/clownfish/runtime/perl/lib/Clownfish.pm
+++ b/clownfish/runtime/perl/lib/Clownfish.pm
@@ -86,7 +86,6 @@ sub error {$Clownfish::Err::error}
our $VERSION = '0.003000';
$VERSION = eval $VERSION;
use Clownfish qw( to_clownfish to_perl );
- sub load { return $_[0]->_load( to_clownfish( $_[1] ) ) }
}
{
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/core/Lucy/Plan/FieldType.cfh
----------------------------------------------------------------------
diff --git a/core/Lucy/Plan/FieldType.cfh b/core/Lucy/Plan/FieldType.cfh
index bad2186..1581928 100644
--- a/core/Lucy/Plan/FieldType.cfh
+++ b/core/Lucy/Plan/FieldType.cfh
@@ -159,6 +159,12 @@ public abstract class Lucy::Plan::FieldType cnick FType
abstract incremented Hash*
Dump_For_Schema(FieldType *self);
+ public abstract incremented Obj*
+ Dump(FieldType *self);
+
+ public abstract incremented Obj*
+ Load(FieldType *self, Obj *dump);
+
/** Compares all common properties.
*/
public bool
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/perl/buildlib/Lucy/Build/Binding/Analysis.pm
----------------------------------------------------------------------
diff --git a/perl/buildlib/Lucy/Build/Binding/Analysis.pm b/perl/buildlib/Lucy/Build/Binding/Analysis.pm
index 981041c..42dc232 100644
--- a/perl/buildlib/Lucy/Build/Binding/Analysis.pm
+++ b/perl/buildlib/Lucy/Build/Binding/Analysis.pm
@@ -42,6 +42,10 @@ sub bind_analyzer {
parcel => "Lucy",
class_name => "Lucy::Analysis::Analyzer",
);
+ $binding->bind_method(
+ alias => '_load',
+ method => 'Load',
+ );
$binding->set_pod_spec($pod_spec);
Clownfish::CFC::Binding::Perl::Class->register($binding);
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/perl/buildlib/Lucy/Build/Binding/Document.pm
----------------------------------------------------------------------
diff --git a/perl/buildlib/Lucy/Build/Binding/Document.pm b/perl/buildlib/Lucy/Build/Binding/Document.pm
index 94706b4..8fc4cbf 100644
--- a/perl/buildlib/Lucy/Build/Binding/Document.pm
+++ b/perl/buildlib/Lucy/Build/Binding/Document.pm
@@ -106,6 +106,10 @@ END_XS_CODE
class_name => "Lucy::Document::Doc",
);
$binding->append_xs($xs_code);
+ $binding->bind_method(
+ alias => '_load',
+ method => 'Load',
+ );
$binding->exclude_method($_) for @hand_rolled;
$binding->exclude_constructor;
$binding->set_pod_spec($pod_spec);
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/perl/buildlib/Lucy/Build/Binding/Index.pm
----------------------------------------------------------------------
diff --git a/perl/buildlib/Lucy/Build/Binding/Index.pm b/perl/buildlib/Lucy/Build/Binding/Index.pm
index 71913b1..56475a8 100644
--- a/perl/buildlib/Lucy/Build/Binding/Index.pm
+++ b/perl/buildlib/Lucy/Build/Binding/Index.pm
@@ -1054,6 +1054,10 @@ END_XS_CODE
parcel => "Lucy",
class_name => "Lucy::Index::Similarity",
);
+ $binding->bind_method(
+ alias => '_load',
+ method => 'Load',
+ );
$binding->exclude_method($_) for @hand_rolled;
$binding->append_xs($xs_code);
$binding->set_pod_spec($pod_spec);
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/perl/buildlib/Lucy/Build/Binding/Plan.pm
----------------------------------------------------------------------
diff --git a/perl/buildlib/Lucy/Build/Binding/Plan.pm b/perl/buildlib/Lucy/Build/Binding/Plan.pm
index 86a3b79..c5581a1 100644
--- a/perl/buildlib/Lucy/Build/Binding/Plan.pm
+++ b/perl/buildlib/Lucy/Build/Binding/Plan.pm
@@ -151,6 +151,10 @@ END_SYNOPSIS
class_name => "Lucy::Plan::FieldType",
);
$binding->bind_constructor( alias => 'new', initializer => 'init2' );
+ $binding->bind_method(
+ alias => '_load',
+ method => 'Load',
+ );
$binding->set_pod_spec($pod_spec);
$binding->add_class_alias("KinoSearch::Plan::FieldType");
$binding->add_class_alias("KinoSearch::FieldType");
@@ -277,6 +281,10 @@ END_CONSTRUCTOR
parcel => "Lucy",
class_name => "Lucy::Plan::Schema",
);
+ $binding->bind_method(
+ alias => '_load',
+ method => 'Load',
+ );
$binding->set_pod_spec($pod_spec);
$binding->add_class_alias("KinoSearch::Plan::Schema");
$binding->add_class_alias("KinoSearch::Schema");
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/perl/buildlib/Lucy/Build/Binding/Search.pm
----------------------------------------------------------------------
diff --git a/perl/buildlib/Lucy/Build/Binding/Search.pm b/perl/buildlib/Lucy/Build/Binding/Search.pm
index af63475..445075a 100644
--- a/perl/buildlib/Lucy/Build/Binding/Search.pm
+++ b/perl/buildlib/Lucy/Build/Binding/Search.pm
@@ -708,6 +708,10 @@ END_CONSTRUCTOR_CODE_SAMPLE
alias => '_make_compiler',
method => 'Make_Compiler',
);
+ $binding->bind_method(
+ alias => '_load',
+ method => 'Load',
+ );
$binding->set_pod_spec($pod_spec);
Clownfish::CFC::Binding::Perl::Class->register($binding);
http://git-wip-us.apache.org/repos/asf/lucy/blob/3c3bbaae/perl/lib/Lucy.pm
----------------------------------------------------------------------
diff --git a/perl/lib/Lucy.pm b/perl/lib/Lucy.pm
index 4b1e4b3..2a6f371 100644
--- a/perl/lib/Lucy.pm
+++ b/perl/lib/Lucy.pm
@@ -29,9 +29,14 @@ BEGIN {
our @EXPORT_OK = qw(
STORABLE_freeze
STORABLE_thaw
+ load
);
}
+sub load {
+ return $_[0]->_load( to_clownfish( $_[1] ) );
+}
+
# On most UNIX variants, this flag makes DynaLoader pass RTLD_GLOBAL to
# dl_open, so extensions can resolve the needed symbols without explicitly
# linking against the DSO.
@@ -65,6 +70,13 @@ BEGIN {
}
{
+ package Lucy::Analysis::Analyzer;
+ our $VERSION = '0.003000';
+ $VERSION = eval $VERSION;
+ use Lucy qw( load );
+}
+
+{
package Lucy::Analysis::RegexTokenizer;
our $VERSION = '0.003000';
$VERSION = eval $VERSION;
@@ -84,7 +96,7 @@ BEGIN {
our $VERSION = '0.003000';
$VERSION = eval $VERSION;
use Storable (); # Needed by serialize/deserialize.
- use Lucy qw( STORABLE_freeze STORABLE_thaw );
+ use Lucy qw( STORABLE_freeze STORABLE_thaw load );
use overload
fallback => 1,
@@ -166,7 +178,7 @@ BEGIN {
package Lucy::Index::Similarity;
our $VERSION = '0.003000';
$VERSION = eval $VERSION;
- use Lucy qw( STORABLE_freeze STORABLE_thaw );
+ use Lucy qw( STORABLE_freeze STORABLE_thaw load );
}
{
@@ -196,6 +208,20 @@ BEGIN {
}
{
+ package Lucy::Plan::FieldType;
+ our $VERSION = '0.003000';
+ $VERSION = eval $VERSION;
+ use Lucy qw( load );
+}
+
+{
+ package Lucy::Plan::Schema;
+ our $VERSION = '0.003000';
+ $VERSION = eval $VERSION;
+ use Lucy qw( load );
+}
+
+{
package Lucy::Search::MatchDoc;
our $VERSION = '0.003000';
$VERSION = eval $VERSION;
@@ -206,7 +232,7 @@ BEGIN {
package Lucy::Search::Query;
our $VERSION = '0.003000';
$VERSION = eval $VERSION;
- use Lucy qw( STORABLE_freeze STORABLE_thaw );
+ use Lucy qw( STORABLE_freeze STORABLE_thaw load );
sub make_compiler {
my ( $self, %args ) = @_;