Skip to content
Snippets Groups Projects
  1. Oct 14, 2021
    • Timur Safin's avatar
      build, lua: built-in module datetime · 43e10ed3
      Timur Safin authored
      Introduce a new builtin Tarantool module `datetime.lua` for timestamp
      and interval types support.
      
      New third_party module - c-dt
      -----------------------------
      
      * Integrated chansen/c-dt parser as 3rd party module to the
        Tarantool cmake build process;
      * We use tarantool/c-dt instead of original chansen/c-dt to
        have an easier cmake build integration, as we have added some
        changes, which provide cmake support, and allow to rename symbols
        if necessary (this symbol renaming is similar to that we see
        with xxhash or icu).
      
      New built-in module `datetime`
      ------------------------------
      
      * created a new Tarantool built-in module `datetime`, which uses
        `struct datetime` data structure for keeping timestamp values;
      * Lua module uses a number of `dt_*` functions from `c-dt` library,
        but they were renamed to `tnt_dt_*` at the moment of exporting
        from executable - to avoid possible name clashes with external
        libraries.
      
      * At the moment we libc `strftime` for formatting of datetime
        values according to flags passed, i.e. `date:format('%FT%T%z')`
        will return something like '1970-01-01T00:00:00+0000', but
        `date:format('%A %d, %B %Y')` will return 'Thursday 01, January 1970'
      
      * if there is no format provided then we use default
        `tnt_datetime_to_string()` function, which converts datetime
        to their default ISO-8601 output format, i.e.
        `tostring(date)` will return string like "1970-01-01T00:00:00Z"
      
      * There are a number of simplified interfaces
        - totable() for exporting table with attributes names as provided
          by `os.date('*t')`
        - set() method provides unified interface to set values using
          the set of attributes as defined above in totable()
      
      Example,
      
      ```
      local dt = datetime.new {
      	nsec      = 123456789,
      
      	sec       = 19,
      	min       = 29,
      	hour      = 18,
      
      	day       = 20,
      	month     = 8,
      	year      = 2021,
      
      	tzoffset  = 180
      }
      
      local t = dt:totable()
      --[[
      {
      	sec = 19,
      	min = 29,
      	wday = 6,
      	day = 20,
      	nsec = 123456789,
      	isdst = false,
      	yday = 232,
      	tzoffset = 180,
      	month = 8,
      	year = 2021,
      	hour = 18
      }
      --]]
      
      dt:format()   -- 2021-08-21T14:53:34.032Z
      dt:format('%Y-%m-%dT%H:%M:%S')   -- 2021-08-21T14:53:34
      
      dt:set {
      	usec      = 123456,
      
      	sec       = 19,
      	min       = 29,
      	hour      = 18,
      
      	day       = 20,
      	month     = 8,
      	year      = 2021,
      
      	tzoffset  = 180,
      
      }
      dt:set {
      	timestamp = 1629476485.124,
      
      	tzoffset  = 180,
      }
      
      ```
      
      Coverage is
      
      File                 Hits Missed Coverage
      -----------------------------------------
      builtin/datetime.lua 299  23     92.86%
      -----------------------------------------
      Total                299  23     92.86%
      
      Part of #5941
      
      @TarantoolBot document
      Title: Introduced a new `datetime` module for timestamp and interval support
      
      Create `datetime` module for timestamp and interval types support.
      It allows to create date and timestamp values using either object interface,
      or via parsing of string values conforming to iso-8601 standard.
      One may manipulate (modify, subtract or add) timestamp and interval values.
      
      Please refer to https://hackmd.io/@Mons/S1Vfc_axK#Datetime-in-Tarantool
      for a more detailed description of module API.
      43e10ed3
  2. Oct 05, 2021
  3. Sep 17, 2021
    • Vladimir Davydov's avatar
      lua/msgpack: fix crash while encoding error extension · 6dde8898
      Vladimir Davydov authored
      Whether errors are encoded as a msgpack extension or not is determined
      by the serializer_opts::error_marshaling_enabled flag. Although an
      instance of serizlier_opts is passed to luamp_encode(), it doesn't
      propagate it to luamp_encode_extension_box(). The latter encodes an
      error as a msgpack extension if the error_marshaling_enabled flag is set
      in serializer_opts of the current session. This leads to a bug when
      luamp_encode() is called with error_marshaling_enabled unset while the
      current session has the flag set:
      
       1. luaL_tofield() sets field->type to MP_EXT and field->ext_type to
          MP_UNKNOWN_EXTENSION, because the error_marshaling_enabled flag is
          unset:
      
          https://github.com/tarantool/tarantool/blob/b0431cf8f47e9d081f6a402bc18edb1d6ad49847/src/lua/serializer.c#L548
      
       2. Basing on the ext_type, luamp_encode_r() skips the MP_ERROR
          swtich-case branch for the default branch and calls the
          luamp_encode_extension callback:
      
          https://github.com/tarantool/tarantool/blob/b0431cf8f47e9d081f6a402bc18edb1d6ad49847/src/lua/msgpack.c#L203
      
       3. The callback implementation (luamp_encode_extension_box()) encodes
          the error, because the error_marshaling_enabled flag is set in the
          current session settings, and returns MP_EXT:
      
          https://github.com/tarantool/tarantool/blob/b0431cf8f47e9d081f6a402bc18edb1d6ad49847/src/box/lua/init.c#L420
      
       4. luamp_encode_r() assumes that the callback didn't encode the
          extension, because it returned MP_EXT, and encodes it again as
          a string:
      
          https://github.com/tarantool/tarantool/blob/b0431cf8f47e9d081f6a402bc18edb1d6ad49847/src/lua/msgpack.c#L209
      
      This results in a broken msgpack content.
      
      To fix this bug, let's do the following:
       - luaL_tofield() now sets ext_type to MP_ERROR unconditionally,
         irrespective of serializer_opts::error_marshaling_enabled.
       - luamp_encode_r() invokes the luamp_encode_extension callback for
         a MP_ERROR field only if error_marshaling_enabled is set. If the flag
         is unset, it proceeds with converting the field to string.
       - luamp_encode_extension_box() doesn't check serializer_opts anymore.
         It doesn't need to, because it's called iff error_marshaling_enabled
         is set.
       - YAML and JSON encoders are patched to handle the MP_ERROR field type
         by appending error::errmsg to the output (they use luaL_tofield()
         internally to determine the field type so they have to handle
         MP_ERROR).
      
      This basically disables error encoding as msgpack extension
      everywhere except returning an error from a Lua CALL/EVAL, in
      particular:
       - when creating a tuple with box.tuple.new(),
       - when inserting an error into a space,
       - when encoding an error with the msgpack module.
      
      This is okay, because the functionality has always been broken anyway.
      We will introduce a separate msgpack encoder option to enable encoding
      errors as MP_ERROR msgpack extension.
      
      Looking at the code links above, one is likely to wonder why error
      encoding was implemented via the encode extension callback in the first
      place. The lua/msgpack module knows about the MP_ERROR extension and
      even partially handles it so it'd be only natural to call the error
      encoder function directly, as we do with decimals and uuids.
      Unfortunately, we can't do it, because the error encoder is (surprise!)
      a part of the box library. I filed a ticket to move it to the core lib,
      see #6432.
      
      Closes #6431
      6dde8898
  4. Aug 19, 2021
    • Igor Munkin's avatar
      luajit: bump new version · 847b096e
      Igor Munkin authored
      * ARM64: Fix exit stub patching.
      * arm64: fix cur_L restoration on error throw
      
      Closes #6098
      Closes #6189
      Part of #5629
      Relates to #6323
      Follows up #1516
      Unverified
      847b096e
  5. Aug 17, 2021
  6. Aug 11, 2021
    • Igor Munkin's avatar
      luajit: bump new version · e42d116f
      Igor Munkin authored
      * ARM64: Fix write barrier in BC_USETS.
      * Linux/ARM64: Make mremap() non-moving due to VA space woes.
      * Add support for full-range 64 bit lightuserdata.
      
      Closes #2712
      Needed for #6154
      Part of #5629
      Unverified
      e42d116f
  7. Aug 04, 2021
  8. Aug 02, 2021
  9. Jul 30, 2021
    • Igor Munkin's avatar
      luajit: bump new version · 72256657
      Igor Munkin authored
      * test: disable interactive mode assertions on BSD
      * test: update lua-Harness to c4451fe
      * test: support tarantool cli in lua-Harness
      * test: backport lua-Harness directory detection
      * test: support Tarantool in lua-Harness
      * test: refactor with _dofile
      * test: refactor with _retrieve_progname
      * test: use CI friendly variables in lua-Harness
      * test: rename lua-Harness tap to test_assertion
      * test: port lua-Harness to Test.Assertion
      
      Closes #5970
      Part of #4473
      Unverified
      72256657
  10. Jul 22, 2021
  11. Jul 21, 2021
  12. Jul 12, 2021
  13. Jul 07, 2021
  14. Jun 18, 2021
    • Oleg Babin's avatar
      build: add libxxhash to third_party · ce382f96
      Oleg Babin authored
      This patch is the first step for fixing regression introduced in
      f998ea39 (digest: introduce FFI bindings for xxHash32/64).
      We used xxhash library that is shipped with zstd. However it's
      possible that user doesn't use bundled zstd. In such cases we
      couldn't export xxhash symbols and build failed with following
      error:
      
      ```
      [ 59%] Linking CXX executable tarantool
      /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/tarantool.dir/exports.c.o:(.data.rel+0xd80): undefined reference to `XXH32'
      /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/tarantool.dir/exports.c.o:(.data.rel+0xd88): undefined reference to `XXH32_copyState'
      /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/tarantool.dir/exports.c.o:(.data.rel+0xd90): undefined reference to `XXH32_digest'
      /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/tarantool.dir/exports.c.o:(.data.rel+0xd98): undefined reference to `XXH32_reset'
      /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/tarantool.dir/exports.c.o:(.data.rel+0xda0): undefined reference to `XXH32_update'
      /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/tarantool.dir/exports.c.o:(.data.rel+0xda8): undefined reference to `XXH64'
      /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/tarantool.dir/exports.c.o:(.data.rel+0xdb0): undefined reference to `XXH64_copyState'
      /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/tarantool.dir/exports.c.o:(.data.rel+0xdb8): undefined reference to `XXH64_digest'
      /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/tarantool.dir/exports.c.o:(.data.rel+0xdc0): undefined reference to `XXH64_reset'
      /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/tarantool.dir/exports.c.o:(.data.rel+0xdc8): undefined reference to `XXH64_update'
      collect2: error: ld returned 1 exit status
      ```
      
      To avoid a problem this patch introduces standalone xxhash library
      that will be bundled anyway. It's worth to mention that our
      approach is still related to zstd. We use Cyan4973/xxHash that is
      used in zstd and passes the same compile flags to it. Single
      difference is usage of XXH_NAMESPACE to avoid symbols clashing
      with zstd.
      
      Need for #6135
      ce382f96
  15. Jun 16, 2021
    • mechanik20051988's avatar
      build: fix tarantool build failure on xcode 12.5 · c5ae543f
      mechanik20051988 authored
      `VERSION` files in small subproject and in tarantool are treated as C++
      standard library on a filesystem with case-insensitive names. So we have
      to delete the root of tarantool project from `include_directories` in
      tarantool CMake. Also we have to change `include_directories` in tarantool
      CMake from the root of `small` project to `include` subfolder in `small`
      project.
      Closes #6076
      c5ae543f
  16. Jun 12, 2021
    • Igor Munkin's avatar
      luajit: bump new version · bef585aa
      Igor Munkin authored
      * ARM64: Fix xpcall() error case (really).
      * ARM64: Fix xpcall() error case.
      * test: add arch-specific skipcond for memprof
      * ARM, ARM64, PPC: Fix TSETR fallback.
      
      Closes #6084
      Closes #6093
      Part of #5629
      Unverified
      bef585aa
  17. May 25, 2021
    • Vladislav Shpilevoy's avatar
      json: use cord_ibuf for encoding and decoding · 3298f129
      Vladislav Shpilevoy authored
      Lua json module used to have a global buffer for all encodings. It
      was reused by each next encode().
      
      This was not correct, because during encode() might happen a GC
      step, which might call encode() again and spoil the global buffer.
      
      The same problem was already fixed for the global static buffer in
      scope of #5632. Similarly to that time, the patch makes Lua json
      module use cord_ibuf to prevent "concurrent" usage of the buffer
      data. The global buffer is deleted.
      
      According to a few microbenchmarks it didn't affect the perf
      anyhow.
      
      Core part of the patch is strbuf changes. Firstly, its destruction
      is now optional, cord_ibuf can free itself on a next yield.
      Secondly, its reallocation algorithm is kept intact - ibuf is used
      as an allocator, not as the buffer itself. This is done so as not
      to be too intrusive in the third party module which might need an
      upgrade to the upstream in the future.
      
      Closes #6050
      3298f129
  18. May 19, 2021
    • Igor Munkin's avatar
      luajit: bump new version · 3fa165e5
      Igor Munkin authored
      * FFI/ARM64/OSX: Fix vararg call handling.
      * OSX/iOS: Handle iOS simulator and ARM64 Macs.
      * build: pass sysroot to MacOS SDK
      
      Closes #6065
      Closes #6066
      Part of #5629
      Relates to #5983
      Unverified
      3fa165e5
  19. May 17, 2021
    • Nikita Pettik's avatar
      libcoro: fix build for Apple ARM M1 · 7e722763
      Nikita Pettik authored
      There are a few issues concerning build of coro on Mac M1.
      
      Firstly, Mach-O assembler does not support .type directive. So let's put
      it under ifndef __APPLE__ preprocessing guard.
      
      Secondly, according to OS X calling convention symbols (at least those
      which are not exported) are mangled with underscore ("_") prefix:
      
      Undefined symbols for architecture arm64:
        "_coro_startup", referenced from:
            _coro_create in libcoro.a(coro.c.o)
      
      The same concerns "abort" function call. So to call function from assembly
      inline we have to specify exact name (i.e. prefixed with _).
      
      Part of #5983
      7e722763
  20. Apr 19, 2021
  21. Apr 16, 2021
  22. Apr 15, 2021
    • Aleksandr Lyapunov's avatar
      txm: fix a small mistake that led to an assertion · 660686e3
      Aleksandr Lyapunov authored
      Follow-ip of #5628
      660686e3
    • Alexander Turenko's avatar
      security: update libcurl from 7.71.1 to 7.76.0 · c0e253fe
      Alexander Turenko authored
      The reason of the update is to protect us against possible MITM attack
      from a malicious HTTPS proxy server with trusted certificate when TLS
      1.3 is used (CVE-2021-22890, [1]). libcurl versions prior to 7.76.0 can
      skip a TLS handshake with a target host in this circumstances.
      
      Other vulnerabilities fixed in the (7.71.1; 7.76.0] version range do not
      look relevant to our built-in http client. See [2] for the full list.
      
      The CMake version requirement is updated from 3.1 to 3.2, because curl's
      CMakeLists.txt has the following clause at beginning:
      
       | cmake_minimum_required(VERSION 3.2...3.16 FATAL_ERROR)
      
      (It was there in vanilla curl 7.71.1 too and we had to remove it in
      order to support CMake 2. Now we don't support CMake 2, so it is good
      time to get rid of the extra patch upward vanilla curl repository.)
      
      According to the CMake versions table in
      8a7702b1 ('github-ci: purge Debian
      Jessie from CI'), CMake 3.2+ is available on all supported OSes.
      
      [1]: https://curl.se/docs/CVE-2021-22890.html
      [2]: https://curl.se/docs/vulnerabilities.html
      
      @TarantoolBot document
      Title: Now we require CMake 3.2 to build tarantool
      
      In https://github.com/tarantool/doc/issues/1780 we requested to update
      the CMake minimum version to 3.1. Now it is time for 3.2. See details in
      the linked commit.
      
      Please, update the 'Building from source' manual.
      c0e253fe
  23. Apr 14, 2021
    • Sergey Kaplun's avatar
      luajit: bump new version · 8a09e18c
      Sergey Kaplun authored
      LuaJIT submodule is bumped to introduce the following changes:
      * test: disable too deep recursive PUC-Rio test
      * test: disable PUC-Rio hanging GC test
      * test: disable PUC-Rio test checking -h option
      * test: disable PUC-Rio test for checking arg layout
      * test: disable PUC-Rio tests for several -l options
      * test: disable PUC-Rio test for syntax level error
      * test: disable PUC-Rio test for non-ascii variable
      * test: disable PUC-Rio test for fast function name
      * test: disable PUC-Rio test for variables in error
      * test: disable PUC-Rio test for getfenv in tailcall
      * test: remove string.gfind assert in PUC-Rio test
      * test: use math.fmod in PUC-Rio tests
      * test: disable locale-dependent PUC-Rio tests
      * test: adapt PUC-Rio test for %q in string.format
      * test: disable PUC-Rio test for per-coroutine hooks
      * test: adapt PUC-Rio test with activeline check
      * test: disable PUC-Rio test for tailcall info
      * test: adapt PUC-Rio test with count hooks
      * test: adapt PUC-Rio test for debug in vararg func
      * test: adapt PUC-Rio tests with vararg functions
      * test: disable PUC-Rio suite tests for line hook
      * test: adapt PUC-Rio tests counting GC steps
      * test: disable PUC-Rio tests for bytecode header
      * test: disable PUC-Rio tests confused by -v output
      * test: adapt PUC-Rio test for arg presence
      * test: remove quotes in progname from PUC-Rio
      * test: adapt PUC-Rio suite for out-of-source build
      * test: build auxiliary C libs from PUC-Rio Lua 5.1
      * test: add PUC-Rio Lua 5.1 test suite
      
      Within this changeset PUC-Rio Lua 5.1 suite[1] is added to Tarantool
      testing. Considering Tarantool specific changes in runtime the suite
      itself is adjusted in LuaJIT submodule.
      
      <test/luajit-test-init.lua> pretest runner is adjusted by setting custom
      `_loadstring()` and `_dofile()` global function to run tests correctly
      for out-of-source build.
      
      Also, this patch excludes PUC-Rio-Lua-5.1 test suite from ASAN checks.
      
      [1]: https://www.lua.org/tests/lua5.1-tests.tar.gz
      
      
      
      Closes #5845
      Closes #5686
      Closes #5694
      Closes #5701
      Closes #5708
      Closes #5710
      Closes #5711
      Closes #5712
      Part of #4473
      
      Reviewed-by: default avatarIgor Munkin <imun@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      Unverified
      8a09e18c
    • Sergey Kaplun's avatar
      luajit: bump new version · ef55e488
      Sergey Kaplun authored
      
      LuaJIT submodule is bumped to introduce the following changes:
      * tools: introduce --leak-only memprof parser option
      
      Within this changeset the new Lua module providing post-processing
      routines for parsed memory events is introduced:
      * memprof/process.lua: post-process the collected events
      
      The changes provide an option showing only heap difference. One can
      launch memory profile parser with the introduced option via the
      following command:
      $ tarantool -e 'require("memprof")(arg)' - --leak-only filename.bin
      
      Closes #5812
      
      Reviewed-by: default avatarIgor Munkin <imun@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      Unverified
      ef55e488
  24. Apr 07, 2021
  25. Mar 29, 2021
  26. Mar 19, 2021
    • Sergey Nikiforov's avatar
      base64: fix decoder output buffer overrun (reads) · 778d34e8
      Sergey Nikiforov authored
      Was caught by base64 test with enabled ASAN.
      
      It also caused data corruption - garbage instead of "extra bits" was
      saved into state->result if there was no space in output buffer.
      
      Decode state removed along with helper functions.
      
      Added test for "zero-sized output buffer" case.
      
      Fixes: #3069
      (cherry picked from commit 7214add2c7f2a86265a5e08f2184029a19fc184d)
      778d34e8
  27. Mar 17, 2021
    • Sergey Kaplun's avatar
      luajit: bump new version · a0ade206
      Sergey Kaplun authored
      LuaJIT submodule is bumped to introduce the following changes:
      * test: disable LuaJIT CLI tests in lua-Harness suite
      * test: set USERNAME env var for lua-Harness suite
      * test: adjust lua-Harness tests that use dofile
      * test: adjust lua-Harness suite to CMake machinery
      * test: add lua-Harness test suite
      
      Within this changeset lua-Harness suite[1] is added to Tarantool
      testing. Considering Tarantool specific changes in runtime the suite
      itself is adjusted in LuaJIT submodule.
      
      However, Tarantool provides and unconditionally loads TAP module
      conflicting with the one used in the new suite. Hence, the Tarantool
      built-in module is "unloaded" in test/luajit-test-init.lua.
      
      Furthermore, Tarantool provides UTF-8 support via another built-in
      module. Its interfaces differ from the ones implemented in Lua5.3 and
      moonjit. At the same time our LuaJIT fork provides no UTF-8 support, so
      lua-Harness UTF-8 detector is simply confused with non-nil utf8 global
      variable. As a result, utf8 is set to nil in test/luajit-test-init.lua.
      
      There are also some tests launching Lua interpreter, so strict need to
      be disabled for their child tests too. Hence `strict.off()` is added to
      `progname` (i.e. arg[-1] considering the way Tarantool parses its CLI
      arguments) command used in these tests.
      
      [1]: https://framagit.org/fperrad/lua-Harness/tree/a74be27/test_lua
      
      
      
      Closes #5844
      Part of #4473
      
      Reviewed-by: default avatarSergey Ostanevich <sergos@tarantool.org>
      Reviewed-by: default avatarIgor Munkin <imun@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      Unverified
      a0ade206
  28. Mar 10, 2021
    • Igor Munkin's avatar
      luajit: bump new version · 1458a2b2
      Igor Munkin authored
      LuaJIT submodule is bumped to introduce the following changes:
      * test: adjust LuaJIT test suite for Tarantool
      * test: change LuaJIT test suite to match b4e6bf0
      * test: change LuaJIT test suite to match 5a61e1a
      * test: change LuaJIT test suite to match c198167
      * test: change LuaJIT test suite to match de5568e
      * test: add LuaJIT-test-cleanup test suite
      * test: fix Lua command in utils.selfrun
      * test: fix luacheck invocation for non-real paths
      
      Within this changeset LuaJIT-test-cleanup suite[1] is added to Tarantool
      testing. Considering Tarantool specific changes in runtime the suite
      itself is adjusted in LuaJIT submodule. However, there is <strict>
      module enabled by default in Debug build, so the testing environment
      need to be tweaked via test/luajit-test-init.lua script to be run prior
      to every LuaJIT suite test is started.
      
      [1]: https://github.com/LuaJIT/LuaJIT-test-cleanup/tree/014708b/test
      
      
      
      Closes #4064
      Part of #4473
      
      Reviewed-by: default avatarSergey Kaplun <skaplun@tarantool.org>
      Reviewed-by: default avatarSergey Ostanevich <sergos@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      Unverified
      1458a2b2
  29. Mar 04, 2021
  30. Feb 28, 2021
    • Igor Munkin's avatar
      build: adjust LuaJIT build system · 07c83aab
      Igor Munkin authored
      LuaJIT submodule is bumped to introduce the following changes:
      * test: run luacheck static analysis via CMake
      * test: fix warnings found with luacheck in misclib*
      * test: run LuaJIT tests via CMake
      * build: replace GNU Make with CMake
      * build: preserve the original build system
      
      Since LuaJIT build system is ported to CMake in scope of the changeset
      mentioned above, the module building the LuaJIT bundled in Tarantool is
      completely reworked. There is no option to build Tarantool against
      another prebuilt LuaJIT due to a91962c0
      ('Until Bug#962848 is fixed, don't try to compile with external
      LuaJIT'), so all redundant options defining the libluajit to be used in
      Tarantool are dropped with the related auxiliary files.
      
      To run LuaJIT related tests or static analysis for Lua files within
      LuaJIT repository, <LuaJIT-test> and <LuaJIT-luacheck> targets are used
      respectively as a dependency of the corresponding Tarantool targets.
      
      As an additional dependency to run LuaJIT tests, prove[1] utility is
      required, so the necessary binary packages are added to the lists with
      build requirements.
      
      [1]: https://metacpan.org/pod/TAP::Harness#prove
      
      
      
      Closes #4862
      Closes #5470
      Closes #5631
      
      Reviewed-by: default avatarSergey Kaplun <skaplun@tarantool.org>
      Reviewed-by: default avatarTimur Safin <tsafin@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      Unverified
      07c83aab
  31. Jan 25, 2021
    • Alexander V. Tikhonov's avatar
      build: bump zstd submodule · c7094cd7
      Alexander V. Tikhonov authored
      Updated third_party/zstd submodule from v1.3.3 to v1.4.8 version.
      
      Found issue building on Fedora 33:
      
        third_party/zstd/lib/decompress/zstd_decompress.c: In function ‘ZSTD_findFrameCompressedSize’:
        third_party/zstd/lib/decompress/zstd_decompress.c:1502:18: error: ‘zfh.headerSize’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
         1502 |         ip += zfh.headerSize;
              |                  ^
      
      Also found that later releases of third_party/zstd submodule already
      fixed it. Decided to bump third_party/zstd submodule from v1.3.3 to
      v1.4.8. Added to zstd cmake build rules new files appeared on bumping.
      
      Found that some checking in static-build test exporting symbols like:
      
        ZSTD_free
        ZSTD_malloc
      
      never were public symbols and should not be tested for presence in the
      Tarantool executable, but also these symbols currently outdated and
      broke the testing. To avoid of it these symbols removed from test.
      
      Needed for #5502
      Closes #5697
      c7094cd7
  32. Dec 30, 2020
  33. Dec 28, 2020
    • Igor Munkin's avatar
      luajit: bump new version · 434e1c5c
      Igor Munkin authored
      * tools: introduce a memory profile parser
      * misc: add Lua API for memory profiler
      * core: introduce memory profiler
      * vm: introduce VM states for Lua and fast functions
      * core: introduce write buffer module
      * utils: introduce leb128 reader and writer
      
      Relates to #5490
      Closes #5442
      Unverified
      434e1c5c
  34. Dec 07, 2020
  35. Dec 01, 2020
Loading