diff --git a/core/admin.c b/core/admin.c
index ab1f5afc6df7503d00f671cd8fa5383f113fc165..a41c65b92083a43a5b727f269b310c4ed1eb023b 100644
--- a/core/admin.c
+++ b/core/admin.c
@@ -1466,7 +1466,7 @@ case 107:
 
 
 static void
-admin_handler(void *_data __unused__)
+admin_handler(void *_data __attribute__((unused)))
 {
 	for (;;) {
 		if (admin_dispatch() <= 0)
diff --git a/core/admin.rl b/core/admin.rl
index 1be63602a494048b7bd4b5bf0dfba04b491dcc74..277b8efcb94aff8802533c2cafffa55fa0683e5a 100644
--- a/core/admin.rl
+++ b/core/admin.rl
@@ -212,7 +212,7 @@ admin_dispatch(void)
 
 
 static void
-admin_handler(void *_data __unused__)
+admin_handler(void *_data __attribute__((unused)))
 {
 	for (;;) {
 		if (admin_dispatch() <= 0)
diff --git a/core/coro.c b/core/coro.c
index 13f0045f43ae625e4077156d5055a18535b0a649..91dc0e11c0e98b9d63a733918d417daf9e62a2c7 100644
--- a/core/coro.c
+++ b/core/coro.c
@@ -24,13 +24,13 @@
  * SUCH DAMAGE.
  */
 
-#include <unistd.h>
+#include "coro.h"
+
 #include <string.h>
 #include <sys/mman.h>
 
 #include "third_party/valgrind/memcheck.h"
 
-#include <coro.h>
 #include <palloc.h>
 
 #ifndef MAP_ANONYMOUS
diff --git a/core/diagnostics.c b/core/diagnostics.c
index 237c02d1135064251ec7b73d8e72b5c8e411660c..7a6e6a2445632236b1a7bc584b6f7d4f69532298 100644
--- a/core/diagnostics.c
+++ b/core/diagnostics.c
@@ -24,6 +24,7 @@
 #include "fiber.h"
 #include <errno.h>
 #include <string.h>
+#include <stdlib.h>
 
 static struct Error oom_error = { ENOMEM, "Out of memory" };
 
diff --git a/core/fiber.c b/core/fiber.c
index 3d184addfa7a032307fa877e0eb874039f0e54aa..1cd25b68a050b19c87c542575ffe4af3f47c154a 100644
--- a/core/fiber.c
+++ b/core/fiber.c
@@ -24,6 +24,7 @@
  * SUCH DAMAGE.
  */
 
+#include "fiber.h"
 #include <arpa/inet.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -42,7 +43,6 @@
 #include <third_party/queue.h>
 #include <third_party/khash.h>
 
-#include <fiber.h>
 #include <palloc.h>
 #include <salloc.h>
 #include <say.h>
@@ -94,7 +94,7 @@ static void
 update_last_stack_frame(struct fiber *fiber)
 {
 #ifdef ENABLE_BACKTRACE
-	fiber->last_stack_frame = frame_addess();
+	fiber->last_stack_frame = __builtin_frame_address(0);
 #else
 	(void)fiber;
 #endif /* ENABLE_BACKTRACE */
@@ -200,7 +200,7 @@ unwait(int events)
 }
 
 static void
-ev_schedule(ev_watcher *watcher, int event __unused__)
+ev_schedule(ev_watcher *watcher, int event __attribute__((unused)))
 {
 	assert(fiber == &sched);
 	fiber_call(watcher->data);
@@ -337,7 +337,7 @@ fiber_zombificate()
 }
 
 static void
-fiber_loop(void *data __unused__)
+fiber_loop(void *data __attribute__((unused)))
 {
 	while (42) {
 		assert(fiber != NULL && fiber->f != NULL && fiber->fid != 0);
@@ -774,7 +774,7 @@ blocking_loop(int fd, struct tbuf *(*handler) (void *state, struct tbuf *), void
 }
 
 static void
-inbox2sock(void *_data __unused__)
+inbox2sock(void *_data __attribute__((unused)))
 {
 	struct tbuf *msg, *out;
 	struct msg *m;
@@ -806,7 +806,7 @@ inbox2sock(void *_data __unused__)
 }
 
 static void
-sock2inbox(void *_data __unused__)
+sock2inbox(void *_data __attribute__((unused)))
 {
 	struct tbuf *msg, *msg_body;
 	struct fiber *recipient;
diff --git a/core/iproto.c b/core/iproto.c
index 820a8aa4125efb09fd6e989a9ad0958d1c989b33..fd47e48d222f0d998951ff4aa48f3de99bb6687c 100644
--- a/core/iproto.c
+++ b/core/iproto.c
@@ -23,13 +23,13 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+#include "iproto.h"
 
 #include <stdio.h>
 #include <string.h>
 
 #include <palloc.h>
 #include <fiber.h>
-#include <iproto.h>
 #include <tbuf.h>
 #include <say.h>
 
diff --git a/core/log_io.c b/core/log_io.c
index 6c5df8ee42b45319eea5f40d5cc9d83f09545847..83518929fdccf83761860138ecbead8629ed0be8 100644
--- a/core/log_io.c
+++ b/core/log_io.c
@@ -23,6 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+#include "log_io.h"
 
 #include "config.h"
 #include <dirent.h>
@@ -39,13 +40,9 @@
 #include <unistd.h>
 
 #include <fiber.h>
-#include <log_io.h>
-#include <palloc.h>
 #include <say.h>
 #include <third_party/crc32.h>
-#include <util.h>
 #include <pickle.h>
-#include <tbuf.h>
 #include "diagnostics.h"
 
 const u16 snap_tag = -1;
@@ -1173,10 +1170,10 @@ recover(struct recovery_state *r, i64 lsn)
 	return result;
 }
 
-static void recover_follow_file(ev_stat *w, int revents __unused__);
+static void recover_follow_file(ev_stat *w, int revents __attribute__((unused)));
 
 static void
-recover_follow_dir(ev_timer *w, int revents __unused__)
+recover_follow_dir(ev_timer *w, int revents __attribute__((unused)))
 {
 	struct recovery_state *r = w->data;
 	struct log_io *wal = r->current_wal;
@@ -1193,7 +1190,7 @@ recover_follow_dir(ev_timer *w, int revents __unused__)
 }
 
 static void
-recover_follow_file(ev_stat *w, int revents __unused__)
+recover_follow_file(ev_stat *w, int revents __attribute__((unused)))
 {
 	struct recovery_state *r = w->data;
 	int result;
diff --git a/core/log_io_remote.c b/core/log_io_remote.c
index 34957825efb7df5fce42c6c0c85c5f5e666984d2..19512a96771481ba10c22249bbc5137e49b1a753 100644
--- a/core/log_io_remote.c
+++ b/core/log_io_remote.c
@@ -23,6 +23,8 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+#include "log_io.h"
+#include "fiber.h"
 
 #include <sys/types.h>
 #include <arpa/inet.h>
@@ -35,7 +37,6 @@
 #include <errno.h>
 
 #include <say.h>
-#include <log_io.h>
 #include <pickle.h>
 
 static u32
diff --git a/core/palloc.c b/core/palloc.c
index b0209cbbd387ad4b4104b7da9e512da3bc1e5cdd..086afb02a448f4c0ddff4cc3da6aebed599b0819 100644
--- a/core/palloc.c
+++ b/core/palloc.c
@@ -24,20 +24,13 @@
  * SUCH DAMAGE.
  */
 
+#include "palloc.h"
+#include "third_party/valgrind/memcheck.h"
 #include "config.h"
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
 
-#include "third_party/valgrind/memcheck.h"
-#include <palloc.h>
-#include <util.h>
-#include <say.h>
+#include <stdlib.h>
+#include <third_party/queue.h>
 #include <tbuf.h>
-#include <stat.h>
 
 struct chunk {
 	uint32_t magic;
@@ -46,8 +39,8 @@ struct chunk {
 	size_t size;
 
 	struct chunk_class *class;
-	 SLIST_ENTRY(chunk) busy_link;
-	 SLIST_ENTRY(chunk) free_link;
+	SLIST_ENTRY(chunk) busy_link;
+	SLIST_ENTRY(chunk) free_link;
 };
 
 SLIST_HEAD(chunk_list_head, chunk);
@@ -212,7 +205,7 @@ poisoned(const char *b, size_t size)
 }
 #endif
 
-static void *__noinline__
+static void * __attribute__((noinline))
 palloc_slow_path(struct palloc_pool *restrict pool, size_t size)
 {
 	struct chunk *chunk;
@@ -227,7 +220,7 @@ palloc_slow_path(struct palloc_pool *restrict pool, size_t size)
 	return ptr;
 }
 
-void *__regparm2__
+void *__attribute((regparm(2)))
 palloc(struct palloc_pool *restrict pool, size_t size)
 {
 	const size_t rz_size = size + PALLOC_REDZONE * 2;
@@ -249,7 +242,7 @@ palloc(struct palloc_pool *restrict pool, size_t size)
 	return ptr + PALLOC_REDZONE;
 }
 
-void *__regparm2__
+void *__attribute__((regparm(2)))
 p0alloc(struct palloc_pool *pool, size_t size)
 {
 	void *ptr;
diff --git a/core/pickle.c b/core/pickle.c
index 4db7e3dfd83ddfd8fd7adb1969aeeddd95c8add4..013c5fe6baaacdc2938ef187fb4d21a4f12132d2 100644
--- a/core/pickle.c
+++ b/core/pickle.c
@@ -24,14 +24,11 @@
  * SUCH DAMAGE.
  */
 
-#include <stdlib.h>
-
-#include <util.h>
+#include "pickle.h"
 #include <tbuf.h>
-#include <palloc.h>
 #include <fiber.h>
 #include <iproto.h>		/* for err codes */
-#include <pickle.h>
+#include "say.h"
 
 /* caller must ensure that there is space in target */
 u8 *
diff --git a/core/salloc.c b/core/salloc.c
index 675076e147a09a43eb316804fa73a23e0f93be38..0d3bb8dde03ee79aaa8f28c1beefc78b7371d94e 100644
--- a/core/salloc.c
+++ b/core/salloc.c
@@ -23,6 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+#include "salloc.h"
 
 #include <stdbool.h>
 #include <stddef.h>
@@ -33,7 +34,6 @@
 
 #include "third_party/valgrind/memcheck.h"
 #include <third_party/queue.h>
-#include <salloc.h>
 #include <util.h>
 #include <tbuf.h>
 #include <say.h>
diff --git a/core/say.c b/core/say.c
index c608a3c7b0f4be91397d258058ed9e9a25682de6..8a29c91fa4952fe5d2fa3a9a444c5458bff10fca 100644
--- a/core/say.c
+++ b/core/say.c
@@ -23,6 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+#include "say.h"
 
 #include <errno.h>
 #include <stdarg.h>
@@ -35,8 +36,8 @@
 #endif
 
 #include <fiber.h>
-#include <say.h>
 #include TARANTOOL_CONFIG
+#include "tarantool.h"
 
 int sayfd = STDERR_FILENO;
 
diff --git a/core/stat.c b/core/stat.c
index 762578bcb47bca79f8a972cf80018a40e83a96fa..9ca48d52e0bc1de644ce79533cc351ba8182da68 100644
--- a/core/stat.c
+++ b/core/stat.c
@@ -23,12 +23,12 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+#include "stat.h"
 
 #include <util.h>
 #include <tarantool_ev.h>
 #include <tbuf.h>
 #include <say.h>
-#include <stat.h>
 
 #include <third_party/khash.h>
 
@@ -106,7 +106,7 @@ stat_print(struct tbuf *buf)
 }
 
 void
-stat_age(ev_timer *timer, int events __unused__)
+stat_age(ev_timer *timer, int events __attribute__((unused)))
 {
 	if (stats == NULL)
 		return;
diff --git a/core/tarantool.c b/core/tarantool.c
index 6964498f288d883b521016ace37b686022deaf8d..6cdecbf398344d8dabe1db3c26f7d2daf71cb114 100644
--- a/core/tarantool.c
+++ b/core/tarantool.c
@@ -23,8 +23,9 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-
+#include "tarantool.h"
 #include "config.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -49,7 +50,6 @@
 #include <salloc.h>
 #include <say.h>
 #include <stat.h>
-#include <tarantool.h>
 #include TARANTOOL_CONFIG
 #include <util.h>
 #include <third_party/gopt/gopt.h>
@@ -171,7 +171,7 @@ tarantool_uptime(void)
 
 #ifdef STORAGE
 int
-snapshot(void *ev __unused__, int events __unused__)
+snapshot(void *ev __attribute__((unused)), int events __attribute__((unused)))
 {
 	pid_t p = fork();
 	if (p < 0) {
diff --git a/core/tbuf.c b/core/tbuf.c
index 52a2dc48da1b59617995feb3e6f41ec2d16618bb..baf47ab863e9553c752e0406cb4ce74a506bb851 100644
--- a/core/tbuf.c
+++ b/core/tbuf.c
@@ -23,15 +23,16 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+#include "tbuf.h"
 
 #include <string.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <stdarg.h>
+#include <stdbool.h>
 
 #include <palloc.h>
 #include <pickle.h>
-#include <tbuf.h>
 #include <util.h>
 
 #ifdef POISON
diff --git a/core/util.c b/core/util.c
index d38f8835b73116152f28dc5a36f002a88b3c26a7..679ea8c1e7600305e093911b6dfd0054bd7158ab 100644
--- a/core/util.c
+++ b/core/util.c
@@ -23,8 +23,8 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+#include "util.h"
 
-#include "config.h"
 #include <stdarg.h>
 #include <stdbool.h>
 #include <stdio.h>
@@ -39,8 +39,8 @@
 #include <bfd.h>
 #endif /* HAVE_BFD */
 
-#include <util.h>
 #include <fiber.h>
+#include "say.h"
 
 void
 close_all_xcpt(int fdc, ...)
diff --git a/include/admin.h b/include/admin.h
index 9e70e8cd6e842ba6b0506c34db5d0323d3299036..fc8afc1af7f35483ea74c595af96da6ee838ba57 100644
--- a/include/admin.h
+++ b/include/admin.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_ADMIN_H_INCLUDED
+#define TARANTOOL_ADMIN_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -24,9 +26,7 @@
  * SUCH DAMAGE.
  */
 
-#ifndef TARANTOOL_ADMIN_H
-#define TARANTOOL_ADMIN_H
 
 int admin_init(void);
 
-#endif
+#endif /* TARANTOOL_ADMIN_H_INCLUDED */
diff --git a/include/coro.h b/include/coro.h
index 32e46a0052b2aae954bbe9d7860a31b918a48664..94b3016e8520e7b4e3582b5d95dc4b0f5dcdc218 100644
--- a/include/coro.h
+++ b/include/coro.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_CORO_H_INCLUDED
+#define TARANTOOL_CORO_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -23,11 +25,8 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+#include <stddef.h> /* size_t */
 
-#ifndef TARANTOOL_CORO_H
-#define TARANTOOL_CORO_H
-
-#include <stdlib.h>
 #include <third_party/coro/coro.h>
 
 struct tarantool_coro {
@@ -40,4 +39,4 @@ struct tarantool_coro *tarantool_coro_create(struct tarantool_coro *ctx, void (*
 					     void *data);
 void tarantool_coro_destroy(struct tarantool_coro *ctx);
 
-#endif
+#endif /* TARANTOOL_CORO_H_INCLUDED */
diff --git a/include/fiber.h b/include/fiber.h
index 9113d06a83ee9b0b51d55e5c35019dbe3cf2bb09..c475dac869068f18c7f347bc5d5f8ceab498ab07 100644
--- a/include/fiber.h
+++ b/include/fiber.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_FIBER_H_INCLUDED
+#define TARANTOOL_FIBER_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -24,22 +26,17 @@
  * SUCH DAMAGE.
  */
 
-#ifndef TARANTOOL_FIBER_H
-#define TARANTOOL_FIBER_H
-
-#include <stdint.h>
-#include <unistd.h>
+#include "config.h"
+#include <stdbool.h>
 #include <sys/uio.h>
-#include <setjmp.h>
 #include <netinet/in.h>
-#include <arpa/inet.h>
 
 #include <tarantool_ev.h>
-#include <palloc.h>
 #include <tbuf.h>
-#include <say.h>
 #include <coro.h>
 #include <util.h>
+#include "third_party/queue.h"
+
 
 #define FIBER_EXIT -1
 
@@ -55,7 +52,7 @@ struct ring {
 
 struct fiber {
 	ev_io io;
-#ifdef BACKTRACE
+#ifdef ENABLE_BACKTRACE
 	void *last_stack_frame;
 #endif
 	int csw;
@@ -72,7 +69,7 @@ struct fiber {
 	struct tbuf *rbuf;
 	struct tbuf *cleanup;
 
-	 SLIST_ENTRY(fiber) link, zombie_link;
+	SLIST_ENTRY(fiber) link, zombie_link;
 
 	struct ring *inbox;
 
@@ -180,4 +177,4 @@ struct child *spawn_child(const char *name,
 			  int inbox_size,
 			  struct tbuf *(*handler) (void *, struct tbuf *), void *state);
 
-#endif
+#endif /* TARANTOOL_FIBER_H_INCLUDED */
diff --git a/include/iproto.h b/include/iproto.h
index 9ad3d5d124f064eea73be530b4e9b40b9fea85d3..2d9b55edf0de0faafa0b5c1c0a9f17a69381527d 100644
--- a/include/iproto.h
+++ b/include/iproto.h
@@ -1,10 +1,31 @@
-#ifndef TARANTOOL_IPROTO_H
-#define TARANTOOL_IPROTO_H
+#ifndef TARANTOOL_IPROTO_H_INCLUDED
+#define TARANTOOL_IPROTO_H_INCLUDED
+/*
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met: 1. Redistributions of source code must
+ * retain the above copyright notice, this list of conditions and
+ * the following disclaimer.  2. Redistributions in binary form
+ * must reproduce the above copyright notice, this list of
+ * conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
 
 #include <stdint.h>
 
-#include <tbuf.h>
-#include <util.h>
+#include <tbuf.h> /* for struct tbuf */
 
 /*
  * struct iproto_header and struct iproto_header_retcode
@@ -16,7 +37,7 @@ struct iproto_header {
 	uint32_t len;
 	uint32_t sync;
 	uint8_t data[];
-} __packed__;
+} __attribute__((packed));
 
 struct iproto_header_retcode {
 	uint32_t msg_code;
@@ -24,7 +45,7 @@ struct iproto_header_retcode {
 	uint32_t sync;
 	uint32_t ret_code;
 	uint8_t data[];
-} __packed__;
+} __attribute__((packed));
 
 static inline struct iproto_header *iproto(const struct tbuf *t)
 {
diff --git a/include/log_io.h b/include/log_io.h
index 64fe367f4230781f36a8d39d55c9192d07388a93..5c7f4fabe39301d7cad553b752aa1c4267329b03 100644
--- a/include/log_io.h
+++ b/include/log_io.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_LOG_IO_H_INCLUDED
+#define TARANTOOL_LOG_IO_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -23,17 +25,16 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-
-#ifndef TARANTOOL_LOG_IO_H
-#define TARANTOOL_LOG_IO_H
-
+#include <stdbool.h>
 #include <stdio.h>
 #include <limits.h>
 
-#include <fiber.h>
 #include <tarantool_ev.h>
 #include <tbuf.h>
 #include <util.h>
+#include <palloc.h>
+
+struct tbuf;
 
 #define RECOVER_READONLY 1
 
@@ -109,7 +110,7 @@ struct wal_write_request {
 	i64 lsn;
 	u32 len;
 	u8 data[];
-} __packed__;
+} __attribute__((packed));
 
 struct row_v11 {
 	u32 header_crc32c;
@@ -118,7 +119,7 @@ struct row_v11 {
 	u32 len;
 	u32 data_crc32c;
 	u8 data[];
-} __packed__;
+} __attribute__((packed));
 
 static inline struct row_v11 *row_v11(const struct tbuf *t)
 {
@@ -152,4 +153,4 @@ struct log_io_iter;
 void snapshot_write_row(struct log_io_iter *i, u16 tag, u64 cookie, struct tbuf *row);
 void snapshot_save(struct recovery_state *r, void (*loop) (struct log_io_iter *));
 
-#endif
+#endif /* TARANTOOL_LOG_IO_H_INCLUDED */
diff --git a/include/palloc.h b/include/palloc.h
index 41a03ce67936786be6294a5323b70627f80652b4..b35992d0516cc19f8ae90db123fde22534288bab 100644
--- a/include/palloc.h
+++ b/include/palloc.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_PALLOC_H_INCLUDED
+#define TARANTOOL_PALLOC_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -24,22 +26,17 @@
  * SUCH DAMAGE.
  */
 
-#ifndef TARANTOOL_PALLOC_H
-#define TARANTOOL_PALLOC_H
-
 #include <stddef.h>
-#include <stdbool.h>
 #include <stdint.h>
+#include "util.h"
 
-#include <tbuf.h>
-#include <util.h>
-#include <third_party/queue.h>
+struct tbuf;
 
 struct palloc_pool;
 extern struct palloc_pool *eter_pool;
 int palloc_init(void);
-void *palloc(struct palloc_pool *pool, size_t size) __regparm2__;
-void *p0alloc(struct palloc_pool *pool, size_t size) __regparm2__;
+void *palloc(struct palloc_pool *pool, size_t size) __attribute__((regparm(2)));
+void *p0alloc(struct palloc_pool *pool, size_t size) __attribute__((regparm(2)));
 void *palloca(struct palloc_pool *pool, size_t size, size_t align);
 void prelease(struct palloc_pool *pool);
 void prelease_after(struct palloc_pool *pool, size_t after);
@@ -50,4 +47,4 @@ size_t palloc_allocated(struct palloc_pool *);
 
 void palloc_stat(struct tbuf *buf);
 
-#endif
+#endif /* TARANTOOL_PALLOC_H_INCLUDED */
diff --git a/include/pickle.h b/include/pickle.h
index fd98135bab5a4b23dd02a9d15bcc4ec2612a96c8..8a51cde6729449e62e3dcb03da258b8bbf4652cf 100644
--- a/include/pickle.h
+++ b/include/pickle.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_PICKLE_H_INCLUDED
+#define TARANTOOL_PICKLE_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -23,12 +25,12 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-
-#ifndef TARANTOOL_PICKLE_H
-#define TARANTOOL_PICKLE_H
+#include <stdbool.h>
 
 #include <util.h>
 
+struct tbuf;
+
 u8 *save_varint32(u8 *target, u32 value);
 void write_varint32(struct tbuf *b, u32 value);
 
@@ -77,4 +79,4 @@ inline static u32 load_varint32(void **data)
 	return 0;
 }
 
-#endif
+#endif /* TARANTOOL_PICKLE_H_INCLUDED */
diff --git a/include/salloc.h b/include/salloc.h
index 86e22bd5dba4a62d76592629d8f116a4056e3e6b..4c9e8773a457d5159711875ba79536428c6cc355 100644
--- a/include/salloc.h
+++ b/include/salloc.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_SALLOC_H_INCLUDED
+#define TARANTOOL_SALLOC_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -24,13 +26,11 @@
  * SUCH DAMAGE.
  */
 
-#ifndef TARANTOOL_SALLOC_H
-#define TARANTOOL_SALLOC_H
-
 #include <stddef.h>
 #include <stdbool.h>
+#include "util.h" /* for u64 */
 
-#include <tbuf.h>
+struct tbuf;
 
 bool salloc_init(size_t size, size_t minimal, double factor);
 void salloc_destroy(void);
@@ -39,4 +39,4 @@ void sfree(void *ptr);
 void slab_validate();
 void slab_stat(struct tbuf *buf);
 void slab_stat2(u64 *bytes_used, u64 *items);
-#endif
+#endif /* TARANTOOL_SALLOC_H_INCLUDED */
diff --git a/include/say.h b/include/say.h
index b89183f2f88cc59205e356d655b11b75ed1e3546..b0f3b009588e0bb56a4c6fb53573a98a63494584 100644
--- a/include/say.h
+++ b/include/say.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_SAY_H_INCLUDED
+#define TARANTOOL_SAY_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -24,14 +26,11 @@
  * SUCH DAMAGE.
  */
 
-#ifndef TARANTOOL_SAY_H
-#define TARANTOOL_SAY_H
-
 #include <stdlib.h>
+#include <stdarg.h>
 #include <errno.h>
 
-#include <util.h>
-#include <tarantool.h>
+#include <util.h> /* for FORMAT_PRINTF */
 
 enum say_level {
 	S_FATAL,		/* do not this value use directly */
@@ -64,4 +63,4 @@ void _say(int level, const char *filename, int line, const char *error,
 #define say_info(...)			say(S_INFO, NULL, __VA_ARGS__)
 #define say_debug(...)			say(S_DEBUG, NULL, __VA_ARGS__)
 
-#endif
+#endif /* TARANTOOL_SAY_H_INCLUDED */
diff --git a/include/stat.h b/include/stat.h
index 85f93774f85e9da37850066c961a4bc8262eba09..5fb30612ff51a0fc93574679a2901ee2a38f248f 100644
--- a/include/stat.h
+++ b/include/stat.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_STAT_H_INCLUDED
+#define TARANTOOL_STAT_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -24,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#ifndef TARANTOOL_STAT_H
-#define TARANTOOL_STAT_H
-
 #include <tbuf.h>
 
 void stat_init(void);
@@ -34,4 +33,4 @@ int stat_register(char **name, size_t count);
 void stat_collect(int base, int name, i64 value);
 void stat_print(struct tbuf *buf);
 
-#endif
+#endif /* TARANTOOL_STAT_H_INCLUDED */
diff --git a/include/tarantool.h b/include/tarantool.h
index 78b80b8c1fab950537f200c9dadd41c7d1c56d11..c317b01c87bb20e0619e182ff1df93138efeb2e2 100644
--- a/include/tarantool.h
+++ b/include/tarantool.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_H_INCLUDED
+#define TARANTOOL_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -24,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#ifndef TARANTOOL_H
-#define TARANTOOL_H
-
 #include <tbuf.h>
 #include <util.h>
 #include <log_io.h>
@@ -48,7 +47,7 @@ extern const char *cfg_filename;
 extern bool init_storage, booting;
 extern char *binary_filename;
 i32 reload_cfg(struct tbuf *out);
-int snapshot(void *ev __unused__, int events __unused__);
+int snapshot(void * /* ev */, int /* events */);
 const char *tarantool_version(void);
 void tarantool_info(struct tbuf *out);
 double tarantool_uptime(void);
@@ -56,4 +55,4 @@ double tarantool_uptime(void);
 char **init_set_proc_title(int argc, char **argv);
 void set_proc_title(const char *format, ...);
 
-#endif /* TARANTOOL_H */
+#endif /* TARANTOOL_H_INCLUDED */
diff --git a/include/tarantool_ev.h b/include/tarantool_ev.h
index ebd7a20d0f37f1af4b1a9834181ece18f94fa3a4..b1757cd81f3fbcd901eda3e4b758f29529c61938 100644
--- a/include/tarantool_ev.h
+++ b/include/tarantool_ev.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_EV_H_INCLUDED
+#define TARANTOOL_EV_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -44,3 +46,4 @@
 #include <unistd.h>
 
 #include "third_party/libev/ev.h"
+#endif /* TARANTOOL_EV_H_INCLUDED */
diff --git a/include/tbuf.h b/include/tbuf.h
index 49c72f301e46ba6eccd7e50fdd92af89efd87ccc..ee07a38f10eb506febcdc0d49f16e2f8ff6743c1 100644
--- a/include/tbuf.h
+++ b/include/tbuf.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_TBUF_H_INCLUDED
+#define TARANTOOL_TBUF_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -24,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#ifndef TARANTOOL_TBUF_H
-#define TARANTOOL_TBUF_H
-
 #include <stdarg.h>
 #include <stddef.h>
 #include <string.h>
@@ -71,4 +70,4 @@ void tbuf_printf(struct tbuf *b, const char *format, ...)
 	__attribute__ ((format(FORMAT_PRINTF, 2, 3)));
 
 char *tbuf_to_hex(const struct tbuf *x);
-#endif
+#endif /* TARANTOOL_TBUF_H_INCLUDED */
diff --git a/include/util.h b/include/util.h
index dc3ccbd9ca516c983d4d8e242a8c1cb093b6e4df..243fde4b94a1af1cf16f7c835c00091c4ed1c9a0 100644
--- a/include/util.h
+++ b/include/util.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_UTIL_H_INCLUDED
+#define TARANTOOL_UTIL_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -23,9 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-
-#ifndef TARANTOOL_UTIL_H
-#define TARANTOOL_UTIL_H
+#include "config.h"
 
 #include <unistd.h>
 
@@ -83,12 +83,6 @@
 #define CACHEALIGN(LEN)			TYPEALIGN(32, (LEN))
 #endif
 
-#define __packed__ __attribute__((packed))
-#define __noinline__ __attribute__((noinline))
-#define __unused__ __attribute__((unused))
-#define __cleanup__(f) __attribute__((cleanup (f)))
-#define __regparm2__  __attribute__((regparm(2)))
-
 typedef uint8_t u8;
 typedef uint16_t u16;
 typedef uint32_t u32;
@@ -139,4 +133,4 @@ void assert_fail(const char *assertion, const char *file,
 		 unsigned int line, const char *function) __attribute__ ((noreturn));
 #endif
 
-#endif
+#endif /* TARANTOOL_UTIL_H_INCLUDED */
diff --git a/mod/box/assoc.h b/mod/box/assoc.h
index db4fe2fd9b35f7d02d6038742ae3a9844b51c8a7..4c8ef83e190bea242aa3c10084e22f8fd3909041 100644
--- a/mod/box/assoc.h
+++ b/mod/box/assoc.h
@@ -1,5 +1,27 @@
-#ifndef BOX_ASSOC_H
-#define BOX_ASSOC_H
+#ifndef TARANTOOL_BOX_ASSOC_H_INCLUDED
+#define TARANTOOL_BOX_ASSOC_H_INCLUDED
+/*
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met: 1. Redistributions of source code must
+ * retain the above copyright notice, this list of conditions and
+ * the following disclaimer.  2. Redistributions in binary form
+ * must reproduce the above copyright notice, this list of
+ * conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
 /* associative array */
 #include <stdint.h>
 #include <stdlib.h>
@@ -7,7 +29,6 @@
 #include <stdbool.h>
 
 #include <third_party/khash.h>
-#include <say.h>
 #include <pickle.h>
 
 typedef void *ptr_t;
@@ -96,4 +117,4 @@ void assoc_init(void);
         for (kiter = kh_begin(hash); kiter != kh_end(hash); ++kiter)  \
                 if (kh_exist(hash, kiter))
 
-#endif
+#endif /* TARANTOOL_BOX_ASSOC_H_INCLUDED */
diff --git a/mod/box/box.c b/mod/box/box.c
index b619cfb4bfd0408e4ba259e58d639220e488670a..8593db8898532e9ef717763af8375642c5095844 100644
--- a/mod/box/box.c
+++ b/mod/box/box.c
@@ -23,11 +23,13 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+#include <mod/box/box.h>
 
 #include <stdarg.h>
 #include <stdint.h>
 #include <stdbool.h>
 #include <errno.h>
+#include <arpa/inet.h>
 
 #include <fiber.h>
 #include <iproto.h>
@@ -41,7 +43,6 @@
 #include <util.h>
 
 #include <cfg/tarantool_box_cfg.h>
-#include <mod/box/box.h>
 #include <mod/box/index.h>
 
 bool box_updates_allowed = false;
@@ -78,7 +79,7 @@ struct box_snap_row {
 	u32 tuple_size;
 	u32 data_size;
 	u8 data[];
-} __packed__;
+} __attribute__((packed));
 
 static inline struct box_snap_row *
 box_snap_row(const struct tbuf *t)
@@ -228,7 +229,7 @@ tuple_txn_ref(struct box_txn *txn, struct box_tuple *tuple)
 	tuple_ref(tuple, +1);
 }
 
-static int __noinline__
+static int __attribute__((noinline))
 prepare_replace(struct box_txn *txn, size_t cardinality, struct tbuf *data)
 {
 	assert(data != NULL);
@@ -421,7 +422,7 @@ do_field_splice(struct tbuf *field, void *args_data, u32 args_data_size)
 	*field = *new_field;
 }
 
-static int __noinline__
+static int __attribute__((noinline))
 prepare_update_fields(struct box_txn *txn, struct tbuf *data)
 {
 	struct tbuf **fields;
@@ -545,7 +546,7 @@ tuple_add_iov(struct box_txn *txn, struct box_tuple *tuple)
 	}
 }
 
-static int __noinline__
+static int __attribute__((noinline))
 process_select(struct box_txn *txn, u32 limit, u32 offset, struct tbuf *data)
 {
 	struct box_tuple *tuple;
@@ -617,7 +618,7 @@ process_select(struct box_txn *txn, u32 limit, u32 offset, struct tbuf *data)
 	return ERR_CODE_OK;
 }
 
-static int __noinline__
+static int __attribute__((noinline))
 prepare_delete(struct box_txn *txn, void *key)
 {
 	txn->old_tuple = txn->index->find(txn->index, key);
@@ -997,7 +998,7 @@ wal_apply(struct box_txn *txn, struct tbuf *t)
 }
 
 static int
-recover_row(struct recovery_state *r __unused__, struct tbuf *t)
+recover_row(struct recovery_state *r __attribute__((unused)), struct tbuf *t)
 {
 	struct box_txn *txn = txn_alloc(0);
 	int result = -1;
@@ -1022,7 +1023,7 @@ recover_row(struct recovery_state *r __unused__, struct tbuf *t)
 }
 
 static int
-snap_print(struct recovery_state *r __unused__, struct tbuf *t)
+snap_print(struct recovery_state *r __attribute__((unused)), struct tbuf *t)
 {
 	struct tbuf *out = tbuf_alloc(t->pool);
 	struct box_snap_row *row;
@@ -1043,7 +1044,7 @@ snap_print(struct recovery_state *r __unused__, struct tbuf *t)
 }
 
 static int
-xlog_print(struct recovery_state *r __unused__, struct tbuf *t)
+xlog_print(struct recovery_state *r __attribute__((unused)), struct tbuf *t)
 {
 	struct tbuf *out = tbuf_alloc(t->pool);
 	int res = box_xlog_sprint(out, t);
@@ -1220,7 +1221,7 @@ title(const char *fmt, ...)
 }
 
 static void
-box_bound_to_primary(void *data __unused__)
+box_bound_to_primary(void *data __attribute__((unused)))
 {
 	recover_finalize(recovery_state);
 
@@ -1242,7 +1243,7 @@ box_bound_to_primary(void *data __unused__)
 }
 
 static void
-memcached_bound_to_primary(void *data __unused__)
+memcached_bound_to_primary(void *data __attribute__((unused)))
 {
 	box_bound_to_primary(NULL);
 
@@ -1253,14 +1254,14 @@ memcached_bound_to_primary(void *data __unused__)
 }
 
 i32
-mod_check_config(struct tarantool_cfg *conf __unused__)
+mod_check_config(struct tarantool_cfg *conf __attribute__((unused)))
 {
 	return 0;
 }
 
 void
-mod_reload_config(struct tarantool_cfg *old_conf __unused__,
-		  struct tarantool_cfg *new_conf __unused__)
+mod_reload_config(struct tarantool_cfg *old_conf __attribute__((unused)),
+		  struct tarantool_cfg *new_conf __attribute__((unused)))
 {
 	return;
 }
@@ -1430,7 +1431,8 @@ mod_info(struct tbuf *out)
 }
 
 void
-mod_exec(char *str __unused__, int len __unused__, struct tbuf *out)
+mod_exec(char *str __attribute__((unused)), int len __attribute__((unused)),
+	 struct tbuf *out)
 {
 	tbuf_printf(out, "unimplemented" CRLF);
 }
diff --git a/mod/box/box.h b/mod/box/box.h
index bf2f40020817d29c11f610fdc8b40b09940ac5cd..a088666435043ebb06ffb9d3b98f3bab941a748c 100644
--- a/mod/box/box.h
+++ b/mod/box/box.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_BOX_H_INCLUDED
+#define TARANTOOL_BOX_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -24,13 +26,10 @@
  * SUCH DAMAGE.
  */
 
-#ifndef TARANTOOL_BOX_H
-#define TARANTOOL_BOX_H
-
 #include <mod/box/index.h>
 
 extern bool box_updates_allowed;
-void memcached_handler(void *_data __unused__);
+void memcached_handler(void * /* data */);
 
 struct namespace;
 struct box_tuple;
@@ -55,7 +54,7 @@ struct box_tuple {
 	u32 bsize;
 	u32 cardinality;
 	u8 data[0];
-} __packed__;
+} __attribute__((packed));
 
 struct box_txn {
 	int op;
@@ -135,5 +134,5 @@ void append_field(struct tbuf *b, void *f);
 void *tuple_field(struct box_tuple *tuple, size_t i);
 
 void memcached_init(void);
-void memcached_expire(void *data __unused__);
-#endif
+void memcached_expire(void * /* data */);
+#endif /* TARANTOOL_BOX_H_INCLUDED */
diff --git a/mod/box/index.c b/mod/box/index.c
index d35624e4d715e1a8176e82fc4ad49b7f9308f0b0..57860c5baab5f2c37d4c8b213c4855d48bacaa52 100644
--- a/mod/box/index.c
+++ b/mod/box/index.c
@@ -593,7 +593,8 @@ index_hash_str(struct index *index, struct namespace *namespace, size_t estimate
 }
 
 void
-index_tree(struct index *index, struct namespace *namespace, size_t estimated_rows __unused__)
+index_tree(struct index *index, struct namespace *namespace,
+	   size_t estimated_rows __attribute__((unused)))
 {
 	index->type = TREE;
 	index->namespace = namespace;
diff --git a/mod/box/index.h b/mod/box/index.h
index db8e5e86cdbc055408e69d6f5fe7aa815414e62d..7c259d6e69186baef9f5841193dd9bbd27880ac8 100644
--- a/mod/box/index.h
+++ b/mod/box/index.h
@@ -1,3 +1,5 @@
+#ifndef TARANTOOL_BOX_INDEX_H_INCLUDED
+#define TARANTOOL_BOX_INDEX_H_INCLUDED
 /*
  * Copyright (C) 2010 Mail.RU
  * Copyright (C) 2010 Yuriy Vostrikov
@@ -23,10 +25,6 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-
-#ifndef TARANTOOL_BOX_INDEX_H
-#define TARANTOOL_BOX_INDEX_H
-
 #include <mod/box/assoc.h>
 
 /**
@@ -112,7 +110,7 @@ struct index {
 void index_hash_num(struct index *index, struct namespace *namespace, size_t estimated_rows);
 void index_hash_num64(struct index *index, struct namespace *namespace, size_t estimated_rows);
 void index_hash_str(struct index *index, struct namespace *namespace, size_t estimated_rows);
-void index_tree(struct index *index, struct namespace *namespace, size_t estimated_rows __unused__);
+void index_tree(struct index *index, struct namespace *namespace, size_t /* estimated_rows */);
 
 struct tree_index_member * alloc_search_pattern(struct index *index, int key_cardinality, void *key);
 void index_iterator_init_tree_str(struct index *self, struct tree_index_member *pattern);
@@ -122,4 +120,4 @@ struct box_txn;
 void validate_indeces(struct box_txn *txn);
 void build_indexes(void);
 
-#endif
+#endif /* TARANTOOL_BOX_INDEX_H_INCLUDED */
diff --git a/mod/box/memcached.c b/mod/box/memcached.c
index 334728e5caff64948761be8126c7ddfebebf41b9..975d22920fa3b57b50b649ccf8ce8faac425d12e 100644
--- a/mod/box/memcached.c
+++ b/mod/box/memcached.c
@@ -37,6 +37,7 @@
 #include <fiber.h>
 #include <util.h>
 #include <pickle.h>
+#include "say.h"
 
 #include <tarantool.h>
 #include <cfg/tarantool_box_cfg.h>
@@ -66,7 +67,7 @@ struct meta {
 } __packed__;
 
 
-#line 70 "mod/box/memcached.c"
+#line 71 "mod/box/memcached.c"
 static const int memcached_start = 1;
 static const int memcached_first_final = 197;
 static const int memcached_error = 0;
@@ -74,7 +75,7 @@ static const int memcached_error = 0;
 static const int memcached_en_main = 1;
 
 
-#line 69 "mod/box/memcached.rl"
+#line 70 "mod/box/memcached.rl"
 
 
 
@@ -223,7 +224,7 @@ flush_all(void *data)
 }
 
 
-static int __noinline__
+static int __attribute__((noinline))
 memcached_dispatch(struct box_txn *txn)
 {
 	int cs;
@@ -263,12 +264,12 @@ memcached_dispatch(struct box_txn *txn)
 })
 
 	
-#line 267 "mod/box/memcached.c"
+#line 268 "mod/box/memcached.c"
 	{
 	cs = memcached_start;
 	}
 
-#line 272 "mod/box/memcached.c"
+#line 273 "mod/box/memcached.c"
 	{
 	if ( p == pe )
 		goto _test_eof;
@@ -326,7 +327,7 @@ case 5:
 		goto st0;
 	goto tr15;
 tr15:
-#line 478 "mod/box/memcached.rl"
+#line 479 "mod/box/memcached.rl"
 	{
 			fstart = p;
 			for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n'; p++);
@@ -343,7 +344,7 @@ case 5:
 	if ( ++p == pe )
 		goto _test_eof6;
 case 6:
-#line 347 "mod/box/memcached.c"
+#line 348 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st7;
 	goto st0;
@@ -357,49 +358,49 @@ case 7:
 		goto tr17;
 	goto st0;
 tr17:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st8;
 st8:
 	if ( ++p == pe )
 		goto _test_eof8;
 case 8:
-#line 368 "mod/box/memcached.c"
+#line 369 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto tr18;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto st8;
 	goto st0;
 tr18:
-#line 501 "mod/box/memcached.rl"
+#line 502 "mod/box/memcached.rl"
 	{flags = natoq(fstart, p);}
 	goto st9;
 st9:
 	if ( ++p == pe )
 		goto _test_eof9;
 case 9:
-#line 382 "mod/box/memcached.c"
+#line 383 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st9;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto tr21;
 	goto st0;
 tr21:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st10;
 st10:
 	if ( ++p == pe )
 		goto _test_eof10;
 case 10:
-#line 396 "mod/box/memcached.c"
+#line 397 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto tr22;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto st10;
 	goto st0;
 tr22:
-#line 494 "mod/box/memcached.rl"
+#line 495 "mod/box/memcached.rl"
 	{
 			exptime = natoq(fstart, p);
 			if (exptime > 0 && exptime <= 60*60*24*30)
@@ -410,21 +411,21 @@ case 10:
 	if ( ++p == pe )
 		goto _test_eof11;
 case 11:
-#line 414 "mod/box/memcached.c"
+#line 415 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st11;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto tr25;
 	goto st0;
 tr25:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st12;
 st12:
 	if ( ++p == pe )
 		goto _test_eof12;
 case 12:
-#line 428 "mod/box/memcached.c"
+#line 429 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr26;
 		case 13: goto tr27;
@@ -434,11 +435,11 @@ case 12:
 		goto st12;
 	goto st0;
 tr26:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -459,13 +460,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 262 "mod/box/memcached.rl"
+#line 263 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -476,9 +477,9 @@ case 12:
 		}
 	goto st197;
 tr30:
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -499,13 +500,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 262 "mod/box/memcached.rl"
+#line 263 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -516,11 +517,11 @@ case 12:
 		}
 	goto st197;
 tr39:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -541,13 +542,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 262 "mod/box/memcached.rl"
+#line 263 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -558,11 +559,11 @@ case 12:
 		}
 	goto st197;
 tr58:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -583,13 +584,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 291 "mod/box/memcached.rl"
+#line 292 "mod/box/memcached.rl"
 	{
 			struct tbuf *b;
 			void *value;
@@ -618,9 +619,9 @@ case 12:
 		}
 	goto st197;
 tr62:
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -641,13 +642,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 291 "mod/box/memcached.rl"
+#line 292 "mod/box/memcached.rl"
 	{
 			struct tbuf *b;
 			void *value;
@@ -676,11 +677,11 @@ case 12:
 		}
 	goto st197;
 tr71:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -701,13 +702,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 291 "mod/box/memcached.rl"
+#line 292 "mod/box/memcached.rl"
 	{
 			struct tbuf *b;
 			void *value;
@@ -736,11 +737,11 @@ case 12:
 		}
 	goto st197;
 tr91:
-#line 503 "mod/box/memcached.rl"
+#line 504 "mod/box/memcached.rl"
 	{cas = natoq(fstart, p);}
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -761,13 +762,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 280 "mod/box/memcached.rl"
+#line 281 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -780,9 +781,9 @@ case 12:
 		}
 	goto st197;
 tr95:
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -803,13 +804,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 280 "mod/box/memcached.rl"
+#line 281 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -822,11 +823,11 @@ case 12:
 		}
 	goto st197;
 tr105:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -847,13 +848,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 280 "mod/box/memcached.rl"
+#line 281 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -866,17 +867,17 @@ case 12:
 		}
 	goto st197;
 tr118:
-#line 504 "mod/box/memcached.rl"
+#line 505 "mod/box/memcached.rl"
 	{incr = natoq(fstart, p);}
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 318 "mod/box/memcached.rl"
+#line 319 "mod/box/memcached.rl"
 	{
 			struct meta *m;
 			struct tbuf *b;
@@ -929,15 +930,15 @@ case 12:
 		}
 	goto st197;
 tr122:
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 318 "mod/box/memcached.rl"
+#line 319 "mod/box/memcached.rl"
 	{
 			struct meta *m;
 			struct tbuf *b;
@@ -990,17 +991,17 @@ case 12:
 		}
 	goto st197;
 tr132:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 318 "mod/box/memcached.rl"
+#line 319 "mod/box/memcached.rl"
 	{
 			struct meta *m;
 			struct tbuf *b;
@@ -1053,15 +1054,15 @@ case 12:
 		}
 	goto st197;
 tr141:
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 369 "mod/box/memcached.rl"
+#line 370 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -1076,21 +1077,21 @@ case 12:
 		}
 	goto st197;
 tr146:
-#line 494 "mod/box/memcached.rl"
+#line 495 "mod/box/memcached.rl"
 	{
 			exptime = natoq(fstart, p);
 			if (exptime > 0 && exptime <= 60*60*24*30)
 				exptime = exptime + ev_now();
 		}
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 369 "mod/box/memcached.rl"
+#line 370 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -1105,17 +1106,17 @@ case 12:
 		}
 	goto st197;
 tr157:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 369 "mod/box/memcached.rl"
+#line 370 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -1130,15 +1131,15 @@ case 12:
 		}
 	goto st197;
 tr169:
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 459 "mod/box/memcached.rl"
+#line 460 "mod/box/memcached.rl"
 	{
 			if (flush_delay > 0) {
 				struct fiber *f = fiber_create("flush_all", -1, -1, flush_all, (void *)flush_delay);
@@ -1150,17 +1151,17 @@ case 12:
 		}
 	goto st197;
 tr174:
-#line 505 "mod/box/memcached.rl"
+#line 506 "mod/box/memcached.rl"
 	{flush_delay = natoq(fstart, p);}
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 459 "mod/box/memcached.rl"
+#line 460 "mod/box/memcached.rl"
 	{
 			if (flush_delay > 0) {
 				struct fiber *f = fiber_create("flush_all", -1, -1, flush_all, (void *)flush_delay);
@@ -1172,17 +1173,17 @@ case 12:
 		}
 	goto st197;
 tr185:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 459 "mod/box/memcached.rl"
+#line 460 "mod/box/memcached.rl"
 	{
 			if (flush_delay > 0) {
 				struct fiber *f = fiber_create("flush_all", -1, -1, flush_all, (void *)flush_delay);
@@ -1194,15 +1195,15 @@ case 12:
 		}
 	goto st197;
 tr195:
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 382 "mod/box/memcached.rl"
+#line 383 "mod/box/memcached.rl"
 	{
 			txn->op = SELECT;
 			fiber_register_cleanup((void *)txn_cleanup, txn);
@@ -1281,25 +1282,25 @@ case 12:
 		}
 	goto st197;
 tr213:
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 473 "mod/box/memcached.rl"
+#line 474 "mod/box/memcached.rl"
 	{
 			return 0;
 		}
 	goto st197;
 tr233:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1320,13 +1321,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 271 "mod/box/memcached.rl"
+#line 272 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -1337,9 +1338,9 @@ case 12:
 		}
 	goto st197;
 tr237:
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1360,13 +1361,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 271 "mod/box/memcached.rl"
+#line 272 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -1377,11 +1378,11 @@ case 12:
 		}
 	goto st197;
 tr246:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1402,13 +1403,13 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 271 "mod/box/memcached.rl"
+#line 272 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			struct box_tuple *tuple = find(key);
@@ -1419,11 +1420,11 @@ case 12:
 		}
 	goto st197;
 tr263:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1444,22 +1445,22 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 257 "mod/box/memcached.rl"
+#line 258 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			STORE;
 		}
 	goto st197;
 tr267:
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1480,24 +1481,24 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 257 "mod/box/memcached.rl"
+#line 258 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			STORE;
 		}
 	goto st197;
 tr276:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 507 "mod/box/memcached.rl"
+#line 508 "mod/box/memcached.rl"
 	{
 			size_t parsed = p - (u8 *)fiber->rbuf->data;
 			while (fiber->rbuf->len - parsed < bytes + 2) {
@@ -1518,28 +1519,28 @@ case 12:
 				goto exit;
 			}
 		}
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 257 "mod/box/memcached.rl"
+#line 258 "mod/box/memcached.rl"
 	{
 			key = read_field(keys);
 			STORE;
 		}
 	goto st197;
 tr281:
-#line 534 "mod/box/memcached.rl"
+#line 535 "mod/box/memcached.rl"
 	{ p++; }
-#line 528 "mod/box/memcached.rl"
+#line 529 "mod/box/memcached.rl"
 	{
 			done = true;
 			stats.bytes_read += p - (u8 *)fiber->rbuf->data;
 			tbuf_peek(fiber->rbuf, p - (u8 *)fiber->rbuf->data);
 		}
-#line 469 "mod/box/memcached.rl"
+#line 470 "mod/box/memcached.rl"
 	{
 			print_stats();
 		}
@@ -1548,33 +1549,33 @@ case 12:
 	if ( ++p == pe )
 		goto _test_eof197;
 case 197:
-#line 1552 "mod/box/memcached.c"
+#line 1553 "mod/box/memcached.c"
 	goto st0;
 tr27:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
 	goto st13;
 tr40:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st13;
 st13:
 	if ( ++p == pe )
 		goto _test_eof13;
 case 13:
-#line 1566 "mod/box/memcached.c"
+#line 1567 "mod/box/memcached.c"
 	if ( (*p) == 10 )
 		goto tr30;
 	goto st0;
 tr28:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
 	goto st14;
 st14:
 	if ( ++p == pe )
 		goto _test_eof14;
 case 14:
-#line 1578 "mod/box/memcached.c"
+#line 1579 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 32: goto st14;
 		case 110: goto st15;
@@ -1667,18 +1668,18 @@ case 26:
 		goto tr45;
 	goto st0;
 tr45:
-#line 542 "mod/box/memcached.rl"
+#line 543 "mod/box/memcached.rl"
 	{append = true; }
 	goto st27;
 tr209:
-#line 543 "mod/box/memcached.rl"
+#line 544 "mod/box/memcached.rl"
 	{append = false;}
 	goto st27;
 st27:
 	if ( ++p == pe )
 		goto _test_eof27;
 case 27:
-#line 1682 "mod/box/memcached.c"
+#line 1683 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 13: goto st0;
 		case 32: goto st27;
@@ -1687,7 +1688,7 @@ case 27:
 		goto st0;
 	goto tr46;
 tr46:
-#line 478 "mod/box/memcached.rl"
+#line 479 "mod/box/memcached.rl"
 	{
 			fstart = p;
 			for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n'; p++);
@@ -1704,7 +1705,7 @@ case 27:
 	if ( ++p == pe )
 		goto _test_eof28;
 case 28:
-#line 1708 "mod/box/memcached.c"
+#line 1709 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st29;
 	goto st0;
@@ -1718,49 +1719,49 @@ case 29:
 		goto tr49;
 	goto st0;
 tr49:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st30;
 st30:
 	if ( ++p == pe )
 		goto _test_eof30;
 case 30:
-#line 1729 "mod/box/memcached.c"
+#line 1730 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto tr50;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto st30;
 	goto st0;
 tr50:
-#line 501 "mod/box/memcached.rl"
+#line 502 "mod/box/memcached.rl"
 	{flags = natoq(fstart, p);}
 	goto st31;
 st31:
 	if ( ++p == pe )
 		goto _test_eof31;
 case 31:
-#line 1743 "mod/box/memcached.c"
+#line 1744 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st31;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto tr53;
 	goto st0;
 tr53:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st32;
 st32:
 	if ( ++p == pe )
 		goto _test_eof32;
 case 32:
-#line 1757 "mod/box/memcached.c"
+#line 1758 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto tr54;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto st32;
 	goto st0;
 tr54:
-#line 494 "mod/box/memcached.rl"
+#line 495 "mod/box/memcached.rl"
 	{
 			exptime = natoq(fstart, p);
 			if (exptime > 0 && exptime <= 60*60*24*30)
@@ -1771,21 +1772,21 @@ case 32:
 	if ( ++p == pe )
 		goto _test_eof33;
 case 33:
-#line 1775 "mod/box/memcached.c"
+#line 1776 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st33;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto tr57;
 	goto st0;
 tr57:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st34;
 st34:
 	if ( ++p == pe )
 		goto _test_eof34;
 case 34:
-#line 1789 "mod/box/memcached.c"
+#line 1790 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr58;
 		case 13: goto tr59;
@@ -1795,30 +1796,30 @@ case 34:
 		goto st34;
 	goto st0;
 tr59:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
 	goto st35;
 tr72:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st35;
 st35:
 	if ( ++p == pe )
 		goto _test_eof35;
 case 35:
-#line 1810 "mod/box/memcached.c"
+#line 1811 "mod/box/memcached.c"
 	if ( (*p) == 10 )
 		goto tr62;
 	goto st0;
 tr60:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
 	goto st36;
 st36:
 	if ( ++p == pe )
 		goto _test_eof36;
 case 36:
-#line 1822 "mod/box/memcached.c"
+#line 1823 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 32: goto st36;
 		case 110: goto st37;
@@ -1908,7 +1909,7 @@ case 47:
 		goto st0;
 	goto tr76;
 tr76:
-#line 478 "mod/box/memcached.rl"
+#line 479 "mod/box/memcached.rl"
 	{
 			fstart = p;
 			for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n'; p++);
@@ -1925,7 +1926,7 @@ case 47:
 	if ( ++p == pe )
 		goto _test_eof48;
 case 48:
-#line 1929 "mod/box/memcached.c"
+#line 1930 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st49;
 	goto st0;
@@ -1939,49 +1940,49 @@ case 49:
 		goto tr78;
 	goto st0;
 tr78:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st50;
 st50:
 	if ( ++p == pe )
 		goto _test_eof50;
 case 50:
-#line 1950 "mod/box/memcached.c"
+#line 1951 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto tr79;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto st50;
 	goto st0;
 tr79:
-#line 501 "mod/box/memcached.rl"
+#line 502 "mod/box/memcached.rl"
 	{flags = natoq(fstart, p);}
 	goto st51;
 st51:
 	if ( ++p == pe )
 		goto _test_eof51;
 case 51:
-#line 1964 "mod/box/memcached.c"
+#line 1965 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st51;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto tr82;
 	goto st0;
 tr82:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st52;
 st52:
 	if ( ++p == pe )
 		goto _test_eof52;
 case 52:
-#line 1978 "mod/box/memcached.c"
+#line 1979 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto tr83;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto st52;
 	goto st0;
 tr83:
-#line 494 "mod/box/memcached.rl"
+#line 495 "mod/box/memcached.rl"
 	{
 			exptime = natoq(fstart, p);
 			if (exptime > 0 && exptime <= 60*60*24*30)
@@ -1992,49 +1993,49 @@ case 52:
 	if ( ++p == pe )
 		goto _test_eof53;
 case 53:
-#line 1996 "mod/box/memcached.c"
+#line 1997 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st53;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto tr86;
 	goto st0;
 tr86:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st54;
 st54:
 	if ( ++p == pe )
 		goto _test_eof54;
 case 54:
-#line 2010 "mod/box/memcached.c"
+#line 2011 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto tr87;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto st54;
 	goto st0;
 tr87:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
 	goto st55;
 st55:
 	if ( ++p == pe )
 		goto _test_eof55;
 case 55:
-#line 2024 "mod/box/memcached.c"
+#line 2025 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st55;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto tr90;
 	goto st0;
 tr90:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st56;
 st56:
 	if ( ++p == pe )
 		goto _test_eof56;
 case 56:
-#line 2038 "mod/box/memcached.c"
+#line 2039 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr91;
 		case 13: goto tr92;
@@ -2044,30 +2045,30 @@ case 56:
 		goto st56;
 	goto st0;
 tr106:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st57;
 tr92:
-#line 503 "mod/box/memcached.rl"
+#line 504 "mod/box/memcached.rl"
 	{cas = natoq(fstart, p);}
 	goto st57;
 st57:
 	if ( ++p == pe )
 		goto _test_eof57;
 case 57:
-#line 2059 "mod/box/memcached.c"
+#line 2060 "mod/box/memcached.c"
 	if ( (*p) == 10 )
 		goto tr95;
 	goto st0;
 tr93:
-#line 503 "mod/box/memcached.rl"
+#line 504 "mod/box/memcached.rl"
 	{cas = natoq(fstart, p);}
 	goto st58;
 st58:
 	if ( ++p == pe )
 		goto _test_eof58;
 case 58:
-#line 2071 "mod/box/memcached.c"
+#line 2072 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr95;
 		case 13: goto st57;
@@ -2128,14 +2129,14 @@ case 65:
 	}
 	goto st0;
 tr107:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st66;
 st66:
 	if ( ++p == pe )
 		goto _test_eof66;
 case 66:
-#line 2139 "mod/box/memcached.c"
+#line 2140 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr95;
 		case 13: goto st57;
@@ -2173,18 +2174,18 @@ case 70:
 		goto tr113;
 	goto st0;
 tr113:
-#line 551 "mod/box/memcached.rl"
+#line 552 "mod/box/memcached.rl"
 	{incr_sign = -1;}
 	goto st71;
 tr202:
-#line 550 "mod/box/memcached.rl"
+#line 551 "mod/box/memcached.rl"
 	{incr_sign = 1; }
 	goto st71;
 st71:
 	if ( ++p == pe )
 		goto _test_eof71;
 case 71:
-#line 2188 "mod/box/memcached.c"
+#line 2189 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 13: goto st0;
 		case 32: goto st71;
@@ -2193,7 +2194,7 @@ case 71:
 		goto st0;
 	goto tr114;
 tr114:
-#line 478 "mod/box/memcached.rl"
+#line 479 "mod/box/memcached.rl"
 	{
 			fstart = p;
 			for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n'; p++);
@@ -2210,7 +2211,7 @@ case 71:
 	if ( ++p == pe )
 		goto _test_eof72;
 case 72:
-#line 2214 "mod/box/memcached.c"
+#line 2215 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st73;
 	goto st0;
@@ -2224,14 +2225,14 @@ case 73:
 		goto tr117;
 	goto st0;
 tr117:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st74;
 st74:
 	if ( ++p == pe )
 		goto _test_eof74;
 case 74:
-#line 2235 "mod/box/memcached.c"
+#line 2236 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr118;
 		case 13: goto tr119;
@@ -2241,30 +2242,30 @@ case 74:
 		goto st74;
 	goto st0;
 tr133:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st75;
 tr119:
-#line 504 "mod/box/memcached.rl"
+#line 505 "mod/box/memcached.rl"
 	{incr = natoq(fstart, p);}
 	goto st75;
 st75:
 	if ( ++p == pe )
 		goto _test_eof75;
 case 75:
-#line 2256 "mod/box/memcached.c"
+#line 2257 "mod/box/memcached.c"
 	if ( (*p) == 10 )
 		goto tr122;
 	goto st0;
 tr120:
-#line 504 "mod/box/memcached.rl"
+#line 505 "mod/box/memcached.rl"
 	{incr = natoq(fstart, p);}
 	goto st76;
 st76:
 	if ( ++p == pe )
 		goto _test_eof76;
 case 76:
-#line 2268 "mod/box/memcached.c"
+#line 2269 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr122;
 		case 13: goto st75;
@@ -2325,14 +2326,14 @@ case 83:
 	}
 	goto st0;
 tr134:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st84;
 st84:
 	if ( ++p == pe )
 		goto _test_eof84;
 case 84:
-#line 2336 "mod/box/memcached.c"
+#line 2337 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr122;
 		case 13: goto st75;
@@ -2379,7 +2380,7 @@ case 89:
 		goto st0;
 	goto tr140;
 tr140:
-#line 478 "mod/box/memcached.rl"
+#line 479 "mod/box/memcached.rl"
 	{
 			fstart = p;
 			for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n'; p++);
@@ -2396,7 +2397,7 @@ case 89:
 	if ( ++p == pe )
 		goto _test_eof90;
 case 90:
-#line 2400 "mod/box/memcached.c"
+#line 2401 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr141;
 		case 13: goto st91;
@@ -2404,7 +2405,7 @@ case 90:
 	}
 	goto st0;
 tr147:
-#line 494 "mod/box/memcached.rl"
+#line 495 "mod/box/memcached.rl"
 	{
 			exptime = natoq(fstart, p);
 			if (exptime > 0 && exptime <= 60*60*24*30)
@@ -2412,14 +2413,14 @@ case 90:
 		}
 	goto st91;
 tr158:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st91;
 st91:
 	if ( ++p == pe )
 		goto _test_eof91;
 case 91:
-#line 2423 "mod/box/memcached.c"
+#line 2424 "mod/box/memcached.c"
 	if ( (*p) == 10 )
 		goto tr141;
 	goto st0;
@@ -2437,14 +2438,14 @@ case 92:
 		goto tr144;
 	goto st0;
 tr144:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st93;
 st93:
 	if ( ++p == pe )
 		goto _test_eof93;
 case 93:
-#line 2448 "mod/box/memcached.c"
+#line 2449 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr146;
 		case 13: goto tr147;
@@ -2454,7 +2455,7 @@ case 93:
 		goto st93;
 	goto st0;
 tr148:
-#line 494 "mod/box/memcached.rl"
+#line 495 "mod/box/memcached.rl"
 	{
 			exptime = natoq(fstart, p);
 			if (exptime > 0 && exptime <= 60*60*24*30)
@@ -2465,7 +2466,7 @@ case 93:
 	if ( ++p == pe )
 		goto _test_eof94;
 case 94:
-#line 2469 "mod/box/memcached.c"
+#line 2470 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr141;
 		case 13: goto st91;
@@ -2526,14 +2527,14 @@ case 101:
 	}
 	goto st0;
 tr159:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st102;
 st102:
 	if ( ++p == pe )
 		goto _test_eof102;
 case 102:
-#line 2537 "mod/box/memcached.c"
+#line 2538 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr141;
 		case 13: goto st91;
@@ -2607,18 +2608,18 @@ case 111:
 	}
 	goto st0;
 tr186:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st112;
 tr175:
-#line 505 "mod/box/memcached.rl"
+#line 506 "mod/box/memcached.rl"
 	{flush_delay = natoq(fstart, p);}
 	goto st112;
 st112:
 	if ( ++p == pe )
 		goto _test_eof112;
 case 112:
-#line 2622 "mod/box/memcached.c"
+#line 2623 "mod/box/memcached.c"
 	if ( (*p) == 10 )
 		goto tr169;
 	goto st0;
@@ -2636,14 +2637,14 @@ case 113:
 		goto tr172;
 	goto st0;
 tr172:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st114;
 st114:
 	if ( ++p == pe )
 		goto _test_eof114;
 case 114:
-#line 2647 "mod/box/memcached.c"
+#line 2648 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr174;
 		case 13: goto tr175;
@@ -2653,14 +2654,14 @@ case 114:
 		goto st114;
 	goto st0;
 tr176:
-#line 505 "mod/box/memcached.rl"
+#line 506 "mod/box/memcached.rl"
 	{flush_delay = natoq(fstart, p);}
 	goto st115;
 st115:
 	if ( ++p == pe )
 		goto _test_eof115;
 case 115:
-#line 2664 "mod/box/memcached.c"
+#line 2665 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr169;
 		case 13: goto st112;
@@ -2721,14 +2722,14 @@ case 122:
 	}
 	goto st0;
 tr187:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st123;
 st123:
 	if ( ++p == pe )
 		goto _test_eof123;
 case 123:
-#line 2732 "mod/box/memcached.c"
+#line 2733 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr169;
 		case 13: goto st112;
@@ -2759,18 +2760,18 @@ case 126:
 	}
 	goto st0;
 tr191:
-#line 547 "mod/box/memcached.rl"
+#line 548 "mod/box/memcached.rl"
 	{show_cas = false;}
 	goto st127;
 tr198:
-#line 548 "mod/box/memcached.rl"
+#line 549 "mod/box/memcached.rl"
 	{show_cas = true;}
 	goto st127;
 st127:
 	if ( ++p == pe )
 		goto _test_eof127;
 case 127:
-#line 2774 "mod/box/memcached.c"
+#line 2775 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 13: goto st0;
 		case 32: goto st127;
@@ -2779,7 +2780,7 @@ case 127:
 		goto st0;
 	goto tr193;
 tr193:
-#line 478 "mod/box/memcached.rl"
+#line 479 "mod/box/memcached.rl"
 	{
 			fstart = p;
 			for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n'; p++);
@@ -2796,7 +2797,7 @@ case 127:
 	if ( ++p == pe )
 		goto _test_eof128;
 case 128:
-#line 2800 "mod/box/memcached.c"
+#line 2801 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr195;
 		case 13: goto st129;
@@ -3003,7 +3004,7 @@ case 155:
 		goto st0;
 	goto tr222;
 tr222:
-#line 478 "mod/box/memcached.rl"
+#line 479 "mod/box/memcached.rl"
 	{
 			fstart = p;
 			for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n'; p++);
@@ -3020,7 +3021,7 @@ case 155:
 	if ( ++p == pe )
 		goto _test_eof156;
 case 156:
-#line 3024 "mod/box/memcached.c"
+#line 3025 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st157;
 	goto st0;
@@ -3034,49 +3035,49 @@ case 157:
 		goto tr224;
 	goto st0;
 tr224:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st158;
 st158:
 	if ( ++p == pe )
 		goto _test_eof158;
 case 158:
-#line 3045 "mod/box/memcached.c"
+#line 3046 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto tr225;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto st158;
 	goto st0;
 tr225:
-#line 501 "mod/box/memcached.rl"
+#line 502 "mod/box/memcached.rl"
 	{flags = natoq(fstart, p);}
 	goto st159;
 st159:
 	if ( ++p == pe )
 		goto _test_eof159;
 case 159:
-#line 3059 "mod/box/memcached.c"
+#line 3060 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st159;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto tr228;
 	goto st0;
 tr228:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st160;
 st160:
 	if ( ++p == pe )
 		goto _test_eof160;
 case 160:
-#line 3073 "mod/box/memcached.c"
+#line 3074 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto tr229;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto st160;
 	goto st0;
 tr229:
-#line 494 "mod/box/memcached.rl"
+#line 495 "mod/box/memcached.rl"
 	{
 			exptime = natoq(fstart, p);
 			if (exptime > 0 && exptime <= 60*60*24*30)
@@ -3087,21 +3088,21 @@ case 160:
 	if ( ++p == pe )
 		goto _test_eof161;
 case 161:
-#line 3091 "mod/box/memcached.c"
+#line 3092 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st161;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto tr232;
 	goto st0;
 tr232:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st162;
 st162:
 	if ( ++p == pe )
 		goto _test_eof162;
 case 162:
-#line 3105 "mod/box/memcached.c"
+#line 3106 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr233;
 		case 13: goto tr234;
@@ -3111,30 +3112,30 @@ case 162:
 		goto st162;
 	goto st0;
 tr234:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
 	goto st163;
 tr247:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st163;
 st163:
 	if ( ++p == pe )
 		goto _test_eof163;
 case 163:
-#line 3126 "mod/box/memcached.c"
+#line 3127 "mod/box/memcached.c"
 	if ( (*p) == 10 )
 		goto tr237;
 	goto st0;
 tr235:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
 	goto st164;
 st164:
 	if ( ++p == pe )
 		goto _test_eof164;
 case 164:
-#line 3138 "mod/box/memcached.c"
+#line 3139 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 32: goto st164;
 		case 110: goto st165;
@@ -3226,7 +3227,7 @@ case 175:
 		goto st0;
 	goto tr252;
 tr252:
-#line 478 "mod/box/memcached.rl"
+#line 479 "mod/box/memcached.rl"
 	{
 			fstart = p;
 			for (; p < pe && *p != ' ' && *p != '\r' && *p != '\n'; p++);
@@ -3243,7 +3244,7 @@ case 175:
 	if ( ++p == pe )
 		goto _test_eof176;
 case 176:
-#line 3247 "mod/box/memcached.c"
+#line 3248 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st177;
 	goto st0;
@@ -3257,49 +3258,49 @@ case 177:
 		goto tr254;
 	goto st0;
 tr254:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st178;
 st178:
 	if ( ++p == pe )
 		goto _test_eof178;
 case 178:
-#line 3268 "mod/box/memcached.c"
+#line 3269 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto tr255;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto st178;
 	goto st0;
 tr255:
-#line 501 "mod/box/memcached.rl"
+#line 502 "mod/box/memcached.rl"
 	{flags = natoq(fstart, p);}
 	goto st179;
 st179:
 	if ( ++p == pe )
 		goto _test_eof179;
 case 179:
-#line 3282 "mod/box/memcached.c"
+#line 3283 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st179;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto tr258;
 	goto st0;
 tr258:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st180;
 st180:
 	if ( ++p == pe )
 		goto _test_eof180;
 case 180:
-#line 3296 "mod/box/memcached.c"
+#line 3297 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto tr259;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto st180;
 	goto st0;
 tr259:
-#line 494 "mod/box/memcached.rl"
+#line 495 "mod/box/memcached.rl"
 	{
 			exptime = natoq(fstart, p);
 			if (exptime > 0 && exptime <= 60*60*24*30)
@@ -3310,21 +3311,21 @@ case 180:
 	if ( ++p == pe )
 		goto _test_eof181;
 case 181:
-#line 3314 "mod/box/memcached.c"
+#line 3315 "mod/box/memcached.c"
 	if ( (*p) == 32 )
 		goto st181;
 	if ( 48 <= (*p) && (*p) <= 57 )
 		goto tr262;
 	goto st0;
 tr262:
-#line 477 "mod/box/memcached.rl"
+#line 478 "mod/box/memcached.rl"
 	{ fstart = p; }
 	goto st182;
 st182:
 	if ( ++p == pe )
 		goto _test_eof182;
 case 182:
-#line 3328 "mod/box/memcached.c"
+#line 3329 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 10: goto tr263;
 		case 13: goto tr264;
@@ -3334,30 +3335,30 @@ case 182:
 		goto st182;
 	goto st0;
 tr264:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
 	goto st183;
 tr277:
-#line 536 "mod/box/memcached.rl"
+#line 537 "mod/box/memcached.rl"
 	{ noreply = true; }
 	goto st183;
 st183:
 	if ( ++p == pe )
 		goto _test_eof183;
 case 183:
-#line 3349 "mod/box/memcached.c"
+#line 3350 "mod/box/memcached.c"
 	if ( (*p) == 10 )
 		goto tr267;
 	goto st0;
 tr265:
-#line 502 "mod/box/memcached.rl"
+#line 503 "mod/box/memcached.rl"
 	{bytes = natoq(fstart, p);}
 	goto st184;
 st184:
 	if ( ++p == pe )
 		goto _test_eof184;
 case 184:
-#line 3361 "mod/box/memcached.c"
+#line 3362 "mod/box/memcached.c"
 	switch( (*p) ) {
 		case 32: goto st184;
 		case 110: goto st185;
@@ -3653,7 +3654,7 @@ case 196:
 	_out: {}
 	}
 
-#line 561 "mod/box/memcached.rl"
+#line 562 "mod/box/memcached.rl"
 
 
 	if (!done) {
@@ -3683,7 +3684,7 @@ case 196:
 }
 
 void
-memcached_handler(void *_data __unused__)
+memcached_handler(void *_data __attribute__((unused)))
 {
 	struct box_txn *txn;
 	stats.total_connections++;
@@ -3744,7 +3745,7 @@ memcached_init(void)
 }
 
 void
-memcached_expire(void *data __unused__)
+memcached_expire(void *data __attribute__((unused)))
 {
 	static khiter_t i;
 	khash_t(lstr_ptr_map) *map = memcached_index->idx.str_hash;
diff --git a/mod/box/memcached.rl b/mod/box/memcached.rl
index 8d857b70739c37f12a611ef4f662fcc38e6638c4..c06129c09208ba0031a060c80bbbc2b9c1a85d21 100644
--- a/mod/box/memcached.rl
+++ b/mod/box/memcached.rl
@@ -35,6 +35,7 @@
 #include <fiber.h>
 #include <util.h>
 #include <pickle.h>
+#include "say.h"
 
 #include <tarantool.h>
 #include <cfg/tarantool_box_cfg.h>
@@ -214,7 +215,7 @@ flush_all(void *data)
 }
 
 
-static int __noinline__
+static int __attribute__((noinline))
 memcached_dispatch(struct box_txn *txn)
 {
 	int cs;
@@ -587,7 +588,7 @@ memcached_dispatch(struct box_txn *txn)
 }
 
 void
-memcached_handler(void *_data __unused__)
+memcached_handler(void *_data __attribute__((unused)))
 {
 	struct box_txn *txn;
 	stats.total_connections++;
@@ -648,7 +649,7 @@ memcached_init(void)
 }
 
 void
-memcached_expire(void *data __unused__)
+memcached_expire(void *data __attribute__((unused)))
 {
 	static khiter_t i;
 	khash_t(lstr_ptr_map) *map = memcached_index->idx.str_hash;
diff --git a/mod/feeder/feeder.c b/mod/feeder/feeder.c
index d9454a39d6b91df8131b04eb982e5c88f26bcb43..6a5d515109de91ee33cfeb7d9a6a60823505fa48 100644
--- a/mod/feeder/feeder.c
+++ b/mod/feeder/feeder.c
@@ -27,15 +27,20 @@
 #include <string.h>
 #include <sys/types.h>
 #include <sys/socket.h>
+#include <arpa/inet.h>
 
 #include <fiber.h>
 #include <util.h>
 #include "cfg/tarantool_feeder_cfg.h"
+#include "palloc.h"
+#include "log_io.h"
+#include "say.h"
+#include "tarantool.h"
 
 static char *custom_proc_title;
 
 static int
-send_row(struct recovery_state *r __unused__, struct tbuf *t)
+send_row(struct recovery_state *r __attribute__((unused)), struct tbuf *t)
 {
 	u8 *data = t->data;
 	ssize_t bytes, len = t->len;
@@ -89,14 +94,14 @@ recover_feed_slave(int sock)
 }
 
 i32
-mod_check_config(struct tarantool_cfg *conf __unused__)
+mod_check_config(struct tarantool_cfg *conf __attribute__((unused)))
 {
 	return 0;
 }
 
 void
-mod_reload_config(struct tarantool_cfg *old_conf __unused__,
-		  struct tarantool_cfg *new_conf __unused__)
+mod_reload_config(struct tarantool_cfg *old_conf __attribute__((unused)),
+		  struct tarantool_cfg *new_conf __attribute__((unused)))
 {
 	return;
 }
@@ -179,7 +184,8 @@ mod_init(void)
 }
 
 void
-mod_exec(char *str __unused__, int len __unused__, struct tbuf *out)
+mod_exec(char *str __attribute__((unused)), int len __attribute__((unused)),
+	 struct tbuf *out)
 {
 	tbuf_printf(out, "Unimplemented");
 }
diff --git a/third_party/gopt/gopt.h b/third_party/gopt/gopt.h
index c2a7f7b51b0bf83251d7eaa6096950a5d4f74f7f..e826ad314c5c0756d16146cc6dec8cc478c36ae2 100644
--- a/third_party/gopt/gopt.h
+++ b/third_party/gopt/gopt.h
@@ -1,3 +1,5 @@
+#ifndef GOPT_H_INCLUDED
+#define GOPT_H_INCLUDED
 /* gopt.h version 8.1: tom.viza@gmail.com PUBLIC DOMAIN 2003-8 */
 /*
 I, Tom Vajzovic, am the author of this software and its documentation and
@@ -17,8 +19,6 @@ Before modifying or distributing this software I ask that you would please
 read http://www.purposeful.co.uk/tfl/
 */
 
-#ifndef GOPT_H_INCLUDED
-#define GOPT_H_INCLUDED
 
 #define GOPT_ONCE   0
 #define GOPT_REPEAT 1