]> mj.ucw.cz Git - libucw.git/log
libucw.git
21 years agoAdded prefetch functions.
Martin Mares [Fri, 13 Jun 2003 21:13:51 +0000 (21:13 +0000)]
Added prefetch functions.

21 years agoASSERT is unlikely.
Martin Mares [Thu, 12 Jun 2003 21:37:13 +0000 (21:37 +0000)]
ASSERT is unlikely.

21 years agoAdded macros for hinting branch predictor.
Martin Mares [Thu, 12 Jun 2003 21:36:57 +0000 (21:36 +0000)]
Added macros for hinting branch predictor.

21 years agoAdded mapping of URL keys according to the prefix equivalence table.
Martin Mares [Wed, 11 Jun 2003 16:11:38 +0000 (16:11 +0000)]
Added mapping of URL keys according to the prefix equivalence table.

21 years agoFunctions working with tagged characters moved from index.h to a new
Martin Mares [Wed, 11 Jun 2003 13:50:09 +0000 (13:50 +0000)]
Functions working with tagged characters moved from index.h to a new
header file tagged-text.h. This also revealed a couple of unintentional
indirect includes.

21 years agoSplit URL fingerprinting inside indexer from the other fingerprints.
Martin Mares [Wed, 11 Jun 2003 13:26:04 +0000 (13:26 +0000)]
Split URL fingerprinting inside indexer from the other fingerprints.
URL fingerprints will include server equivalence mappings and other
such hacks (for now the "www." hack), the other fingerprints (used
e.g. for hashing of strings in the index) won't.

21 years agoOops, the hash function for fingerprints was terribly biased. There should
Martin Mares [Wed, 11 Jun 2003 13:03:30 +0000 (13:03 +0000)]
Oops, the hash function for fingerprints was terribly biased. There should
be XOR, not OR. Also, the shifts are meaningless, because the fingerprint
hash is believed to be very well distributed.

Beware, this means that the current mainline is incompatible with string
indices generated by v2.4!  For now, I'm not increasing the index version,
because word matching still works with old indices and I want to profile it.

21 years agobugfix found by gcc-3.3
Robert Spalek [Sun, 8 Jun 2003 18:03:34 +0000 (18:03 +0000)]
bugfix found by gcc-3.3

21 years agoMake sherlockd calculate per-filetype number of matched documents, including
Martin Mares [Wed, 4 Jun 2003 19:31:10 +0000 (19:31 +0000)]
Make sherlockd calculate per-filetype number of matched documents, including
those failing the FILETYPE filter. This breaks the nice abstraction of hiding
all filtering under EXTENDED_ATTRS, but it will allow us to get rid of lots
of STATS queries.

21 years agoStarted v2.5.
Martin Mares [Fri, 30 May 2003 18:57:55 +0000 (18:57 +0000)]
Started v2.5.

21 years agoAdded a new card flag for cards in giant classes. Don't index selected meta
Martin Mares [Sun, 13 Apr 2003 18:12:39 +0000 (18:12 +0000)]
Added a new card flag for cards in giant classes. Don't index selected meta
types in such cards.

21 years agoAdded a new PURE attribute which means "this function can read global variables,
Martin Mares [Fri, 11 Apr 2003 17:04:02 +0000 (17:04 +0000)]
Added a new PURE attribute which means "this function can read global variables,
but it doesn't have any side effects" as opposed to CONST which promises
that no global variables will be touched.

21 years agodocumentation fixed
Robert Spalek [Fri, 28 Mar 2003 12:50:19 +0000 (12:50 +0000)]
documentation fixed

21 years agoAdded functions for moving attributes in the chain.
Martin Mares [Wed, 26 Mar 2003 20:03:40 +0000 (20:03 +0000)]
Added functions for moving attributes in the chain.

21 years agoIf the search server connection dies prematurely, give the right error
Martin Mares [Tue, 25 Mar 2003 21:38:46 +0000 (21:38 +0000)]
If the search server connection dies prematurely, give the right error
message instead of referencing an undefined variable.

21 years agoReplaced various nesting heuristics by proper parsing of parenthesized blocks.
Martin Mares [Tue, 25 Mar 2003 21:33:11 +0000 (21:33 +0000)]
Replaced various nesting heuristics by proper parsing of parenthesized blocks.
Also noted that "E" is now multi-valued.

