Skip to content

Commit 3301b2f

Browse files
committed
docs: m2r BUGS.md issues.rst
1 parent f1e7d4a commit 3301b2f

File tree

4 files changed

+110
-18
lines changed

4 files changed

+110
-18
lines changed

BUGS.md

+17
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,20 @@ specify whether `MGET`s/`GET`s should read from a random server with
3939
delete the key from all replicas.
4040

4141
The binary protocol is required and any other command is unaffected.
42+
43+
### TLS/SSL
44+
45+
libmemcached does not support TLS/SSL, yet.
46+
See [github issue #37](https://github.com/awesomized/libmemcached/issues/37).
47+
48+
49+
### Coroutines and event loops
50+
51+
libmemcached does not support explicit asynchronous usage, yet.
52+
See [github issue #54](https://github.com/awesomized/libmemcached/issues/54).
53+
54+
55+
### META protocol
56+
57+
libmemcached deos not support memcached's META protocol, yet.
58+
See [github issue #121](https://github.com/awesomized/libmemcached/issues/121).

docs/source/CMakeLists.txt

+27-18
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,34 @@
11
find_program(M2R NAMES m2r m2r-3)
22

3+
function(DefaultRstPath MDFILE RSTFILE_VAR)
4+
string(REGEX REPLACE "\\.md$" ".rst" FILEPATH ${MDFILE})
5+
get_filename_component(FILENAME ${FILEPATH} NAME)
6+
set(${RSTFILE_VAR} "${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}" PARENT_SCOPE)
7+
endfunction()
8+
9+
function(UpdateRstFromMd RSTFILE MDFILE)
10+
if(${MDFILE} IS_NEWER_THAN ${RSTFILE})
11+
message("-- Processing ${MDFILE} ...")
12+
execute_process(
13+
COMMAND ${M2R} --overwrite --parse-relative-links ${MDFILE}
14+
RESULTS_VARIABLE M2R_STATUS
15+
)
16+
if(M2R_STATUS)
17+
message(" Failed to update ${RSTFILE}: ${M2R_STATUS}")
18+
else()
19+
string(REGEX REPLACE "\\.md$" ".rst" FILEPATH ${MDFILE})
20+
file(RENAME ${FILEPATH} ${RSTFILE} )
21+
message(" Updated ${RSTFILE}: OK")
22+
endif()
23+
endif()
24+
endfunction()
25+
326
if(M2R)
27+
message("-- Checking ChangeLogs, BUGS, etc...")
428
file(GLOB CHANGELOGS "${CMAKE_SOURCE_DIR}/ChangeLog-*.md")
5-
message("-- Checking ChangeLogs ...")
629
foreach(CHANGELOG IN LISTS CHANGELOGS)
7-
string(REGEX REPLACE "\\.md$" ".rst" FILEPATH ${CHANGELOG})
8-
get_filename_component(FILENAME ${FILEPATH} NAME)
9-
10-
set(RESTFILE "${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}")
11-
if(${CHANGELOG} IS_NEWER_THAN ${RESTFILE})
12-
message("-- Processing ${CHANGELOG} ...")
13-
execute_process(
14-
COMMAND ${M2R} --overwrite --parse-relative-links ${CHANGELOG}
15-
RESULTS_VARIABLE M2R_STATUS
16-
)
17-
if(M2R_STATUS)
18-
message(" Failed to update ${RESTFILE}: ${M2R_STATUS}")
19-
else()
20-
file(RENAME ${FILEPATH} ${RESTFILE} )
21-
message(" Updated ${RESTFILE}: OK")
22-
endif()
23-
endif()
30+
DefaultRstPath(${CHANGELOG} RESTFILE)
31+
UpdateRstFromMd(${RESTFILE} ${CHANGELOG})
2432
endforeach()
33+
UpdateRstFromMd(issues.rst "${CMAKE_SOURCE_DIR}/BUGS.md")
2534
endif()

docs/source/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ memory usage, thread safe, and provide full access to server side methods.
2020
:maxdepth: 1
2121

2222
changelogs
23+
Known issues <issues>
2324
copyright
2425

2526
Index

docs/source/issues.rst

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
2+
Bugs, Known Issues and Insufficiencies
3+
======================================
4+
5+
libhashkit
6+
----------
7+
8+
libhashkit is not usable for general purpose hashing, because it is geared to
9+
usage by libmemcached.
10+
11+
MurMur
12+
^^^^^^
13+
14+
Hashkit's MurMur/MurMur3 are limited to the lower 32 bits.
15+
16+
crc32
17+
^^^^^
18+
19+
Commit "\ `More Hashing methods <https://github.com/awesomized/libmemcached/commits/1207354f>`_\ "
20+
from October 2007 first released in v0.8, which main intention seems to have
21+
been to add FNV1 hash algos, changed the result of the crc32 hash to only its
22+
upper 16 bits sans MSB, without any additional comment.
23+
24+
The implementations referred to in the file header (Postgres and BSD)
25+
do not exhibit this behavior.
26+
27+
A `bug report <https://bugs.launchpad.net/libmemcached/+bug/604178>`_ was
28+
filed three years later on launchpad, which was marked ``Won't fix`` with
29+
the comment that it was for compatibility with other "drivers", which
30+
supposedly refers to other memcached client libraries.
31+
32+
libmemcached
33+
------------
34+
35+
Replication
36+
^^^^^^^^^^^
37+
38+
This is a somewhat badly named feature, because it **does not** provide
39+
any of the guaranties one would expect from a proper replication.
40+
41+
One can set the intended number of additional servers where data should
42+
be stored with the behavior ``MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS`` and
43+
specify whether ``MGET``\ s/\ ``GET``\ s should read from a random server with
44+
``MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ``. ``DELETE``\ s will try to
45+
delete the key from all replicas.
46+
47+
The binary protocol is required and any other command is unaffected.
48+
49+
TLS/SSL
50+
^^^^^^^
51+
52+
libmemcached does not support TLS/SSL, yet.
53+
See `github issue #37 <https://github.com/awesomized/libmemcached/issues/37>`_.
54+
55+
Coroutines and event loops
56+
^^^^^^^^^^^^^^^^^^^^^^^^^^
57+
58+
libmemcached does not support explicit asynchronous usage, yet.
59+
See `github issue #54 <https://github.com/awesomized/libmemcached/issues/54>`_.
60+
61+
META protocol
62+
^^^^^^^^^^^^^
63+
64+
libmemcached deos not support memcached's META protocol, yet.
65+
See `github issue #121 <https://github.com/awesomized/libmemcached/issues/121>`_.

0 commit comments

Comments
 (0)