[Tarantool-patches] [PATCH luajit v4 2/3] Don't compile math.modf() anymore.

Sergey Kaplun skaplun at tarantool.org
Thu Apr 14 11:53:36 MSK 2022


Hi, Maxim!

Thanks for the patch.
It generally LGTM, except the following concerns:
1) The tests kinda useless since they check that `modf()` just not compiled
   instead checking incorrect behaviour of `modf()` -- the reason for
   disabling compilation.
2) These tests are not related to min/max functions, so they should be
   moved to the separate test file.

On 30.03.22, Maxim Kokryashkin wrote:
> From: Mike Pall <mike>
> 
> This commit disables compilation for the `math.modf` function since it's
> rarely used and properly compiling it would be difficult.
> 
> Part of tarantool/tarantool#6163
> ---
>  src/lib_math.c                                |  2 +-
>  src/lj_ffrecord.c                             | 16 -------------
>  .../gh-6163-jit-min-max.test.lua              | 23 +++++++++++++++----
>  3 files changed, 20 insertions(+), 21 deletions(-)
> 
> diff --git a/src/lib_math.c b/src/lib_math.c
> index ef9dda2d..4e6d2458 100644
> --- a/src/lib_math.c
> +++ b/src/lib_math.c

<snipped>

> diff --git a/test/tarantool-tests/gh-6163-jit-min-max.test.lua b/test/tarantool-tests/gh-6163-jit-min-max.test.lua
> index d6eb3f3b..4594b968 100644
> --- a/test/tarantool-tests/gh-6163-jit-min-max.test.lua
> +++ b/test/tarantool-tests/gh-6163-jit-min-max.test.lua
> @@ -1,12 +1,12 @@
>  local tap = require('tap')
> +local jutil = require('jit.util')
>  jit.off()
>  jit.flush()
>  
>  local test = tap.test("gh-6163-jit-min-max")
> -test:plan(2)
> ---
> --- gh-6163: math.min/math.max success with no args
> ---
> +test:plan(6)
> +
> +-- `math.min`/`math.max` success with no args.
>  local pcall = pcall
>  
>  jit.opt.start(0, 'hotloop=1')
> @@ -17,4 +17,19 @@ test:ok(false == r)
>  r, _ = pcall(function() math.min() end)
>  test:ok(false == r)
>  
> +jit.off()
> +jit.flush()
> +jit.on()
> +
> +-- `math.modf` shouldn't be compiled.
> +for _ = 1, 3 do math.modf(5.32) end
> +
> +local tr1_info = jutil.traceinfo(1)
> +local tr2_info = jutil.traceinfo(2)
> +
> +test:ok(tr1_info ~= nil)
> +test:ok(tr2_info ~= nil)
> +test:ok(tr1_info.link == 2)
> +test:ok(tr1_info.linktype == "stitch")
> +
>  os.exit(test:check() and 0 or 1)
> -- 
> 2.35.1
> 

-- 
Best regards,
Sergey Kaplun


More information about the Tarantool-patches mailing list