21 years agoOne more parameters change.
Martin Mares [Tue, 25 Mar 2003 21:05:01 +0000 (21:05 +0000)]
One more parameters change.

21 years agoMore changes to the custom attribute mechanism:
Martin Mares [Mon, 24 Mar 2003 18:24:37 +0000 (18:24 +0000)]
More changes to the custom attribute mechanism:

o  Introduced the concept of extended attributes which consist of the
   custom attributes and some internally defined attributes handled
   in the same way.
o  FILETYPE and LANG are now extended attributes and they don't depend
   on the customization module. This is probably much cleaner as it
   reduces the overlap between custom parts and generic parts.
o  No problems with linking liblang because of LANG attribute.
o  idxdump got simplified.

21 years agoCreate local copy of program name to be printed in log messages
Martin Mares [Sat, 22 Mar 2003 20:38:25 +0000 (20:38 +0000)]
Create local copy of program name to be printed in log messages
to avoid having it rewritten by setproctitle().

21 years agoBetter explanation of CARD_FLAG_FRAMESET.
Martin Mares [Sat, 8 Mar 2003 13:43:09 +0000 (13:43 +0000)]
Better explanation of CARD_FLAG_FRAMESET.

21 years agoIntroduced CARD_LANG_FRAMESET.
Martin Mares [Sat, 8 Mar 2003 12:18:08 +0000 (12:18 +0000)]
Introduced CARD_LANG_FRAMESET.

21 years agoFixed bug in bucket shakedown code: it crashed with a mysterious error message
Martin Mares [Wed, 5 Mar 2003 18:09:05 +0000 (18:09 +0000)]
Fixed bug in bucket shakedown code: it crashed with a mysterious error message
("Unexpected EOF") when there was a bucket larger than the shakedown buffer
and this included even deleted buckets (which was the cause of the latest crash
on sherlock5: shakedown on a corrupted database patched the corruption by
a large deleted bucket and when I ran it again, it crashed again due to this
bucket).

Now we are able to cope with deleted buckets of any size and when we
encounter an oversized non-deleted bucket, we bail out with a proper
error message.

21 years agoOh, those misleading comments...
Martin Mares [Sun, 2 Mar 2003 20:11:16 +0000 (20:11 +0000)]
Oh, those misleading comments...

21 years agoPut back the work-around for objects generated by an old version of the
Martin Mares [Fri, 28 Feb 2003 16:51:14 +0000 (16:51 +0000)]
Put back the work-around for objects generated by an old version of the
gatherer, because some of them still haven't expired from the db.
At least the work-around is cleaner this time.

21 years agoGet a list of config files explicitly, so that the Makefiles can decide
Martin Mares [Fri, 28 Feb 2003 15:56:26 +0000 (15:56 +0000)]
Get a list of config files explicitly, so that the Makefiles can decide
what will be installed and what won't.

Also added an exception for cf/catalog-rules which is an automatically
generated file and we install it only if it doesn't exist yet.

21 years agoChanged processing of configuration files.
Martin Mares [Fri, 28 Feb 2003 14:21:24 +0000 (14:21 +0000)]
Changed processing of configuration files.

run/cf is no longer a symlink to ../cf, I've replaced it by make
rules which generate the configuration files in run/cf by preprocessing
those in cf according to CONFIG_xxx switches in config.mk (in the same
way as we already do in mkdist).

I'd like to migrate many settings local to the Centrum configs to the
main CVS without having to update several separate copies of the config.

*** CAVEAT ***  After updating to this version, you need to either
make distclean or

rm run/cf
mkdir run/cf

manually _before_ running make, else could lose your config files.

21 years agoRenamed SHERLOCK_CONFIG_xxx to CONFIG_xxx to be consistent.
Martin Mares [Fri, 28 Feb 2003 14:03:51 +0000 (14:03 +0000)]
Renamed SHERLOCK_CONFIG_xxx to CONFIG_xxx to be consistent.

21 years agoAdded routines for easy dynamic creation of strings.
Martin Mares [Thu, 27 Feb 2003 17:35:19 +0000 (17:35 +0000)]
Added routines for easy dynamic creation of strings.

