From: Serge Petrenko <sergepetrenko@tarantool.org>
To: v.shpilevoy@tarantool.org
Cc: tarantool-patches@dev.tarantool.org
Subject: [Tarantool-patches] [PATCH v2 1/4] refactoring: extract mpstream into a separate library
Date: Fri, 10 Apr 2020 02:50:39 +0300 [thread overview]
Message-ID: <616426a33b353b302f155b01e22cbf61ba5f768c.1586476073.git.sergepetrenko@tarantool.org> (raw)
In-Reply-To: <cover.1586476073.git.sergepetrenko@tarantool.org>
mpstream is part of core library, which, since the introduction of
messagepack extension types, leads to circular dependencies between core
and any other library having extension type encoding/decoding methods
(e.g. uuid library which will soon be expanded with such methods).
Prerequisite #4268
---
src/CMakeLists.txt | 2 +-
src/box/CMakeLists.txt | 2 +-
src/box/lua/call.c | 2 +-
src/box/lua/misc.cc | 2 +-
src/box/lua/net_box.c | 2 +-
src/box/lua/tuple.c | 2 +-
src/box/sql.c | 3 +--
src/box/sql/func.c | 2 +-
src/box/sql/vdbe.c | 2 +-
src/box/sql/vdbemem.c | 2 +-
src/box/xrow.c | 2 +-
src/lib/CMakeLists.txt | 1 +
src/lib/core/CMakeLists.txt | 1 -
src/lib/mpstream/CMakeLists.txt | 2 ++
src/lib/{core => mpstream}/mpstream.c | 2 +-
src/lib/{core => mpstream}/mpstream.h | 0
src/lib/msgpuck | 2 +-
src/lua/msgpack.c | 2 +-
18 files changed, 17 insertions(+), 16 deletions(-)
create mode 100644 src/lib/mpstream/CMakeLists.txt
rename src/lib/{core => mpstream}/mpstream.c (99%)
rename src/lib/{core => mpstream}/mpstream.h (100%)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7d865472d..de9680bcc 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -170,7 +170,7 @@ set_source_files_compile_flags(${server_sources})
add_library(server STATIC ${server_sources})
add_dependencies(server build_bundled_libs)
target_link_libraries(server core coll http_parser bit uri uuid swim swim_udp
- swim_ev crypto)
+ swim_ev crypto mpstream)
# Rule of thumb: if exporting a symbol from a static library, list the
# library here.
diff --git a/src/box/CMakeLists.txt b/src/box/CMakeLists.txt
index 56758bd2f..6688303a9 100644
--- a/src/box/CMakeLists.txt
+++ b/src/box/CMakeLists.txt
@@ -34,7 +34,7 @@ target_link_libraries(vclock core)
add_library(xrow STATIC xrow.c iproto_constants.c)
target_link_libraries(xrow server core small vclock misc box_error
- scramble ${MSGPUCK_LIBRARIES})
+ scramble mpstream ${MSGPUCK_LIBRARIES})
add_library(tuple STATIC
tuple.c
diff --git a/src/box/lua/call.c b/src/box/lua/call.c
index 5d3579eff..1d294948c 100644
--- a/src/box/lua/call.c
+++ b/src/box/lua/call.c
@@ -45,7 +45,7 @@
#include "box/lua/tuple.h"
#include "small/obuf.h"
#include "trivia/util.h"
-#include "mpstream.h"
+#include "mpstream/mpstream.h"
/**
* A helper to find a Lua function by name and put it
diff --git a/src/box/lua/misc.cc b/src/box/lua/misc.cc
index 79b6cfe3a..4348dcbb2 100644
--- a/src/box/lua/misc.cc
+++ b/src/box/lua/misc.cc
@@ -40,7 +40,7 @@
#include "box/tuple.h"
#include "box/tuple_format.h"
#include "box/lua/tuple.h"
-#include "mpstream.h"
+#include "mpstream/mpstream.h"
static uint32_t CTID_STRUCT_TUPLE_FORMAT_PTR;
diff --git a/src/box/lua/net_box.c b/src/box/lua/net_box.c
index c7bd016c3..0b6c362ae 100644
--- a/src/box/lua/net_box.c
+++ b/src/box/lua/net_box.c
@@ -47,7 +47,7 @@
#include "coio.h"
#include "box/errcode.h"
#include "lua/fiber.h"
-#include "mpstream.h"
+#include "mpstream/mpstream.h"
#include "misc.h" /* lbox_check_tuple_format() */
#define cfg luaL_msgpack_default
diff --git a/src/box/lua/tuple.c b/src/box/lua/tuple.c
index 1e3c3d65c..4b0701edf 100644
--- a/src/box/lua/tuple.c
+++ b/src/box/lua/tuple.c
@@ -42,7 +42,7 @@
#include "box/tuple_convert.h"
#include "box/errcode.h"
#include "json/json.h"
-#include "mpstream.h"
+#include "mpstream/mpstream.h"
/** {{{ box.tuple Lua library
*
diff --git a/src/box/sql.c b/src/box/sql.c
index 1256df856..fa41b4517 100644
--- a/src/box/sql.c
+++ b/src/box/sql.c
@@ -35,7 +35,6 @@
#include "sql/sqlInt.h"
#include "sql/tarantoolInt.h"
#include "sql/vdbeInt.h"
-#include "mpstream.h"
#include "index.h"
#include "info/info.h"
@@ -53,7 +52,7 @@
#include "xrow.h"
#include "iproto_constants.h"
#include "fk_constraint.h"
-#include "mpstream.h"
+#include "mpstream/mpstream.h"
#include "sql_stmt_cache.h"
static sql *db = NULL;
diff --git a/src/box/sql/func.c b/src/box/sql/func.c
index 6e724c824..e3a6e8875 100644
--- a/src/box/sql/func.c
+++ b/src/box/sql/func.c
@@ -51,7 +51,7 @@
#include "box/tuple.h"
#include "lua/msgpack.h"
#include "lua/utils.h"
-#include "mpstream.h"
+#include "mpstream/mpstream.h"
/*
* Return the collating function associated with a function.
diff --git a/src/box/sql/vdbe.c b/src/box/sql/vdbe.c
index e8a029a8a..1296dbbbe 100644
--- a/src/box/sql/vdbe.c
+++ b/src/box/sql/vdbe.c
@@ -50,7 +50,7 @@
#include "tarantoolInt.h"
#include "msgpuck/msgpuck.h"
-#include "mpstream.h"
+#include "mpstream/mpstream.h"
#include "box/schema.h"
#include "box/space.h"
diff --git a/src/box/sql/vdbemem.c b/src/box/sql/vdbemem.c
index aad030df9..18fe958a2 100644
--- a/src/box/sql/vdbemem.c
+++ b/src/box/sql/vdbemem.c
@@ -41,7 +41,7 @@
#include "tarantoolInt.h"
#include "box/schema.h"
#include "box/tuple.h"
-#include "mpstream.h"
+#include "mpstream/mpstream.h"
#ifdef SQL_DEBUG
/*
diff --git a/src/box/xrow.c b/src/box/xrow.c
index be026a43c..a494d1f46 100644
--- a/src/box/xrow.c
+++ b/src/box/xrow.c
@@ -42,7 +42,7 @@
#include "vclock.h"
#include "scramble.h"
#include "iproto_constants.h"
-#include "mpstream.h"
+#include "mpstream/mpstream.h"
static_assert(IPROTO_DATA < 0x7f && IPROTO_METADATA < 0x7f &&
IPROTO_SQL_INFO < 0x7f, "encoded IPROTO_BODY keys must fit into "\
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
index b306634e7..61b87fb9e 100644
--- a/src/lib/CMakeLists.txt
+++ b/src/lib/CMakeLists.txt
@@ -12,6 +12,7 @@ add_subdirectory(uuid)
add_subdirectory(coll)
add_subdirectory(crypto)
add_subdirectory(swim)
+add_subdirectory(mpstream)
if(ENABLE_BUNDLED_MSGPUCK)
add_subdirectory(msgpuck EXCLUDE_FROM_ALL)
endif()
diff --git a/src/lib/core/CMakeLists.txt b/src/lib/core/CMakeLists.txt
index 3f13ff904..13ed1e7ab 100644
--- a/src/lib/core/CMakeLists.txt
+++ b/src/lib/core/CMakeLists.txt
@@ -25,7 +25,6 @@ set(core_sources
util.c
random.c
trigger.cc
- mpstream.c
port.c
decimal.c
mp_decimal.c
diff --git a/src/lib/mpstream/CMakeLists.txt b/src/lib/mpstream/CMakeLists.txt
new file mode 100644
index 000000000..60ed20030
--- /dev/null
+++ b/src/lib/mpstream/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_library(mpstream STATIC mpstream.c)
+target_link_libraries(mpstream core uuid ${MSGPUCK_LIBRARIES})
diff --git a/src/lib/core/mpstream.c b/src/lib/mpstream/mpstream.c
similarity index 99%
rename from src/lib/core/mpstream.c
rename to src/lib/mpstream/mpstream.c
index 2be1797d0..a737212c1 100644
--- a/src/lib/core/mpstream.c
+++ b/src/lib/mpstream/mpstream.c
@@ -33,7 +33,7 @@
#include <assert.h>
#include <stdint.h>
#include "msgpuck.h"
-#include "mp_decimal.h"
+#include "core/mp_decimal.h"
void
mpstream_reserve_slow(struct mpstream *stream, size_t size)
diff --git a/src/lib/core/mpstream.h b/src/lib/mpstream/mpstream.h
similarity index 100%
rename from src/lib/core/mpstream.h
rename to src/lib/mpstream/mpstream.h
diff --git a/src/lib/msgpuck b/src/lib/msgpuck
index 8ae606a16..e476ad192 160000
--- a/src/lib/msgpuck
+++ b/src/lib/msgpuck
@@ -1 +1 @@
-Subproject commit 8ae606a1636dd89b2d61b154e5a1db03dce91657
+Subproject commit e476ad19281b29d2ee3e11e74c564c0eceea37d5
diff --git a/src/lua/msgpack.c b/src/lua/msgpack.c
index edbc15b72..73ed3ece6 100644
--- a/src/lua/msgpack.c
+++ b/src/lua/msgpack.c
@@ -29,7 +29,7 @@
* SUCH DAMAGE.
*/
#include "lua/msgpack.h"
-#include "mpstream.h"
+#include "mpstream/mpstream.h"
#include "lua/utils.h"
#if defined(LUAJIT)
--
2.21.1 (Apple Git-122.3)
next prev parent reply other threads:[~2020-04-09 23:50 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-09 23:50 [Tarantool-patches] [PATCH v2 0/4] introduce indices over UUID Serge Petrenko
2020-04-09 23:50 ` Serge Petrenko [this message]
2020-04-10 16:56 ` [Tarantool-patches] [PATCH v2 1/4] refactoring: extract mpstream into a separate library Vladislav Shpilevoy
2020-04-11 13:12 ` Serge Petrenko
2020-04-09 23:50 ` [Tarantool-patches] [PATCH v2 2/4] uuid: expose tt_uuid_validate method Serge Petrenko
2020-04-09 23:50 ` [Tarantool-patches] [PATCH v2 3/4] box: add MsgPack encoding/decoding for UUID Serge Petrenko
2020-04-10 16:56 ` Vladislav Shpilevoy
2020-04-11 14:14 ` Serge Petrenko
2020-04-09 23:50 ` [Tarantool-patches] [PATCH v2 4/4] box: introduce indices by UUID Serge Petrenko
2020-04-10 16:56 ` Vladislav Shpilevoy
2020-04-11 14:14 ` Serge Petrenko
2020-04-10 12:27 ` [Tarantool-patches] [PATCH v2 0/4] introduce indices over UUID Serge Petrenko
2020-04-11 18:01 ` Vladislav Shpilevoy
2020-04-13 13:52 ` Kirill Yukhin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=616426a33b353b302f155b01e22cbf61ba5f768c.1586476073.git.sergepetrenko@tarantool.org \
--to=sergepetrenko@tarantool.org \
--cc=tarantool-patches@dev.tarantool.org \
--cc=v.shpilevoy@tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH v2 1/4] refactoring: extract mpstream into a separate library' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox