Age | Commit message (Collapse) | Author |
|
* xapian.i.in (GuileXapianRangeProcessorWrapper): New class.
* xapian/xapian.scm (prefixed-range-processor,
suffixed-range-processor): New public functions.
|
|
* xapian/xapian.scm (query): New public function.
|
|
* xapian.i.in (GuileXapianFieldProcessorWrapper): New class.
* xapian/xapian.scm (field-processor): New public function.
|
|
* .guix/guile-xapian-package.scm: Import emacs-minimal from (gnu
packages emacs), %guile-build-system-modules from (guix build-system
guile), and (guix profiles).
(guile-xapian-website-gexp, guile-xapian-website): New variables.
|
|
* xapian/xapian.scm (mset-sxml-snippet): Consistently written list
from inner lambda.
|
|
* xapian/xapian.scm (mset-sxml-snippet): Reorder arguments passed to
mset-snippet.
|
|
With "..", the git-predicate fails and filters nothing.
* .guix/guile-xapian-package.scm (guile-xapian,
guile2.2-xapian)[source]: Use current-source-directory in
git-predicate.
|
|
* .guix/guile-xapian-package.scm (guile-xapian,
guile2.2-xapian)[source]: Name source checkout.
|
|
Guix channel builds don't play well with current-source-directory.
* .guix/guile-xapian-package.scm (guile-xapian,
guile2.2-xapian)[source]: Use ".." instead of dirname and
current-source-directory. Add constant function as fallback for git
predicate.
|
|
* .guix-authorizations, .guix-channel: New files.
* guix.scm: Convert to a symlink pointing to
.guix/guile-xapian-package.scm. Move original there.
* .guix/guile-xapian-package.scm: Convert into a module with public
packages.
|
|
* NEWS (Changes in 0.3.1): New section.
* configure.ac: Bump to version 0.3.1.
|
|
* Makefile.am (EXTRA_DIST): Add except.i.
|
|
* configure.ac: Check for guile module (htmlprag).
|
|
* guix.scm: Import (guix gexp). Do not import (gnu packages
autotools).
|
|
* guix.scm: Add 2022 to Arun Isaac's copyright header.
|
|
Uncaught C++ exceptions crash the guile process without providing
scheme code any opportunity to respond.
* except.i, xapian/error.scm: New files.
* xapian.i.in: Include except.i.
* Makefile.am (SOURCES): Add xapian/error.scm.
(xapian_wrap.cc xapian/wrap.scm &): Depend on except.i.
|
|
* configure.ac: Bump to version 0.3.0.
* NEWS (Changes in 0.3.0): New section.
|
|
* xapian/xapian.scm (index-text!): Add positions? argument.
|
|
* xapian/xapian.scm (index-text!): Explicitly specify default prefix.
|
|
* xapian/xapian.scm (index-text!): Add docstring.
|
|
* xapian/xapian.scm: Import (srfi srfi-1).
(query-combine): New function.
(query-and, query-or, query-filter): New public functions.
|
|
* xapian/xapian.scm: Import (htmlprag).
(mset-sxml-snippet): New public function.
|
|
* xapian/xapian.scm (mset-snippet): Add docstring.
|
|
* configure.ac: Bump to version 0.2.1.
* NEWS (Changes in 0.2.1): New section.
|
|
We need to distinguish between libguilexapian built for different
versions of Guile.
* Makefile.am (lib_LTLIBRARIES): Replace libguilexapian.la with
libguilexapian-@GUILE_EFFECTIVE_VERSION@.la.
(libguilexapian_la_SOURCES): Rename to
libguilexapian_@GUILE_EFFECTIVE_VERSION@_la_SOURCES.
(libguilexapian_la_CXXFLAGS): Rename to
libguilexapian_@GUILE_EFFECTIVE_VERSION@_la_CXXFLAGS.
(libguilexapian_la_LDFLAGS): Rename to
libguilexapian_@GUILE_EFFECTIVE_VERSION@_la_LDFLAGS.
(xapian.i): Substitute @GUILE_EFFECTIVE_VERSION@.
(xapian/xapian.go): Depend on
libguilexapian-@GUILE_EFFECTIVE_VERSION@.la instead of
libguilexapian.la.
* xapian.i.in: Load libguilexapian-@GUILE_EFFECTIVE_VERSION@.la
instead of libguilexapian.la.
|
|
* configure.ac: Bump to version 0.2.0.
* NEWS: New file.
|
|
* Makefile.am (xapian_wrap.cc xapian/wrap.scm &): Add -I$(srcdir) to
swig invocation.
|
|
* Makefile.am (BUILT_SOURCES, CLEANFILES): Add xapian/wrap.scm.
(xapian/wrap.scm): Group with target xapian_wrap.cc.
|
|
* Makefile.am (xapian_wrap.scm): Rename to xapian/wrap.scm.
|
|
* Makefile.am (EXTRA_DIST): Add xapian.i.in, xapian-head.i and
xapian-headers.i.
|
|
* xapian/xapian.scm (make-document): Call document-slot-set!
regardless of slot value type.
(document-slot-set!): Accept bytevector slot values.
(document-slot-set-bytes!): Deprecate.
|
|
* xapian/xapian.scm (make-document): Call document-set-data!
regardless of data type.
(document-set-data!): Accept bytevector data.
(document-set-bytes!): Deprecate.
|
|
* README.org (Usage), guix.scm: Recommend guix shell instead of guix
environment.
|
|
* README.org (Contributors): Thank Ludovic Courtès for bug report.
|
|
* guix.scm (guile-xapian)[native-inputs]: Do not override.
|
|
* guix.scm: Import (guix gexp), (guix git-download) and (guix
packages).
(%source-dir): New variable.
(guile-xapian)[source]: Set to source from current directory.
|
|
Guile >= 3.0.6 does not use libltdl. So we need to look for
libguilexapian.so explicitly under .libs.
* pre-inst-env.in (LD_LIBRARY_PATH): Set to $abs_top_builddir/.libs.
|
|
* Makefile.am (CLEANFILES): Add xapian.i and xapian_wrap.cc
|
|
Suffix rules are deprecated.
* Makefile.am (SUFFIXES): Delete variable.
(.scm.go): Delete rule.
(%.go): New rule.
|
|
* Makefile.am (SWIG_GEN, SWIG_GEN_, SWIG_GEN_0, SWIG_GEN_1): New
variables.
(xapian_wrap.cc): Silence with SWIG_GEN.
|
|
* Makefile.am (GUILD_GEN, GUILD_GEN_, GUILD_GEN_0, GUILD_GEN_1): New
variables.
(.scm.go): Use GUILD_GEN instead of AM_V_GEN.
|
|
* README.org (Contributors): New section.
|
|
This commit adds tests to smoke-test document methods dealing with
bytevectors.
* tests/xapian.scm ("document-data fails to decode binary data",
"document-bytes reads binary data correctly", "document-slot-ref fails
to decode binary value", "document-slot-ref-bytes reads binary value
correctly"): New tests.
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
|
|
* xapian/xapian.scm (document-set-data!, document-set-bytes!,
document-slot-set!, document-slot-set-bytes!): New functions.
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
|
|
* xapian/xapian.scm (make-document): Support setting document values
and body from bytevectors.
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
|
|
* xapian/xapian.scm (document-slot-ref-bytes): New function.
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
|
|
The current implementation of document-bytes involves converting the
document data string into a list of characters, mapping over the
result with char->integer and passing the list of integers to
u8-list->integer. This is quite an expensive operation (relative to
what the user might expect), and may not reliably return a result if
the document data couldn't be decoded as a UTF-8 string in the first
place.
Now that we have SWIG wrappers that return bytevectors directly, we
can redefine document-bytes as an alias of Document-get-data-bytes.
* xapian/xapian.scm (document-bytes): Redefine function in terms of
Document-get-data-bytes.
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
|
|
Several Xapian methods use `std::string' to represent opaque binary
blobs. SWIG treats these as UTF-8 strings and converts them to an SCM
representation via `scm_from_utf8_string', which will throw an error
if the input is not valid UTF-8.
This commit updates the SWIG interface file to add wrappers taking or
returning bytevectors instead of strings for Xapian methods dealing
with document values and bodies.
* xapian.i.in (SWIG_bytevector, typemap_in_SWIG_bytevector,
typemap_out_SWIG_bytevector): Add machinery for defining
bytevector-variant wrappers of existing methods taking or returning
std::string.
* (Xapian::ValueIterator::get_value_bytes,
Xapian::Document::get_value_bytes, Xapian::Document::add_value_bytes,
Xapian::Document::get_data_bytes, Xapian::Document::set_data_bytes,
Xapian::Database::get_metadata_bytes,
Xapian::WritableDatabase::set_metadata_bytes,
Xapian::Query::Query): Add bytevector variants of methods.
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
|
|
* tests/xapian.scm: New file.
* build-aux/test-driver.scm.in: New file.
* configure.ac: Configure build-aux/test-driver.scm.
* .gitignore: Add build-aux/test-driver.scm, tests/*.log and
tests/*.trs.
* Makefile.am (EXTRA_DIST): Add TESTS.
(TEST_EXTENSIONS, SCM_TESTS, TESTS, SCM_LOG_DRIVER): New variables.
|
|
* xapian/xapian.scm (call-with-in-memory-database): New public
function.
|