21 years agoWe already should announce ourselves as v2.4.
Martin Mares [Wed, 19 Feb 2003 08:51:30 +0000 (08:51 +0000)]
We already should announce ourselves as v2.4.

21 years agoa bug fixed, it reveals when you want to process the bucket-file more times
Robert Spalek [Fri, 14 Feb 2003 14:56:26 +0000 (14:56 +0000)]
a bug fixed, it reveals when you want to process the bucket-file more times

21 years agoSped up utf8_strlen(), introduced utf8_strnlen().
Martin Mares [Fri, 14 Feb 2003 09:27:35 +0000 (09:27 +0000)]
Sped up utf8_strlen(), introduced utf8_strnlen().

21 years agoadded utf8_strlen()
Robert Spalek [Thu, 13 Feb 2003 12:42:10 +0000 (12:42 +0000)]
added utf8_strlen()

21 years agoAdded (WORD|META)_TYPES_ALL_LANGS.
Martin Mares [Wed, 12 Feb 2003 20:52:42 +0000 (20:52 +0000)]
Added (WORD|META)_TYPES_ALL_LANGS.

21 years agoTried to use libm for calculating logarithmic frequencies of words,
Martin Mares [Wed, 5 Feb 2003 18:15:24 +0000 (18:15 +0000)]
Tried to use libm for calculating logarithmic frequencies of words,
but ran into problems with function name collisions. Damn the C's flat
namespace!

Renamed our log to log_msg, but keep the original name as a macro
expanding to the new one. Also renamed log2 (which is currently not used
anywhere) to fls (find last set, akin to ffs).

Introduced lib/math.h which is a wrapper around <math.h> handling
name collisions by clever macro tricks.

21 years agoOne more #fix.
Martin Mares [Wed, 5 Feb 2003 10:56:08 +0000 (10:56 +0000)]
One more #fix.

21 years agoRemember to use xfree().
Martin Mares [Mon, 3 Feb 2003 20:12:50 +0000 (20:12 +0000)]
Remember to use xfree().

21 years agoA stupid mistake. Former one.
Martin Mares [Sun, 2 Feb 2003 22:00:38 +0000 (22:00 +0000)]
A stupid mistake. Former one.

21 years agoAdded another version of bgets() which doesn't die on too long lines and
Martin Mares [Mon, 27 Jan 2003 13:49:10 +0000 (13:49 +0000)]
Added another version of bgets() which doesn't die on too long lines and
reports an error instead.

I wrote it originally for new http.c, but the required http.c changes were
going to be too extensive, so I postponed the changes and this function
is currently unused, but probably worth saving for the future.

Also optimized the existing bgets functions a bit.

21 years agoRemoved a FIXME: the page cache balancing is certainly not optimal, but it
Martin Mares [Mon, 27 Jan 2003 13:17:45 +0000 (13:17 +0000)]
Removed a FIXME: the page cache balancing is certainly not optimal, but it
deserves more extensive changes than just tuning of contstants.

21 years agoSplit word types and meta types also in the free version.
Martin Mares [Mon, 27 Jan 2003 13:06:54 +0000 (13:06 +0000)]
Split word types and meta types also in the free version.

21 years agoFixed off-by-one error.
Martin Mares [Sat, 25 Jan 2003 13:07:36 +0000 (13:07 +0000)]
Fixed off-by-one error.

21 years agoDefined MAX_ATTR_SIZE and added checks to obj_write() to enforce it.
Martin Mares [Fri, 24 Jan 2003 20:56:50 +0000 (20:56 +0000)]
Defined MAX_ATTR_SIZE and added checks to obj_write() to enforce it.

21 years agoDon't forget to update this one.
Martin Mares [Fri, 24 Jan 2003 19:21:30 +0000 (19:21 +0000)]
Don't forget to update this one.

21 years agoObject functions are numerous enough to deserve their own header file.
Martin Mares [Fri, 24 Jan 2003 18:06:39 +0000 (18:06 +0000)]
Object functions are numerous enough to deserve their own header file.

21 years agoAdded obj_write_nocheck which writes the object as quickly as possible,
Martin Mares [Wed, 22 Jan 2003 21:24:52 +0000 (21:24 +0000)]
Added obj_write_nocheck which writes the object as quickly as possible,
avoiding checks for strange chars which are probably useful only in the
gatherer anyway.

