aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-08-31 10:46:28 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-09-12 13:19:50 -0300
commite2143674ae20fbadbea004bd54d6f5dc32b83803 (patch)
tree0c14bff4b9019cdf314a9a96d947b127bd61e2d9
parent042aca6eb4d0fe9e6ddf3bcfb96a39838b2633d1 (diff)
downloadrneovim-e2143674ae20fbadbea004bd54d6f5dc32b83803.tar.gz
rneovim-e2143674ae20fbadbea004bd54d6f5dc32b83803.tar.bz2
rneovim-e2143674ae20fbadbea004bd54d6f5dc32b83803.zip
deps: Update to the experimental msgpack v5 branch
Using msgpack v5 will let nvim be more compatible with msgpack libraries for other platforms. This also replaces "raw" references by "bin" which is the new name for msgpack binary data type
-rw-r--r--cmake/FindMsgpack.cmake6
-rw-r--r--scripts/msgpack-gen.lua4
-rw-r--r--src/nvim/os/msgpack_rpc.c18
-rw-r--r--src/nvim/os/msgpack_rpc_helpers.c12
-rw-r--r--third-party/CMakeLists.txt19
5 files changed, 34 insertions, 25 deletions
diff --git a/cmake/FindMsgpack.cmake b/cmake/FindMsgpack.cmake
index b2c89b13d1..6b3c8bb977 100644
--- a/cmake/FindMsgpack.cmake
+++ b/cmake/FindMsgpack.cmake
@@ -24,13 +24,13 @@ find_path(MSGPACK_INCLUDE_DIR msgpack.h
HINTS ${PC_MSGPACK_INCLUDEDIR} ${PC_MSGPACK_INCLUDE_DIRS}
${LIMIT_SEARCH})
-# If we're asked to use static linkage, add libmsgpackc.a as a preferred library name.
+# If we're asked to use static linkage, add libmsgpack.a as a preferred library name.
if(MSGPACK_USE_STATIC)
list(APPEND MSGPACK_NAMES
- "${CMAKE_STATIC_LIBRARY_PREFIX}msgpackc${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ "${CMAKE_STATIC_LIBRARY_PREFIX}msgpack${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()
-list(APPEND MSGPACK_NAMES msgpackc)
+list(APPEND MSGPACK_NAMES msgpack)
find_library(MSGPACK_LIBRARY NAMES ${MSGPACK_NAMES}
HINTS ${PC_MSGPACK_LIBDIR} ${PC_MSGPACK_LIBRARY_DIRS}
diff --git a/scripts/msgpack-gen.lua b/scripts/msgpack-gen.lua
index 8940cc72f6..43459743e2 100644
--- a/scripts/msgpack-gen.lua
+++ b/scripts/msgpack-gen.lua
@@ -277,9 +277,9 @@ Object msgpack_rpc_dispatch(uint64_t channel_id,
msgpack_object method = req->via.array.ptr[2];
uint64_t method_id = method.via.u64;
- if (method.type == MSGPACK_OBJECT_RAW) {
+ if (method.type == MSGPACK_OBJECT_BIN) {
char method_name[]]..(max_fname_len + 1)..[[];
- xstrlcpy(method_name, method.via.raw.ptr, min(method.via.raw.size, ]] ..(max_fname_len)..[[) + 1);
+ xstrlcpy(method_name, method.via.bin.ptr, min(method.via.bin.size, ]] ..(max_fname_len)..[[) + 1);
method_id = map_get(cstr_t, uint64_t)(rpc_method_ids, method_name);
if (!method_id) {
method_id = UINT64_MAX;
diff --git a/src/nvim/os/msgpack_rpc.c b/src/nvim/os/msgpack_rpc.c
index c6e2af2f1c..38670e0bf8 100644
--- a/src/nvim/os/msgpack_rpc.c
+++ b/src/nvim/os/msgpack_rpc.c
@@ -109,8 +109,8 @@ void msgpack_rpc_error(char *msg, msgpack_packer *res)
size_t len = strlen(msg);
// error message
- msgpack_pack_raw(res, len);
- msgpack_pack_raw_body(res, msg, len);
+ msgpack_pack_bin(res, len);
+ msgpack_pack_bin_body(res, msg, len);
// Nil result
msgpack_pack_nil(res);
}
@@ -132,8 +132,8 @@ WBuffer *serialize_request(uint64_t request_id,
msgpack_pack_uint64(&pac, request_id);
}
- msgpack_pack_raw(&pac, method.size);
- msgpack_pack_raw_body(&pac, method.data, method.size);
+ msgpack_pack_bin(&pac, method.size);
+ msgpack_pack_bin_body(&pac, method.data, method.size);
msgpack_rpc_from_array(args, &pac);
WBuffer *rv = wstream_new_buffer(xmemdup(sbuffer->data, sbuffer->size),
sbuffer->size,
@@ -160,8 +160,8 @@ WBuffer *serialize_response(uint64_t response_id,
if (err_msg) {
String err = {.size = strlen(err_msg), .data = err_msg};
// error message
- msgpack_pack_raw(&pac, err.size);
- msgpack_pack_raw_body(&pac, err.data, err.size);
+ msgpack_pack_bin(&pac, err.size);
+ msgpack_pack_bin_body(&pac, err.data, err.size);
// Nil result
msgpack_pack_nil(&pac);
} else {
@@ -195,8 +195,8 @@ WBuffer *serialize_metadata(uint64_t id,
// The result is the [channel_id, metadata] array
msgpack_pack_array(&pac, 2);
msgpack_pack_uint64(&pac, channel_id);
- msgpack_pack_raw(&pac, msgpack_metadata_size);
- msgpack_pack_raw_body(&pac, msgpack_metadata, msgpack_metadata_size);
+ msgpack_pack_bin(&pac, msgpack_metadata_size);
+ msgpack_pack_bin_body(&pac, msgpack_metadata, msgpack_metadata_size);
WBuffer *rv = wstream_new_buffer(xmemdup(sbuffer->data, sbuffer->size),
sbuffer->size,
1,
@@ -235,7 +235,7 @@ static char *msgpack_rpc_validate(uint64_t *response_id, msgpack_object *req)
}
if (req->via.array.ptr[2].type != MSGPACK_OBJECT_POSITIVE_INTEGER
- && req->via.array.ptr[2].type != MSGPACK_OBJECT_RAW) {
+ && req->via.array.ptr[2].type != MSGPACK_OBJECT_BIN) {
return "Method must be a positive integer or a string";
}
diff --git a/src/nvim/os/msgpack_rpc_helpers.c b/src/nvim/os/msgpack_rpc_helpers.c
index e2c277abe4..eb43c3b2a6 100644
--- a/src/nvim/os/msgpack_rpc_helpers.c
+++ b/src/nvim/os/msgpack_rpc_helpers.c
@@ -81,12 +81,12 @@ bool msgpack_rpc_to_float(msgpack_object *obj, Float *arg)
bool msgpack_rpc_to_string(msgpack_object *obj, String *arg)
{
- if (obj->type != MSGPACK_OBJECT_RAW) {
+ if (obj->type != MSGPACK_OBJECT_BIN) {
return false;
}
- arg->data = xmemdupz(obj->via.raw.ptr, obj->via.raw.size);
- arg->size = obj->via.raw.size;
+ arg->data = xmemdupz(obj->via.bin.ptr, obj->via.bin.size);
+ arg->size = obj->via.bin.size;
return true;
}
@@ -110,7 +110,7 @@ bool msgpack_rpc_to_object(msgpack_object *obj, Object *arg)
arg->type = kObjectTypeFloat;
return msgpack_rpc_to_float(obj, &arg->data.floating);
- case MSGPACK_OBJECT_RAW:
+ case MSGPACK_OBJECT_BIN:
arg->type = kObjectTypeString;
return msgpack_rpc_to_string(obj, &arg->data.string);
@@ -200,8 +200,8 @@ void msgpack_rpc_from_float(Float result, msgpack_packer *res)
void msgpack_rpc_from_string(String result, msgpack_packer *res)
{
- msgpack_pack_raw(res, result.size);
- msgpack_pack_raw_body(res, result.data, result.size);
+ msgpack_pack_bin(res, result.size);
+ msgpack_pack_bin_body(res, result.data, result.size);
}
void msgpack_rpc_from_object(Object result, msgpack_packer *res)
diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt
index ff161a7cc7..2f7b4c9256 100644
--- a/third-party/CMakeLists.txt
+++ b/third-party/CMakeLists.txt
@@ -50,8 +50,8 @@ include(ExternalProject)
set(LIBUV_URL https://github.com/joyent/libuv/archive/v0.11.28.tar.gz)
set(LIBUV_MD5 1a849ba4fc571d531482ed74bc7aabc4)
-set(MSGPACK_URL https://github.com/msgpack/msgpack-c/releases/download/cpp-0.5.8/msgpack-0.5.8.tar.gz)
-set(MSGPACK_MD5 ea0bee0939d2980c0df91f0e4843ccc4)
+set(MSGPACK_URL https://github.com/msgpack/msgpack-c/archive/0335df55e1a408c0d56d43e46253c952fb8a7f04.tar.gz)
+set(MSGPACK_MD5 4c18a1625b586c0d69a0e955ce9a187f)
set(LUAJIT_URL http://luajit.org/download/LuaJIT-2.0.3.tar.gz)
set(LUAJIT_MD5 f14e9104be513913810cd59c8c658dc0)
@@ -92,9 +92,18 @@ if(USE_BUNDLED_MSGPACK)
-DEXPECTED_MD5=${MSGPACK_MD5}
-DTARGET=msgpack
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
- CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/src/msgpack/configure --disable-shared
- --with-pic --prefix=${DEPS_INSTALL_DIR} CC=${DEPS_C_COMPILER}
- INSTALL_COMMAND ${MAKE_PRG} install)
+ CONFIGURE_COMMAND cmake ${DEPS_BUILD_DIR}/src/msgpack
+ -DMSGPACK_ENABLE_CXX=OFF
+ -DMSGPACK_BUILD_TESTS=OFF
+ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC"
+ BUILD_COMMAND ${MAKE_PRG}
+ INSTALL_COMMAND ${MAKE_PRG} install &&
+ rm ${DEPS_INSTALL_DIR}/lib/libmsgpack.so &&
+ rm ${DEPS_INSTALL_DIR}/lib/libmsgpack.so.3 &&
+ rm ${DEPS_INSTALL_DIR}/lib/libmsgpack.so.4.0.0
+ )
list(APPEND THIRD_PARTY_DEPS msgpack)
endif()