- Dec 11, 2024
-
-
Closes #3389 Closes #7689 Closes #4646 @TarantoolBot document Title: new box.cfg parameter memtx_sort_threads The parameter sets the number of threads used to sort keys of secondary indexes on loading memtx database. The parameter cannot be changed dynamically (as it does not make sense). Maximum value is 256, minimum is 1. Default is to use all available cores. Usage example: ``` box.cfg{memtx_sort_threads=4} ```
-
The algorithm runs sort in multiple threads and does not use OpenMP. It has better threads utilization right from the beginning but probably a worse constant than parallel qsort. See details in code comments. Besides sort is not performed in calling thread but instead in spawned worker threads. Calling thread yields waiting for worker threads to finish. Exception is small data size, in this case sorting is executed in calling thread saving time on spawning a thread. This should speed up test execution. This is existing behaviour of qsort_arg but data size threshold is reduced from 128000 to 1024. Part of #3389 NO_CHANGELOG=internal NO_DOC=internal
-
These exports allow us to perform user authentication and network communication. part of picodata/picodata/sbroad!292 NO_DOC=exports NO_CHANGELOG=exports NO_TEST=exports
-
Due to inconsistency of Tarantool type casting while using strict data types as "double" or "unsigned" it is needed to use "number" data type in a whole bunch of cases. However "number" may contain "decimal" that will be serialized into string by JSON builtin module. This commit adds "encode_decimal_as_number" parameter to json.cfg{}. That forces to encode `decimal` as JSON number to force type consistency in JSON output. Use with catious - most of JSON parsers assume that number is restricted to float64. NO_DOC=we do not host doc
-
- Oct 31, 2024
-
-
Andrey Saranchin authored
The commit bumps luafun to the new version with a bunch of bugfixes: * Now `chain` works correctly with iterators without `param`. * Now `drop_while` supports stateful iterators. * The module is populated with missing `maximum_by` alias of `max_by`. * Now `nth` and `length` work correctly with other luafun iterators. Since our index iterators are stateful (can return different values with the same `state` passed), the old `drop_while` implementation didn't work well with them - it was skipping an extra element. The bump resolves this issue. Note that there are still methods that don't work correctly with `index:pairs` - `cycle`, `head` and `is_null`. Closes #6403 NO_DOC=bugfix (cherry picked from commit ec758869f8364624efaff58bdd4ebc7c133ede0a)
-
- Oct 18, 2024
-
-
Sergey Kaplun authored
* Fix typo. * OSX/iOS: Always generate 64 bit non-FAT Mach-O object files. * test: don't run JIT-based LuaJIT tests without JIT * test: actualize <LuaJIT-tests/README.md> * test: enable <misc/alias_alloc.lua> LuaJIT test * test: refactor <alias_alloc.lua> LuaJIT test * test: refactor <lang/coroutine.lua> LuaJIT test * test: remove <misc/coro_yield.lua> LuaJIT test * test: enable <misc/debug_gc.lua> LuaJIT test * test: enable <misc/dualnum.lua> LuaJIT test * test: refactor <lang/dualnum.lua> LuaJIT test * test: remove <misc/fori_coerce.lua> LuaJIT test * test: remove <misc/fori_dir.lua> LuaJIT test * test: remove <misc/gc_rechain.lua> LuaJIT test * test: enable <misc/gc_trace.lua> LuaJIT test * test: refactor <trace/gc.lua> LuaJIT test * test: enable <misc/gcstep.lua> LuaJIT test * test: enable <misc/hook_active.lua> LuaJIT test * test: enable <misc/hook_line.lua> LuaJIT test * test: enable <misc/hook_norecord.lua> LuaJIT test * test: enable <misc/hook_record.lua> LuaJIT test * test: enable <misc/hook_top.lua> LuaJIT test * test: enable <misc/jit_flush.lua> LuaJIT test * test: remove <misc/loop_unroll.lua> LuaJIT test * test: enable <misc/parse_comp.lua> LuaJIT test * test: enable <misc/parse_esc.lua> LuaJIT test * test: enable <misc/parse_misc.lua> LuaJIT test * test: enable <misc/phi_conv.lua> LuaJIT test * test: refactor <trace/phi/conv.lua> LuaJIT test * test: enable <misc/recurse_deep.lua> LuaJIT test * test: remove <misc/recurse_tail.lua> LuaJIT test * test: enable <misc/stack_gc.lua> LuaJIT test * test: refactor <lang/gc_stack.lua> LuaJIT test * test: enable <misc/stack_purge.lua> LuaJIT test * test: refactor <trace/stack_purge.lua> LuaJIT test * test: enable <misc/stackov.lua> LuaJIT test * test: enable <misc/stackovc.lua> LuaJIT test * test: enable <misc/tcall_base.lua> LuaJIT test * test: refactor <trace/tcall_base.lua> LuaJIT test * test: enable <misc/tcall_loop.lua> LuaJIT test * test: enable <misc/tonumber_scan.lua> LuaJIT test * test: remove <misc/uclo.lua> LuaJIT test * test: enable <misc/unordered_jit.lua> LuaJIT test * test: enable <misc/wbarrier.lua> LuaJIT test * test: enable <misc/wbarrier_jit.lua> LuaJIT test * test: enable <misc/wbarrier_obar.lua> LuaJIT test * test: update <LuaJIT-tests/README.md> * test: off JIT for routines in <lang/stackov.lua> * Limit number of string format elements to compile. * Clear stack after print_jit_status() in CLI. * FFI: Workaround for platform dlerror() returning NULL. * test: move profilers tests to subdirectory * test: rename <arm64-ccall-fp-convention.test.lua> * cmake: introduce AppendTestEnvVar macro * test: shrink LUA_PATH environment variable * test: shrink LUA_CPATH and {DY}LD_LIBRARY_PATH * test: skip flaky tests with enabled table bump * test: set LD_PRELOAD only when necessary * test: fix misclib-getmetrics-lapi.test.lua * FFI: Fix __tostring metamethod access to enum cdata value. * Fix limit check in narrow_conv_backprop(). * FFI: Drop finalizer table rehash after GC cycle. * Drop unused function wrapper. * FFI: Fix various issues in recff_cdata_arith. * Add missing coercion when recording select(string, ...) * Fix stack allocation after on-trace stack check. * Restore state when recording __concat metamethod throws an error. * Fix bit op coercion in DUALNUM builds. * FFI: Fix 64 bit shift fold rules. * Limit CSE for IR_CARG to fix loop optimizations. Closes #10290 Closes #10199 Closes #9898 Part of #9398 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Oct 14, 2024
-
-
Alexander Turenko authored
The reason is that the previous libcurl submodule update in commit 0919f390802f146852b462215327ef03e2730cfc ("third_party: update libcurl from 8.8.0 to 8.10.1") reveals the following regression: NOWRAP ```c $ tarantool -e "require('http.client').new():get('https://google.com') collectgarbage()" tarantool: ./third_party/curl/lib/multi.c:3691: curl_multi_assign: Assertion `!(multi)' failed. Aborted (core dumped) ``` NOWRAP The stacktrace is the following: NOWRAP ```c <...> #4 __assert_fail #5 curl_multi_assign // <- called by us #6 curl_multi_sock_cb // <- this is our callback #7 Curl_multi_pollset_ev #8 cpool_update_shutdown_ev #9 cpool_discard_conn #10 cpool_close_and_destroy_all #11 Curl_cpool_destroy #12 curl_multi_cleanup #13 curl_env_finish // <- destroy the multi handle #14 httpc_env_finish #15 luaT_httpc_cleanup #16 lj_BC_FUNCC #17 gc_call_finalizer #18 gc_finalize #19 gc_onestep #20 lj_gc_fullgc #21 lua_gc #22 lj_cf_collectgarbage #23 lj_BC_FUNCC #24 lua_pcall #25 luaT_call #26 lua_main #27 run_script_f #28 fiber_cxx_invoke #29 fiber_loop #30 coro_init ``` NOWRAP The multi handle is during the destroy, but our `CURLMOPT_SOCKETFUNCTION` callback is invoked and the `curl_multi_assign()` call (invoked to associate a libev watcher to the given file descriptor) fails on the assertion. Everything is as described in https://github.com/curl/curl/issues/15201. The first bad libcurl's commit is [curl-8_10_0-4-g48f61e781][1], but later it was fixed in [curl-8_10_1-241-g461ce6c61][2]. This commit updates libcurl to this revision to fix the regression. Adjusted build options in our build script: * Added `CURL_DISABLE_IPFS=ON`: [curl-8_10_1-57-gce7d0d413][3] * Added `CURL_TEST_BUNDLES=OFF`: [curl-8_10_1-67-g71cf0d1fc][4] * Changed `ENABLE_WEBSOCKETS=OFF` to `CURL_DISABLE_WEBSOCKETS=ON`: [curl-8_10_1-130-gd78e129d5][5] [1]: https://github.com/curl/curl/commit/48f61e781a01e6a8dbc4a347e280644b1c68ab6a [2]: https://github.com/curl/curl/commit/461ce6c6160b86439ddd74c59541231ec9e8558e [3]: https://github.com/curl/curl/commit/ce7d0d41378007eda676c83ad6b86c59870cc9f1 [4]: https://github.com/curl/curl/commit/71cf0d1fca9e1f53524e1545ef0c08d174458d80 [5]: https://github.com/curl/curl/commit/d78e129d50b2d190f1c1bde2ad1f62f02f152db0 NO_DOC=bugfix NO_CHANGELOG=fixes an unreleased commit NO_TEST=can't reproduce without https to add a test case, verified locally (cherry picked from commit fbe6d0a0a40945c42609f5119a007b5c3980c232)
-
- Oct 10, 2024
-
-
Col-Waltz authored
Updates curl module to the version 8.10.1. The new version brings several new options, such as: CURL_USE_RUSTLS - Enables Rustls for SSL/TLS. Added in commit curl/curl@ed76a23fccc1 ("cmake: add rustls") CURL_USE_WOLFSSH - Option to use wolfSSH. Added in commit curl/curl@0d8fdd1c7421 ("cmake: add wolfSSH support") CURL_USE_GSASL - Option to use libgsasl. Added in commit curl/curl@66bf995d1cfc ("cmake: add CURL_USE_GSASL option with detection + CI test") CURL_DISABLE_SHA512_256 - Disables SHA-512/256 hash algorithm. Added in commit curl/curl@33629949488c ("build: add options to disable SHA-512/256 hash algo") CURL_USE_LIBUV - Use libuv for event-based tests. Added in commit curl/curl@f7d5f47059c3 ("cmake: add support for `CURL_USE_LIBUV` option") Corrected http_client test according to curl commit curl/curl@b7e769dc872d ("vtls: stop offering alpn http/1.1 for http2-prior-knowledge") Build file missed several options and paths not used in the current build. List of these options was added into curl-excluded-options.txt for the convenience of the following bumps. Closes #10576 https://curl.se/changes.html#8_10_1 https://github.com/curl/curl/releases/tag/curl-8_10_1 NO_DOC=libcurl submodule bump NO_TEST=libcurl submodule bump (cherry picked from commit 0919f390802f146852b462215327ef03e2730cfc) @Totktonada: the http_client test mentioned in the original commit message doesn't present in the `release/2.11` branch.
-
- Sep 13, 2024
-
-
Vladimir Davydov authored
This causes warnings if compiled with clang-18. Let's define a sane upper limit for the max tree depth and use it for allocating arrays on stack. Note that we don't really care about performance because sptree is used only in unit tests. Closes #10354 NO_DOC=internal NO_TEST=internal NO_CHANGELOG=internal (cherry picked from commit 187d288f0c3b008ed2d281e8bb43159e44c4106e)
-
- Aug 15, 2024
-
-
Sergey Kaplun authored
* FFI: Treat cdata finalizer table as a GC root. * FFI: Turn FFI finalizer table into a proper GC root. Part of #10199 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Aug 01, 2024
-
-
Georgiy Belyanin authored
Since tarantool/luajit@a16313f large exponent double strings are not considered convertible to number. It broke encoding lua objects to YAML because single quotes weren't considered necessary for decoding. This commit adds wrapping of every string containing infinite double values into a single quotes. Closes #10164 NO_DOC=bug fix (cherry picked from commit 7c3f42590240525d2e543305b6c289ddb30054a2)
-
- Jul 08, 2024
-
-
Sergey Kaplun authored
* Correct fix for stack check when recording BC_VARG. * test: remove inline suppressions of _TARANTOOL * FFI: Fix ffi.alignof() for reference types. * FFI: Fix sizeof expression in C parser for reference types. * FFI: Allow ffi.metatype() for typedefs with attributes. * FFI: Fix ffi.metatype() for non-raw types. * Maintain chain invariant in DCE. * build: introduce option LUAJIT_ENABLE_TABLE_BUMP * ci: add tablebump flavor for exotic builds * test: allow `jit.parse` to return aborted traces * Handle all types of errors during trace stitching. * Use generic trace error for OOM during trace stitching. * Check for IR_HREF vs. IR_HREFK aliasing in non-nil store check. * cmake: set cmake_minimum_required only once * cmake: fix warning about minimum required version * ci: add a workflow for testing with AVX512 enabled * test: introduce a helper read_file * OSX/iOS/ARM64: Fix generation of Mach-O object files. * OSX/iOS/ARM64: Fix bytecode embedding in Mach-O object file. * build: introduce LUAJIT_USE_UBSAN option * ci: enable UBSan for sanitizers testing workflow * cmake: add the build directory to the .gitignore * Prevent sanitizer warning in snap_restoredata(). * Avoid negation of signed integers in C that may hold INT*_MIN. * Show name of NYI bytecode in -jv and -jdump. Closes #9924 Closes #8473 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Jun 25, 2024
-
-
Sergey Bronnikov authored
The patch updates curl module to the version 8.8.0 [1] plus a number of commits in a range curl-8_8_0..30de937bda0f because it includes a fix for a regression [2] caught on the previous bump. The new version brings a number of functional fixes. Previous changelog entry has been removed because duplicate entries about bumps in release changelog confuses end users. Closes #9612 1. https://curl.se/changes.html#8_8_0 2. https://github.com/curl/curl/issues/13740 NO_DOC=libcurl submodule bump NO_TEST=libcurl submodule bump (cherry picked from commit 7192bf66)
-
Sergey Bronnikov authored
The patch updates curl module to the version 8.7.1 [1][2] that brings a number of functional and security fixes, and updates CMake module for building curl library. Security fixes: - CVE-2024-2004: Usage of disabled protocol. (low) - CVE-2024-2398: HTTP/2 push headers memory-leak. (medium) - CVE-2024-2379: QUIC certificate check bypass with wolfSSL. (low) - CVE-2024-2466: TLS certificate check bypass with mbedTLS. (medium) Changes in CMake module: - Option `USE_OPENSSL_QUIC` was added and disabled by default [3] Previous changelog entry has been removed because duplicate entries about bumps in release changelog confuses end users. The bump was blocked by a regression in libcurl [4][5]. 1. https://curl.se/changes.html#8_7_1 2. https://github.com/curl/curl/compare/curl-8_6_0...curl-8_7_1 3. https://github.com/curl/curl/commit/8e741644a229c3791963b4f5cae1dcfccba842dd 4. https://curl.se/mail/lib-2024-03/0059.html 5. https://github.com/curl/curl/issues/13260 NO_DOC=libcurl submodule bump NO_TEST=libcurl submodule bump (cherry picked from commit 63cb2bf6)
-
Sergey Bronnikov authored
The patch updates curl module to the version 8.6.0 [1][2] that brings a number of functional fixes, and updates CMake module for building curl library. Changes in CMake module: - Option `ENABLE_CURL_MANUAL` was added and disabled by default [3] - Option `BUILD_LIBCURL_DOCS` was added and disabled by default [3] Previous changelog entry has been removed because duplicate entries about bumps in release changelog confuses end users. This bump was blocked by a regression in libcurl [4]. 1. https://curl.se/changes.html#8_6_0 2. https://github.com/curl/curl/compare/curl-8_5_0...curl-8_6_0 3. https://github.com/curl/curl/commit/a808aab06851d4364ab1773c664df3d906a497a9 4. https://github.com/curl/curl/commit/b8c003832d730bb2f4b9de4204675ca5d9f7a903 NO_DOC=libcurl submodule bump NO_TEST=libcurl submodule bump (cherry picked from commit 00cfc959)
-
- Apr 12, 2024
-
-
Georgy Moiseev authored
Bump metrics package submodule. There are 8 new commits, but only two of them affects Tarantool: - Add election_leader_idle metric [1]; - test: run log capture tests on a separate server [2]; the other 6 affect documentation and CI/CD scripts of the original repo. The latter one is required to bump luatest in test-run [3], since otherwise metrics log capture test fails on a new version. 1. https://github.com/tarantool/metrics/commit/ba9726d9b0cdfb22aa56d852f7fdc7b0aa22756a 2. https://github.com/tarantool/metrics/commit/3370f856efd4172bf24916e66e3846eeb01550a8 3. https://github.com/tarantool/test-run/pull/426 NO_DOC=doc is a part of submodule NO_TEST=repo runs submodule tests, no new test files are added (cherry picked from commit 50f74250)
-
- Apr 11, 2024
-
-
Sergey Kaplun authored
* ci: bump version of actions/checkout * test: fix typo in the link to the issue * test: refactor CMake macro LibRealPath * test: move LibRealPath to the separate module * test: more cautious usage of LD_PRELOAD for ASan * test: fix lj-802-panic-at-mcode-protfail GCC+ASan * ci: execute LuaJIT tests with GCC 10 and ASAN * cmake: replace prove with CTest * Prevent down-recursion for side traces. * Handle stack reallocation in debug.setmetatable() and lua_setmetatable(). * profilers: print user-friendly errors Closes #5994 Closes #9595 Closes #9217 Closes #9656 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Mar 20, 2024
-
-
Sergey Kaplun authored
* test: set dependencies in BuildTestCLib macro * Add 'cc' file type for saving bytecode. * Fix C file generation in jit.bcsave. * Throw any errors before stack changes in trace stitching. * Fix recording of __concat metamethod. * Check frame size limit before returning to a lower frame. * build: purge sysprof.collapse module * build: fix tool components handling * memprof: refactor `heap_chunk` data structure * memprof: remove unused arguments * memprof: introduce the `--human-readable` option * profilers: introduce event reader module * ci: extend tarantool integration testing Part of #9595 Part of #5994 Follows up #8700 Needed for #9217 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Mar 12, 2024
-
-
Alexander Turenko authored
The #8350 was introduced by the commit b42302f5 ("lua-yaml: enable aliasing for objects returned by __serialize") so the patch is effectively reversed. The idea is to call all object __serialize methods recursively before finding references. The new serialization pass stores the mapping from the original object to the serialized representation. After this, the reference analysis pass and the encoding pass use this mapping to replace original objects with the serialized representation. As result, the reference analysis has a complete information about objects and no references are missed. Closes #8350 Closes #8310 Closes #8321 NO_DOC=bugfix Co-authored-by:
Nikolay Shirokovskiy <nshirokovskiy@tarantool.org> (cherry picked from commit 610f5fb7)
-
- Feb 28, 2024
-
-
Sergey Kaplun authored
* cmake: introduce AddTestLib macro * test: prepare lauxilarily libs for LuaJIT-tests * test: separate LuaJIT helpers from ffi_util.inc * test: enable <ffi_arith_ptr.lua> in LuaJIT-tests * test: enable <ffi_bitfield.lua> in LuaJIT-tests * test: enable <ffi_call.lua> in LuaJIT-tests * test: enable <ffi_callback.lua> in LuaJIT-tests * test: enable <ffi_const.lua> in LuaJIT-tests * test: enable <ffi_convert.lua> in LuaJIT-tests * test: enable <ffi_enum.lua> in LuaJIT-tests * test: enable <ffi_gcstep_recursive.lua> * test: enable <ffi_jit_arith.lua> in LuaJIT-tests * test: enable <ffi_jit_call.lua> in LuaJIT-tests * test: enable <ffi_jit_conv.lua> in LuaJIT-tests * test: enable <ffi_lex_number.lua> in LuaJIT-tests * test: enable <ffi_metatype.lua> in LuaJIT-tests * test: enable <ffi_new.lua> in LuaJIT-tests * test: enable <ffi_parse_array.lua> in LuaJIT-tests * test: enable <ffi_parse_basic.lua> in LuaJIT-tests * test: enable <ffi_parse_cdef.lua> in LuaJIT-tests * test: enable <ffi_parse_struct.lua> LuaJIT test * test: enable <ffi_tabov.lua> LuaJIT test * test: enable <lightud.lua> LuaJIT test * test: enable <api_call.lua> LuaJIT test * test: enable <catch_wrap.lua> LuaJIT test * test: enable <catch_cpp.lua> LuaJIT test * test: introduce routine to build error message * test: enable CLI-related lua-Harness tests back Closes #7834 Part of #9398 Follows up #5541 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump NO_CHANGELOG=add new tests
-
- Feb 15, 2024
-
-
Igor Munkin authored
* test: fix initialization in lj-549-lua-load.test.c * codehealth: add `nd` to the codespell ignore list * LJ_GC64: Always snapshot functions for non-base frames. * Avoid assertion in case of stack overflow from stitched trace. * Fix recording of __concat metamethod. * Avoid out-of-range number of results when compiling select(k, ...). * Consider slots used by upvalues in use-def analysis. * Only emit proper parent references in snapshot replay. * Optimize table.new() with constant args to (sinkable) IR_TNEW. * Followup fix for embedded bytecode loader. * Fix embedded bytecode loader. * LJ_GC64: Fix HREFK optimization. * Fix unsinking of IR_FSTORE for NULL metatable. * Fix zero stripping in %g number formatting. * Follow-up fix for stack overflow handling cleanup. * Cleanup stack overflow handling. * Improve error reporting on stack overflow. * sysprof: disable runtime host symtab updates * codehealth: fix the typo * Simplify handling of instable types in TNEW/TDUP load forwarding. * Respect jit.off() on pending trace exit. * Limit exponent range in number parsing. * Emit sunk IR_NEWREF only once per key on snapshot replay. Closes #7937 Closes #8140 Part of #9145 Part of #9595 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Jan 10, 2024
-
-
Sergey Bronnikov authored
The patch updates curl module to the version 8.5.0 [1][2] that brings a number of functional fixes and security fix for CVE-2023-46219 (HSTS long file name clears contents), see description in [2], and updates CMake module for building curl library. Changes in CMake module: - Option `CURL_DISABLE_HEADERS_API` was added and disabled by default [4]. - Option `CURL_DISABLE_BINDLOCAL` was added and disabled by default [5]. - Option `CURL_DISABLE_INSTALL` was added and disabled by default [6]. 1. https://curl.se/changes.html#8_5_0 2. https://github.com/curl/curl/compare/curl-8_4_0...curl-8_5_0 3. https://curl.se/docs/CVE-2023-46219.html 4. https://github.com/curl/curl/commit/33493db2af2dc6d9910f5d7c702aae6f63b8a6a6 5. https://github.com/curl/curl/commit/20bb363f25151febe9026b41b8ad65df6db20b68 6. https://github.com/curl/curl/commit/aace27b0965c10394544d1dacc9c2cb2fe0de3d3 NO_DOC=libcurl submodule bump NO_TEST=libcurl submodule bump (cherry picked from commit b8d733df)
-
Sergey Bronnikov authored
The patch updates curl module to the version 8.4.0 [1] that brings a number of functional fixes and security fix of SOCKS5 heap buffer overflow (CVE-2023-38545), see description in [2] and commit fb4415d8aee6 ("socks: return error if hostname too long for remote resolve") in [3]. 1. https://curl.se/changes.html#8_4_0 2. https://curl.se/docs/CVE-2023-38545.html 3. https://github.com/curl/curl/commit/fb4415d8aee6c1045be932a34fe6107c2f5ed147 NO_DOC=libcurl submodule bump NO_TEST=libcurl submodule bump (cherry picked from commit ee575fef)
-
- Dec 21, 2023
-
-
Igor Munkin authored
* FFI: Fix dangling reference to CType in carith_checkarg(). * FFI: Fix dangling reference to CType. Improve checks. * FFI: Fix dangling reference to CType. * FFI: Ensure returned string is alive in ffi.typeinfo(). * FFI: Fix missing cts->L initialization in argv2ctype(). * Abstract out on-demand loading of FFI library. * test: fix flaky finalizer error handler tests * test: adjust lua-Harness test error assertion * Fix snapshot PC when linking to BC_JLOOP that was a BC_RET*. * snap: check J->pc is within its proto bytecode * Fix HREFK forwarding vs. table.clear(). * Fix FOLD rule for BUFHDR append. * Prevent CSE of a REF_BASE operand across IR_RETF. * test: rewrite sysprof test using managed execution * test: disable buffering for the C test engine Part of #9145 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Nov 21, 2023
-
-
Igor Munkin authored
* Mark CONV as non-weak, to prevent elimination of its side-effect. * Fix ABC FOLD rule with constants. * test: add test for conversions folding * Add NaN check to IR_NEWREF. * LJ_GC64: Fix lua_concat(). * test: introduce asserts assert_str{_not}_equal * ci: enable codespell * cmake: introduce target with codespell * codehealth: fix typos * tools: add cli flag to run profile dump parsers * profilers: purge generation mechanism * memprof: refactor symbol resolution * sysprof: fix crash during FFUNC stream * Fix last commit. * Print errors from __gc finalizers instead of rethrowing them. * x86/x64: Fix math.ceil(-0.9) result sign. * test: fix flaky fix-jit-dump-ir-conv.test.lua * IR_MIN/IR_MAX is non-commutative due to underlying FPU ops. * Fix jit.dump() output for IR_CONV. * Fix FOLD rule for x-0. * FFI: Fix pragma push stack limit check and throw on overflow. * Prevent compile of __concat with tailcall to fast function. * Fix base register coalescing in side trace. * Fix register mask for stack check in head of side trace. * x64: Properly fix __call metamethod return dispatch. Closes #8594 Closes #8767 Closes #9339 Part of #9145 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Nov 03, 2023
-
-
Igor Munkin authored
* Revert "Update cur_L on exceptional path (arm)" * Revert "arm64: fix cur_L restoration on error throw" * Revert "Update cur_L on exceptional path" * Revert "Fix cur_L tracking on exceptional path" * Restore cur_L for specific Lua/C API use case. * Fix Clang build. Closes #6323 Part of #9145 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Sep 28, 2023
-
-
Pavel Balaev authored
luarocks version updated to version 3.9.2 Closes #6597 NO_DOC=The engine has been updated, the functionality has not changed NO_TEST=see NO_DOC (cherry picked from commit 1dc8cd81)
-
- Sep 27, 2023
-
-
Igor Munkin authored
* test: fix fix-mips64-spare-side-exit-patching * test: fix `fillmcode()` generator helper * MIPS: Fix "bad FP FLOAD" assertion. * Handle table unsinking in the presence of IRFL_TAB_NOMM. * Fix handling of instable types in TNEW/TDUP load forwarding. * Fix predict_next() in parser (again). * Always exit after machine code page protection change fails. Part of #8825 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Sep 14, 2023
-
-
Sergey Bronnikov authored
The patch updates curl module to the version 8.3.0 [1] and updates a CMake module for building curl library. Changes in CMake module: - Option `CURL_STATICLIB` is gone and replaced with `BUILD_STATIC_LIBS`. - Option `CURL_USE_GNUTLS` was added and disabled by default. - NSS library support was removed and option `CURL_USE_NSS` has been removed as well. - Option `CMAKE_UNITY_BUILD` was added and disabled by default. - Option `CURL_DISABLE_FORM_API` was added and disabled by default. It is in fact depends on `CURL_DISABLE_MIME`, but anyway disabled explicitly. Changelog: https://curl.se/changes.html#8_3_0 1. https://github.com/curl/curl/releases/tag/curl-8_3_0 NO_DOC=libcurl submodule bump NO_TEST=libcurl submodule bump Fixes #9086 (cherry picked from commit 979b4adb)
-
- Sep 01, 2023
-
-
Vladimir Davydov authored
Historically, we encode strings that contain invalid or non-printable utf-8 sequences in YAML as binary base64 blobs. We do that because of limitations/bugs of the YAML encoder, which refuses to encode invalid utf-8 strings. To work around this issue, we introduced the helper utf8_check_printable, which is basically a copy of yaml_check_utf8, and treat strings for which it fails as binary data (MP_BIN). This commit updates the YAML submodule to the version where all known issues with encoding invalid/unprintable utf-8 strings are fixed and removes special treatment of such strings (drops utf8_check_printable). Now unprintable or invalid utf-8 sequences are emitted as code points, e.g. '\xFF' or '\uFFFF'. This change is a pre-requisite for introducing the new varbinary type to Lua. Without it plain strings would be implicitly converted to varbinary after decoding/encoding them in YAML, which would be confusing. Closes #8756 NO_DOC=bug fix (cherry picked from commit 890a821c)
-
- Aug 30, 2023
-
-
Igor Munkin authored
* Fix maxslots when recording BC_TSETM. * Fix TDUP load forwarding after table rehash. * Fix binary number literal parsing. * Fix maxslots when recording BC_VARG, part 3. * test: fix flaky <unit-jit-parse.test.lua> again * Fix predict_next() in parser. * Revert to trivial pow() optimizations to prevent inaccuracies. * Fix pow() optimization inconsistencies. * Improve assertions. * Remove pow() splitting and cleanup backends. * test: introduce `samevalues()` TAP checker * MIPS: Add MIPS64 R6 port. * DynASM/MIPS: Fix shadowed variable. * MIPS64: Fix register allocation in assembly of HREF. * Prevent integer overflow while parsing long strings. * Fix LJ_MAX_JSLOTS assertion in rec_check_slots(). * Fix debug.getinfo() argument check. * ARM: Fix GCC 7 -Wimplicit-fallthrough warnings. * DynASM: Fix warning. * Fix GCC 7 -Wimplicit-fallthrough warnings. * Cleanup math function compilation and fix inconsistencies. * FFI: Eliminate hardcoded string hashes. * Windows: Add UWP support, part 1. * build: fix non-Linux/macOS builds * PPC: Add soft-float support to JIT compiler backend. * PPC: Add soft-float support to interpreter. * MIPS64: Add soft-float support to JIT compiler backend. * MIPS: Fix handling of spare long-range jump slots. * test: introduce mcode generator for tests * MIPS: Use precise search for exit jump patching. * sysprof: improve parser's memory footprint * tools: add execution permission to sysprof parser * sysprof: remove `split by vmstate` option Part of #8825 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Aug 22, 2023
-
-
Timur Safin authored
This reverts commit ace88542. That commit disabled repl in tarantool for debugger console session because debugger console wasn't compatible with Tarantool console, i.e. this code hang in terminal: ```lua tarantool> dbg = require 'luadebug' tarantool> dbg() ``` With the previous patch in the patchset, full readline support and console compatibility was introduced. Thus, no need to disable repl. Part of #7738 NO_TEST=internal NO_DOC=internal, revert unpublished NO_CHANGELOG=internal (cherry picked from commit 3774e85d)
-
Timur Safin authored
Implemented readline history and autocomplete by reusing readline facilities of Tarantool console. They used to be being hidden once Lua 'console' module is loaded. With c432e9e9 (lua: don't use public module name as internal one), now they are available as 'console.lib'. Closes #7738 NO_TEST=covered by refactored console_debugger_session_test.lua @TarantoolBot document Title: proper readline support in readline Similar to tarantool interactive console, tdbg now uses readline for its shell. It enables handier input editing, command history and so on. (cherry picked from commit 92222451)
-
- Aug 16, 2023
-
-
Igor Munkin authored
* ci: support coveralls * cmake: add code coverage support * test: run flake8 static analysis via CMake * test: fix E741 errors by pycodestyle * test: fix E722 errors by pycodestyle * test: fix E711 errors by pycodestyle * test: fix E502 errors by pycodestyle * test: fix E501 errors by pycodestyle * test: fix E305 errors by pycodestyle * test: fix E303 errors by pycodestyle * test: fix E302 errors by pycodestyle * test: fix E301 errors by pycodestyle * test: fix E275 errors by pycodestyle * test: fix E251 errors by pycodestyle * test: fix E231 errors by pycodestyle * test: fix E203 errors by pycodestyle * test: fix E201 and E202 errors by pycodestyle * test: suppress E131 errors by pycodestyle * test: fix E128 errors by pycodestyle * test: fix E122 errors by pycodestyle * gdb: fix Python <assert> statement usage NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump NO_CHANGELOG=LuaJIT submodule bump
-
- Aug 02, 2023
-
-
Igor Munkin authored
* ci: introduce testing workflow with sanitizers * build: introduce LUAJIT_USE_ASAN option * test: introduce test:done TAP helper * memprof: remove invalid assertions * ci: clean up workflow for exotic builds Closes #5878 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump NO_CHANGELOG=LuaJIT submodule bump
-
- Jul 20, 2023
-
-
Igor Munkin authored
* FFI: Fix recording of union initialization. * Fix maxslots when recording BC_VARG, part 2. * Fix maxslots when recording BC_VARG. * Fix BC_UCLO insertion for returns. * ci: update job concurrency group definition Part of #8825 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Jul 04, 2023
-
-
Igor Munkin authored
* test: fix flaky <unit-jit-parse.test.lua> * Fix use-def analysis for vararg functions. * Fix use-def analysis for BC_VARG. * Fix TNEW load forwarding with instable types. * Fix memory probing allocator to check for valid end address, too. * Another fix for lua_yield() from C hook. * Fix lua_yield() from C hook. * Fix saved bytecode encapsulated in ELF objects. * x64: Fix 64 bit shift code generation. * Fix canonicalization of +-0.0 keys for IR_NEWREF. * test: add utility for parsing `jit.dump` * test: split utils.lua into several modules * test: rewrite lj-49-bad-lightuserdata test in C * test: rewrite misclib-sysprof-capi test in C * test: rewrite misclib-getmetrics-capi test in C * test: introduce utils.h helper for C tests * test: introduce module for C tests * test: fix setting of {DY}LD_LIBRARY_PATH variables * build: fix build with LUAJIT_USE_GDBJIT enabled * ci: update the branch name for Tarantool 2.11 Closes #8718 Part of #7900 Part of #8516 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-
- Jun 02, 2023
-
-
Oleg Chaplashkin authored
Bump the metrics submodule to 1.0.0-2-gea83227 version. NO_DOC=metrics submodule bump NO_TEST=metrics submodule bump NO_CHANGELOG=metrics submodule bump (cherry picked from commit 2780e8e0)
-
- May 25, 2023
-
-
Yaroslav Lobankov authored
Bump the metrics submodule to 1.0.0 version. NO_DOC=submodule bump NO_TEST=submodule bump NO_CHANGELOG=submodule bump (cherry picked from commit 8bbc73ce)
-
- May 24, 2023
-
-
Igor Munkin authored
* LJ_GC64: Make ASMREF_L references 64 bit. * lldb: introduce luajit-lldb * x64/LJ_GC64: Fix emit_rma(). * Limit path length passed to C library loader. Part of #4808 Part of #8069 Part of #8516 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump
-