Some more cleanups.

21 years agoOBJ_POOL_SIZE no longer needed.
Martin Mares [Wed, 22 Jan 2003 18:40:37 +0000 (18:40 +0000)]
OBJ_POOL_SIZE no longer needed.

21 years agoOops, forgot this one.
Martin Mares [Wed, 22 Jan 2003 18:31:21 +0000 (18:31 +0000)]
Oops, forgot this one.

21 years agoObjects always live in somebody else's pool.
Martin Mares [Wed, 22 Jan 2003 18:30:13 +0000 (18:30 +0000)]
Objects always live in somebody else's pool.

obj_free and odes->local_pool are gone.

21 years agoThe changes were worth updating copyright :)
Martin Mares [Wed, 22 Jan 2003 18:17:38 +0000 (18:17 +0000)]
The changes were worth updating copyright :)

21 years agoReplaced various attempts to speed up use of obj_add_attr() by simple
Martin Mares [Wed, 22 Jan 2003 18:07:24 +0000 (18:07 +0000)]
Replaced various attempts to speed up use of obj_add_attr() by simple
internal caching: odes->cached_attr points to the last attribute added
and it's guaranteed to be the last in its chain.

Removed oattr->last_same, the gain isn't worth the extra complexity
involved.

21 years agoThe $(LIBxxx) mechanism proved useful, so I'm switching to it for all other
Martin Mares [Wed, 22 Jan 2003 15:51:03 +0000 (15:51 +0000)]
The $(LIBxxx) mechanism proved useful, so I'm switching to it for all other
libraries to simplify the Makefiles a bit. Unfortunately, this introduces
ugly ordering constraints on includes in top-level Makefile, but they can
be lived with.

21 years agoget_func comment was outdated.
Martin Mares [Wed, 22 Jan 2003 11:34:43 +0000 (11:34 +0000)]
get_func comment was outdated.

21 years agoMore configuration enhancements:
Martin Mares [Wed, 22 Jan 2003 11:23:19 +0000 (11:23 +0000)]
More configuration enhancements:

o  gatherer, indexer and search server can be left out, which can be useful
   when using Sherlock for indexing databases, because unusual custom.h
   with standard word types missing makes many gatherer modules uncompilable.
o  searching by document age is optional, you can switch it off to save
   index space.
o  indexing of file types is now partially supported by the default configuration,
   because I'm going to use the bottom 5 bits of the file_type (which were
   used only for images) for storing language code of text documents and
   it certainly isn't a centrum-specific thing. On the other hand, I'd like
   to keep the exact meaning of file type codes application specific, so the
   actual matching of file types is left in the customization header. Again,
   you can switch this off to save index space.

21 years agoMoved indexer/oook.c (the catalogue & keyword processor) to where it
Martin Mares [Wed, 22 Jan 2003 10:31:13 +0000 (10:31 +0000)]
Moved indexer/oook.c (the catalogue & keyword processor) to where it
belongs: among other centrum-specific modules.

Cleaned up custom rules in makefiles: instead of defining lots of variables
for custom modules, allowed config.mk to specify a custom submakefile.

21 years agoOops, a bug in the profiler, causing time travels :)
Martin Mares [Tue, 14 Jan 2003 20:26:44 +0000 (20:26 +0000)]
Oops, a bug in the profiler, causing time travels :)

21 years agoAdded functions for manipulating bit arrays. One day, an optimized
Martin Mares [Mon, 13 Jan 2003 21:28:04 +0000 (21:28 +0000)]
Added functions for manipulating bit arrays. One day, an optimized
version for i386 using bts instruction et al. will appear.

21 years agoMJ has forgotten to add ASORT_EXTRA_ARGS at the end of the sort procedure
Robert Spalek [Mon, 13 Jan 2003 10:14:15 +0000 (10:14 +0000)]
MJ has forgotten to add ASORT_EXTRA_ARGS at the end of the sort procedure
declaration

21 years agoAdded function for measuring bucket file size (as an oid) and used it
Martin Mares [Sun, 12 Jan 2003 17:36:53 +0000 (17:36 +0000)]
Added function for measuring bucket file size (as an oid) and used it
for better progress indicator in the scanner.

