Skip to content
Snippets Groups Projects
  1. Aug 03, 2022
    • Igor Munkin's avatar
      luajit: bump new version · e5bc192a
      Igor Munkin authored
      * Call error function on rethrow after trace exit.
      * Fix handling of errors during snapshot restore.
      
      Part of #7230
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      e5bc192a
    • Serge Petrenko's avatar
      build: update decNumber library · 89e827bb
      Serge Petrenko authored
      Integrate Matthew Haggerty's patches silencing a bunch of gcc build
      warnings.
      
      NO_DOC=build
      NO_TEST=build
      NO_CHANGELOG=build
      89e827bb
    • Serge Petrenko's avatar
      build: bump bundled c-ares version to 1.18.1 · 344d5735
      Serge Petrenko authored
      Previous version was an intermediate one - 1.15.0-35
      
      The update brings a bunch of CVE fixes:
       * CVE-2020-14354 fixed in c-ares 1.16.1
       * CVE-2020-8277 fixed in c-ares 1.17.0
       * CVE-2021-3672 fixed in c-ares 1.17.2
      
      And a bunch of other security fixes
      
      NO_DOC=build
      NO_TEST=build
      NO_CHANGELOG=build
      344d5735
    • Vladimir Davydov's avatar
      build: bump zstd submodule · ec02a6ad
      Vladimir Davydov authored
      Updated third_party/zstd submodule from v1.5.0 to 1.5.2 version.
      The new version fixes a few bugs found by fuzzing testing.
      
      Note, the new zstd version contains a .S source file so we need to
      include ASM to the CMake project languages.
      
      NO_DOC=build
      NO_TEST=build
      ec02a6ad
  2. Aug 02, 2022
  3. Jul 27, 2022
    • Igor Munkin's avatar
      luajit: bump new version · 3214fa04
      Igor Munkin authored
      * test: make sysprof tests more deterministic
      * test: increase sampling interval in sysprof tests
      * LJ_GC64: Fix IR_VARG offset for fixed number of results.
      * sysprof: implement stack sandwich support
      * symtab: fix .symtab section dump of the executable
      * sysprof: disable proto and trace dumps in default
      * ci: introduce GitHub action for environment setup
      * build: configure parallel jobs
      * ci: replace hw.ncpu with hw.logicalcpu for macOS
      * ci: add Tarantool integration testing
      * ci: remove GC64 matrix entries for ARM64 workflows
      * ci: fix --parallel argument for MacOS runners
      
      Closes #7172
      Closes #7244
      Closes #7264
      Part of #7230
      Needed for #7472
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      3214fa04
  4. Jul 14, 2022
  5. Jul 08, 2022
  6. Jun 30, 2022
    • Igor Munkin's avatar
      luajit: bump new version · 34330b15
      Igor Munkin authored
      * Avoid conflict between 64 bit lightuserdata and ITERN key.
      * Reorganize lightuserdata interning code.
      * test: fix path storage for non-concatable objects
      * ARM64: Fix assembly of HREFK.
      * FFI/ARM64: Fix pass-by-value struct calling conventions.
      * test: set DYLD_LIBRARY_PATH environment variable
      * x64/LJ_GC64: Fix fallback case of asm_fuseloadk64().
      * FFI: Handle zero-fill of struct-of-NYI.
      * Fix interaction between profiler hooks and finalizers.
      * Flush and close output file after profiling run.
      * Fix debug.debug() for non-string errors.
      * Fix write barrier for lua_setupvalue() and debug.setupvalue().
      * Fix FOLD rule for strength reduction of widening.
      * Fix bytecode dump unpatching.
      * Fix tonumber("-0") in dual-number mode.
      * Fix tonumber("-0").
      * Give expected results for negative non-base-10 numbers in tonumber().
      * Add missing LJ_MAX_JSLOTS check.
      * Add stricter check for print() vs. tostring() shortcut.
      
      Closes #6548
      Fixes #4614
      Fixes #4630
      Fixes #5885
      Fixes tarantool/tarantool-qa#234
      Fixes tarantool/tarantool-qa#235
      Follows up #2712
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      34330b15
  7. Jun 29, 2022
    • Nikolay Shirokovskiy's avatar
      third_party: update nghttp2 from 1.46.0 to 1.47.0 · d06b5f8a
      Nikolay Shirokovskiy authored
      This will fix compilation on recent Archlinux. The issue is this distro
      installs libbpf in base configuration and nghttp2 1.46.0 tries to
      compile eBPF code if this library is present and failed if compiler is
      gcc.
      
      Closes #7292
      
      NO_DOC=nghttp2 submodule bump
      NO_TEST=nghttp2 submodule bump
      d06b5f8a
  8. Jun 18, 2022
    • Igor Munkin's avatar
      luajit: bump new version · b1953b59
      Igor Munkin authored
      * ci: add job for build using Ninja on Linux/x86_64
      * build: create file lists outside of CMake commands
      * build: use unique names for CMake targets
      * Revert "test: disable PUC-Rio tests for several -l options"
      * ci: make GitHub workflows more CMake-ish
      * test: adapt PUC-Rio tests for debug line hook
      * test: adapt PUC-Rio test for tail calls debug info
      * test: adapt PUC-Rio test with reversed function
      
      Closes #5693
      Closes #5702
      Closes #5782
      Follows up #5747
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      NO_CHANGELOG=LuaJIT submodule bump
      b1953b59
  9. Jun 01, 2022
    • Andrey Saranchin's avatar
      replace sigprocmask() with pthread_sigmask() · 50107cf2
      Andrey Saranchin authored
      Since the use of sigprocmask() is unspecified in a multithreaded
      process we should use pthread_sigmask() instead. This patch
      replaces all the sigprocmask calls with pthread analogue.
      
      NO_TEST=refactoring
      NO_CHANGELOG=refactoring
      NO_DOC=refactoring
      50107cf2
  10. May 25, 2022
    • Timur Safin's avatar
      build: submodule third_party/tz instead of git · 4eaff4e0
      Timur Safin authored
      FreeBSD Tarantool port has some problems if build uses cmake'
      ExternalProject_Add which refers to the github repository.
      Sumodule works better - so switching to using it.
      
      NO_CHANGELOG=build
      NO_DOC=build
      NO_TEST=build
      4eaff4e0
  11. May 20, 2022
    • Maxim Kokryashkin's avatar
      luajit: bump submodule · f40ad50d
      Maxim Kokryashkin authored
      LuaJIT submodule is bumped to introduce the following changes:
      * sysprof: change C configuration API
      * sysprof: enrich symtab on a new trace or a proto
      * sysprof: fix SYSPROF_HANDLER_STACK_DEPTH
      * sysprof: make internal API functions static
      * sysprof: add LUAJIT_DISABLE_SYSPROF to Makefile
      * symtab: check the _GNU_SOURCE definition
      
      Within this changeset Tarantool-specific backtrace handler is introduced
      and set to be used by sysprof machinery.
      
      Besides, all new public Lua C API introduced within this changeset is
      added to extra/exports.
      
      Follows up #781
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      NO_CHANGELOG=LuaJIT submodule bump
      f40ad50d
  12. May 19, 2022
  13. Apr 25, 2022
    • Maxim Kokryashkin's avatar
      luajit: bump new version · c6b038b0
      Maxim Kokryashkin authored
      LuaJIT submodule is bumped to introduce the following changes:
      * GC64: disable sysprof support
      * build: make -DLUAJIT_DISABLE_SYSPROF work
      * test: disable sysprof C API tests with backtrace
      * tools: introduce parsers for sysprof
      * sysprof: introduce Lua API
      * memprof: add profile common section
      * core: introduce lua and platform profiler
      * memprof: move symtab to a separate module
      * core: separate the profiling timer from lj_profile
      * vm: save topframe info into global_State
      
      Within this changeset a parser for binary data dumped via the sampling
      profiler to Tarantool binary. It is a set of the following Lua modules:
      * sysprof/parse.lua: decode the sampling profiler event stream
      * sysprof/collapse.lua: collapse stacks obtained while profiling
      * sysprof.lua: Lua script and module to display data
      
      Besides, all new public Lua C API introduced within this changeset is
      added to extra/exports.
      
      Closes #781
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      c6b038b0
    • Sergey Bronnikov's avatar
      third_party: update libcurl from 7.76.0 to 7.80.0 · a353ec91
      Sergey Bronnikov authored
      Changelog: https://curl.se/changes.html#7_80_0
      
      NO_DOC=libcurl submodule bump
      NO_CHANGELOG=libcurl submodule bump
      NO_TEST=libcurl submodule bump
      
      Closes: #6029
      Closes: https://github.com/tarantool/security/issues/10
      a353ec91
  14. Apr 22, 2022
    • Igor Munkin's avatar
      luajit: bump new version · 60fe9d14
      Igor Munkin authored
      
      LuaJIT submodule is bumped to introduce the following changes:
      * memprof: enrich symtab with newly loaded symbols
      * memprof: extend symtab with C symbols
      
      Within this changeset the new Lua module providing minimalistic AVL tree
      implementation required for processing C symbols is introduced:
      * utils/avl.lua: minimalistic AVL tree implementation
      
      Closes #5813
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      60fe9d14
    • Mergen Imeev's avatar
      lua: introduce MP_INTERVAL to module msgpack · 38f0c904
      Mergen Imeev authored
      Part of #6773
      
      NO_DOC=INTERVAL has already been introduced earlier.
      NO_CHANGELOG=It will be added in another commit.
      38f0c904
  15. Apr 12, 2022
    • Igor Munkin's avatar
      luajit: bump new version · ad5fd3ae
      Igor Munkin authored
      * memprof: enrich symtab when new trace is compiled
      * memprof: substitute long proto names with aliases
      * memprof: enrich symtab when meeting new prototype
      * memprof: add symbol generations
      
      Closes #5815
      
      NO_DOC=LuaJIT submodule bump
      NO_TEST=LuaJIT submodule bump
      ad5fd3ae
  16. Apr 04, 2022
    • Timur Safin's avatar
      datetime, lua: date parsing functions · 3c403661
      Timur Safin authored
      Datetime module provides parse function to create
      datetime object given input string.
      
      `datetime.parse` function expect 1 required argument - which is
      input string, and set of optional parameters passed as table
      in 2nd argument.
      
      Allowed attributes in this optional table are:
      * `format` - should be either 'iso8601', 'rfc3339' or `strptime`-like
        format string. [strptime format will be added as part of next
        commit];
      * `tzoffset` - to redefine offset of input string value, if there
        is no timezone provided.
      * `tz` - human-readable, Olson database, timezone identifier, e.g.
        'Europe/Moscow'. Not yet implemented in this commit.
      
      ```
      tarantool> T = date.parse('1970-01-01T00:00:00Z')
      
      tarantool> T
      - 1970-01-01T00:00:00Z
      
      tarantool> T = date.parse('1970-01-01T00:00:00',
                                {format = 'iso8601', tzoffset = 180})
      
      tarantool> T
      - 1970-01-01T00:00:00+0300
      
      tarantool> T = date.parse('2017-12-27T18:45:32.999999-05:00',
                                {format = 'rfc3339'})
      
      tarantool> T
      - 2017-12-27T18:45:32.999999-0500
      ```
      
      Implemented as per RFC https://hackmd.io/@Mons/S1Vfc_axK#%D0%AD%D1%82%D0%B0%D0%BF-3-%D0%9F%D0%B0%D1%80%D1%81%D0%B8%D0%BD%D0%B3-%D0%B4%D0%B0%D1%82-%D0%BF%D0%BE-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D1%83
      
      Part of #6731
      
      NO_DOC=internal
      NO_CHANGELOG=internal
      3c403661
  17. Mar 29, 2022
  18. Mar 18, 2022
    • Georgiy Lebedev's avatar
      libunwind: add new submodule · 7dc9fe44
      Georgiy Lebedev authored
      Investigation of GNU libunwind problems on the aarch64-linux-gnu
      platform drive us to the conclusion that libunwind-1.2.1 provided by
      major distribution packages is broken. Not to mention that its test
      suite fails with SEGFAULTs.
      
      Last but not least, some distributions, e.g. CentOS 8 (see #4611) do
      not provide a libunwind package.
      
      Hence, bundle libunwind: bundling is enabled by default on all
      platforms, except for macOS — a system package can be used if its
      version is greater or equal than 1.3.0 (minimal version that does not
      seem to be broken on aarch64-linux-gnu).
      
      * Add new submodule: bump it to current master.
      * Refactor libunwind package search logic out of compiler.cmake.
      * Add CMake script for building bundled libunwind.
      * Add CMake script for extracting version of libunwind.
      * Re-enable backtrace for all RHEL distributions by default.
      * Remove libunwind from static build.
      
      Needed for #4002
      Closes #4611
      
      NO_DOC=build system
      NO_TEST=build system
      7dc9fe44
  19. Mar 03, 2022
  20. Feb 17, 2022
    • Igor Munkin's avatar
      luajit: bump new version · bc1deaff
      Igor Munkin authored
      * test: adapt tests checking loading bytecode files
      * test: adapt disabled tests from PUC-Rio
      * test: adapt tests checking traceback in tail call
      * test: adapt test checking global environment
      
      Closes #5687
      Closes #5691
      Closes #5703
      Closes #5713
      Part of #5870
      
      NO_DOC=LuaJIT submodule bump
      NO_CHANGELOG=no visible changes
      bc1deaff
  21. Feb 11, 2022
  22. Feb 02, 2022
  23. Jan 28, 2022
    • Igor Munkin's avatar
      luajit: bump new version · 87461d5c
      Igor Munkin authored
      * Actually implement maxirconst trace limit.
      * Fix string.char() recording with no arguments.
      
      Closes #6371
      Part of #6548
      87461d5c
  24. Dec 21, 2021
    • AnaNek's avatar
      build: link bundled libcurl with nghttp2 · fa8d70ca
      AnaNek authored
      Before this patch Tarantool http client did not support HTTP/2.
      The reasons to enable HTTP/2 support are efficiency offered by
      the protocol and potential ability to interact with a GRPC server.
      The CMake version requirement is updated from 3.2 to 3.3, because
      we need generator expressions in cmake for setting multiple paths
      in CMAKE_FIND_ROOT_PATH for nghttp2 support.
      
      Closes #5771
      
      @TarantoolBot document
      Title: Now we require CMake 3.3 to build tarantool
      
      In tarantool/doc#2065 we requested to update
      the CMake minimum version to 3.2. Now it is time for 3.3.
      See details in the linked commit.
      fa8d70ca
  25. Dec 20, 2021
  26. Dec 17, 2021
  27. Dec 10, 2021
  28. Nov 24, 2021
    • Igor Munkin's avatar
      luajit: bump new version · e8765ba5
      Igor Munkin authored
      * memprof: add info about trace start to symtab
      * memprof: group allocations on traces by traceno
      * memprof: refactor location parsing
      * test: separate memprof Lua API tests into subtests
      
      Closes #5814
      e8765ba5
  29. Nov 23, 2021
  30. Nov 16, 2021
    • Vladislav Shpilevoy's avatar
      uuid: move into libcore · 1a812213
      Vladislav Shpilevoy authored
      libuuid used to be a separate library since
      de11d68a ("CMake: refactor
      dependencies of internal libraries").
      
      Unclear what was it done for. The commit says "fir unit tests".
      But they perfectly fine can depend on libcore like many of them
      do already.
      
      Because of libuuid being a separate library, libcore can't use
      tt_uuid, because that would be a cyclic dependency. And that won't
      allow to introduce tt_uuid-dependent API in a next patch.
      
      Hence libuuid is merged into libcore.
      
      Needed for #5568
      1a812213
  31. 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
  32. Oct 05, 2021
Loading