21 years agoImproved array sorter according to Robert's suggestions.
Martin Mares [Sun, 12 Jan 2003 14:11:04 +0000 (14:11 +0000)]
Improved array sorter according to Robert's suggestions.

21 years agoWhen killing dots at the end of host name, remove _all_ of them, not just
Martin Mares [Sun, 5 Jan 2003 11:32:02 +0000 (11:32 +0000)]
When killing dots at the end of host name, remove _all_ of them, not just
the last one. Without this, url_canonicalize on already believed to be
canonic names wasn't constant which causes havoc in gatherd.

21 years agoAdded generic array sorter.
Martin Mares [Sat, 4 Jan 2003 15:25:06 +0000 (15:25 +0000)]
Added generic array sorter.

Benchmark results on my K6/400MHz:
mj@albireo:~/src/sherlock/run$ bin/asort-test
qsort: 19209 ms
asort: 7544 ms

21 years agoLine buffers are back on their original sizes, closes Bug #251.
Martin Mares [Sat, 4 Jan 2003 13:56:46 +0000 (13:56 +0000)]
Line buffers are back on their original sizes, closes Bug #251.

21 years agoIn some cases, nextprime(x) could have been equal to x (reported by Milan).
Martin Mares [Mon, 18 Nov 2002 17:56:16 +0000 (17:56 +0000)]
In some cases, nextprime(x) could have been equal to x (reported by Milan).

21 years agoFixed a off-by-one error in vlog().
Martin Mares [Mon, 11 Nov 2002 16:54:22 +0000 (16:54 +0000)]
Fixed a off-by-one error in vlog().

22 years agoWT_LINK added into WORD_TYPES_META
Robert Spalek [Tue, 5 Nov 2002 11:54:40 +0000 (11:54 +0000)]
WT_LINK added into WORD_TYPES_META

22 years agoWorked around problems with "www.xyz.cz" and "xyz.cz" being considered identical
Martin Mares [Sun, 27 Oct 2002 20:06:47 +0000 (20:06 +0000)]
Worked around problems with "www.xyz.cz" and "xyz.cz" being considered identical
in the gatherer and different in the indexer by adding a hack to calculation
of fingerprints (we cannot afford calling filters for each fingerprint,
one of reasons being speed, another filters being unavailable in the search
server). Closes bug #302.

22 years agoRemoved xprintf() -- it was very ugly and its only raison d'etre was
Martin Mares [Sun, 27 Oct 2002 13:22:34 +0000 (13:22 +0000)]
Removed xprintf() -- it was very ugly and its only raison d'etre was
the lack of bprintf().

22 years agoAdded printf on fastbuf streams. The current implementation is not too
Martin Mares [Sun, 27 Oct 2002 13:16:03 +0000 (13:16 +0000)]
Added printf on fastbuf streams. The current implementation is not too
optimized for anything else than simplicity.

22 years agoSeveral bug fixes in the logger:
Martin Mares [Sun, 27 Oct 2002 13:05:14 +0000 (13:05 +0000)]
Several bug fixes in the logger:

o  No more hard limits on log name length.
o  If an error occurs during log switching, don't try it again.
o  Writes to log files are really atomic, we no more rely on stdio
   buffer being large enough (which it isn't).
o  Log entries are scanned for control characters which are then mapped to 0x7f.

22 years agoDocumented limit on number of word types.
Martin Mares [Sat, 19 Oct 2002 10:31:16 +0000 (10:31 +0000)]
Documented limit on number of word types.

22 years agoAdded support for shared libraries (CONFIG_SHARED switch in config.mk).
Martin Mares [Fri, 11 Oct 2002 11:32:36 +0000 (11:32 +0000)]
Added support for shared libraries (CONFIG_SHARED switch in config.mk).

The makefiles are now able to build both static and shared libraries,
objects for shared libraries get suffix '.oo'. Use $(LS) in all references
to libraries, it expands to `.so' if CONFIG_SHARED, to `.a' otherwise.

Turned on by default.

22 years agoWhen installing, dereference all symlinks.
Martin Mares [Fri, 11 Oct 2002 11:29:02 +0000 (11:29 +0000)]
When installing, dereference all symlinks.

22 years agoFixed bug in parse_tree() causing the parser to loop forever on some inputs.
Martin Mares [Thu, 10 Oct 2002 20:47:01 +0000 (20:47 +0000)]
Fixed bug in parse_tree() causing the parser to loop forever on some inputs.
It's interesting excercise to find out why not on all inputs :-)

22 years agoAudited usage of MAX_WORD_LEN, fixed several bugs and documented
Martin Mares [Thu, 10 Oct 2002 20:36:45 +0000 (20:36 +0000)]
Audited usage of MAX_WORD_LEN, fixed several bugs and documented
what does this constant really mean :)

22 years ago"Call me 2.3, please."
Martin Mares [Thu, 10 Oct 2002 19:57:12 +0000 (19:57 +0000)]
"Call me 2.3, please."

22 years agoInstall libraries as well. Closes bug #318.
Martin Mares [Thu, 10 Oct 2002 19:52:40 +0000 (19:52 +0000)]
Install libraries as well. Closes bug #318.

22 years agoIntroduced obuck_slurp_pool() to make reading of the whole bucket
Martin Mares [Sun, 6 Oct 2002 15:50:02 +0000 (15:50 +0000)]
Introduced obuck_slurp_pool() to make reading of the whole bucket
pool faster, possibly using mmap.

Use it in `buckettool -c'.

22 years agobdirect_read_prepare() now returns 0 instead of EOF.
Martin Mares [Sun, 6 Oct 2002 15:45:45 +0000 (15:45 +0000)]
bdirect_read_prepare() now returns 0 instead of EOF.

22 years agoWhen bopen() is called with buffer size 0, it switches to bopen_mm().
Martin Mares [Sun, 6 Oct 2002 15:45:07 +0000 (15:45 +0000)]
When bopen() is called with buffer size 0, it switches to bopen_mm().
The plan is to make use of mmapping configurable by the buffer sizes
in cf/sherlock.

22 years agoFinished the fb-mmap module. Basic parameters are now configurable in cf/sherlock.
Martin Mares [Sun, 6 Oct 2002 15:43:40 +0000 (15:43 +0000)]
Finished the fb-mmap module. Basic parameters are now configurable in cf/sherlock.

22 years agoSquash warning with 32-bit sh_off_t.
Martin Mares [Thu, 3 Oct 2002 21:56:54 +0000 (21:56 +0000)]
Squash warning with 32-bit sh_off_t.

22 years agoOlder versions of glibc don't have madvise.
Martin Mares [Thu, 3 Oct 2002 21:03:15 +0000 (21:03 +0000)]
Older versions of glibc don't have madvise.

22 years agoAdded a temporary hack for testing of fb-mmap. Please don't turn it on
Martin Mares [Thu, 3 Oct 2002 21:02:58 +0000 (21:02 +0000)]
Added a temporary hack for testing of fb-mmap. Please don't turn it on
unless you're willing to help me with debugging fb-mmap :-)

22 years agoThe is_temp_file variable was originally a good idea, but it made
Martin Mares [Mon, 30 Sep 2002 15:10:43 +0000 (15:10 +0000)]
The is_temp_file variable was originally a good idea, but it made
different fb back-ends giving the same interface almost impossible.

I've replaced it with bconfig() which is a universal interface for
altering various fb settings. It's somewhat ioctl()-ish, but I hope
it won't hurt.

22 years agoThe fb-mmap module, now read/write. Still needs a lot of benchmarking before we decide
Martin Mares [Fri, 27 Sep 2002 21:46:28 +0000 (21:46 +0000)]
The fb-mmap module, now read/write. Still needs a lot of benchmarking before we decide
to switch the indexer to use it.

22 years agoWhen writing, the data needn't start at the beginning of the buffer.
Martin Mares [Fri, 27 Sep 2002 21:45:40 +0000 (21:45 +0000)]
When writing, the data needn't start at the beginning of the buffer.
(We need this for fb-mmap since the buffer is always page aligned.)

22 years agoRecognize not only user names, but also passwords.
Martin Mares [Thu, 26 Sep 2002 18:27:19 +0000 (18:27 +0000)]
Recognize not only user names, but also passwords.

22 years agoadded base64 module, it is imported from somewhere :))
Robert Spalek [Thu, 26 Sep 2002 13:08:48 +0000 (13:08 +0000)]
added base64 module, it is imported from somewhere :))

MJ, if you dislike the code too much, please let me know

22 years agoAfter a lot of benchmarking replaced the old super-smart bbcopy()
Martin Mares [Tue, 24 Sep 2002 21:38:21 +0000 (21:38 +0000)]
After a lot of benchmarking replaced the old super-smart bbcopy()
by a much simpler solution based on the bdirect interface and inlined
the fast path. Surprisingly, the new version is faster under real load
(the explanation is very simple: we use very large buffers for the
indexer and hence the bbcopy optimizations triggered rarely) and it also
works on all fastbuf streams, not only file-based ones.

Also, made bdirect_* inline.

22 years agoIntroduced bfdopen_shared() which behaves like bfdopen(), but on
Martin Mares [Mon, 23 Sep 2002 21:20:02 +0000 (21:20 +0000)]
Introduced bfdopen_shared() which behaves like bfdopen(), but on
bclose() the fd is left open. Especially useful for buffering stdin/out.

22 years agoDamned automatic typecasts!
Martin Mares [Mon, 23 Sep 2002 18:03:42 +0000 (18:03 +0000)]
Damned automatic typecasts!

22 years agoBetter avoid the brain-dead encoding " " as "+" when generating URL's.
Martin Mares [Mon, 23 Sep 2002 12:41:32 +0000 (12:41 +0000)]
Better avoid the brain-dead encoding " " as "+" when generating URL's.

22 years agoFix escaping of "+" characters in outgoing parameters. (BTW: when Galeon
Martin Mares [Mon, 23 Sep 2002 12:37:32 +0000 (12:37 +0000)]
Fix escaping of "+" characters in outgoing parameters. (BTW: when Galeon
displays link URL's in the status line, it unqotes them improperly!)

Use ":" as a separator instead of "&" when constructing self-ref URL's.

22 years agoOops, the card array was reversed!
Martin Mares [Mon, 23 Sep 2002 12:14:45 +0000 (12:14 +0000)]
Oops, the card array was reversed!

22 years agoForgot to commit with the rest of fastbuf changes.
Martin Mares [Mon, 23 Sep 2002 12:12:31 +0000 (12:12 +0000)]
Forgot to commit with the rest of fastbuf changes.

22 years agoAdapted to new fastbufs.
Martin Mares [Mon, 23 Sep 2002 12:11:35 +0000 (12:11 +0000)]
Adapted to new fastbufs.

22 years agoAdapted the bucket code to new fastbufs. Stream positions are now
Martin Mares [Mon, 23 Sep 2002 12:10:25 +0000 (12:10 +0000)]
Adapted the bucket code to new fastbufs. Stream positions are now
always relative to bucket start (originally it was relative to file
start which was completely unusable, and hence unused :-) ).

22 years agoMajor cleanup of fastbufs:
Martin Mares [Mon, 23 Sep 2002 12:07:15 +0000 (12:07 +0000)]
Major cleanup of fastbufs:

  o  Split generic fastbuf from low-level routines. `struct fastbuf'
     no longer contains low-level data like `fd' or `is_temp_file'.
  o  Introduced safe type casting macros to avoid programming errors.
  o  `struct fastbuf' is no longer freed by the high-level code.
  o  Documented behaviour of bflush() between reads and writes.
  o  Redefined semantics of fastbuf->pos: it now corresponds to `bstop'
     instead of `buffer', hence it always coincides with real file
     position, making `fdpos' unnecessary.

22 years agoRobert> uff, na prvni pohled nic nechapu, asi je to moc chytre :)
Martin Mares [Thu, 19 Sep 2002 18:26:37 +0000 (18:26 +0000)]
Robert> uff, na prvni pohled nic nechapu, asi je to moc chytre :)

So I decided to learn how to use POD and write a POD documentation
for the module (in usual Perl fashion, it's a part of the module).
Use perldoc or pod2${format} to view or convert it.

22 years agoDebug output now calls a given subroutine instead of print.
Martin Mares [Wed, 18 Sep 2002 10:08:32 +0000 (10:08 +0000)]
Debug output now calls a given subroutine instead of print.