zeam-vm / pelemay

Pelemay is a native compiler for Elixir, which generates SIMD instructions. It has a plan to generate for GPU code.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Warning occurs when 1.11

zacky1972 opened this issue · comments

Describe the bug
Warning occurs when 1.11

To Reproduce
Steps to reproduce the behavior:

  1. Use Pelemay in pelemay_sample
  2. Run in the command mix bench
  3. See warnings:
% mix bench
==> ring_logger
Compiling 4 files (.ex)
Generated ring_logger app
==> gen_stage
Compiling 10 files (.ex)
warning: System.stacktrace/0 is deprecated, use __STACKTRACE__ instead
  lib/consumer_supervisor.ex:574

Generated gen_stage app
==> benchfella
Compiling 9 files (.ex)
warning: System.stacktrace/0 is deprecated, use __STACKTRACE__ instead
  lib/benchfella.ex:506

warning: EEx.compile_file/2 defined in application :eex is used by the current application but the current application does not directly depend on :eex. To fix this, you must do one of:

  1. If :eex is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :eex is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :eex, you may optionally skip this warning by adding [xref: [exclude: EEx] to your "def project" in mix.exs

  lib/mix/tasks/bench_graph.ex:91: Mix.Tasks.Bench.Graph

warning: EEx.function_from_file/4 defined in application :eex is used by the current application but the current application does not directly depend on :eex. To fix this, you must do one of:

  1. If :eex is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :eex is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :eex, you may optionally skip this warning by adding [xref: [exclude: EEx] to your "def project" in mix.exs

  lib/mix/tasks/bench_graph.ex:91: Mix.Tasks.Bench.Graph

warning: Kernel.ParallelRequire.files/1 is deprecated. Use Kernel.ParallelCompiler.require/2 instead
  lib/mix/tasks/bench.ex:109: Mix.Tasks.Bench.do_load_bench_files/1

Generated benchfella app
==> flow
Compiling 9 files (.ex)
warning: System.stacktrace/0 is deprecated, use __STACKTRACE__ instead
  lib/flow/materialize.ex:653

Generated flow app
==> cpu_info
Compiling 1 file (.ex)
Generated cpu_info app
==> pelemay
Compiling 18 files (.ex)
Generated pelemay app
==> pelemay_sample
Compiling 1 file (.ex)
warning: CpuInfo.all_profile/0 defined in application :cpu_info is used by the current application but the current application does not directly depend on :cpu_info. To fix this, you must do one of:

  1. If :cpu_info is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :cpu_info is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :cpu_info, you may optionally skip this warning by adding [xref: [exclude: CpuInfo] to your "def project" in mix.exs

  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:28: PelemayNifElixirPelemaySample.init_cpu_info/0

warning: Flow.from_enumerable/1 defined in application :flow is used by the current application but the current application does not directly depend on :flow. To fix this, you must do one of:

  1. If :flow is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :flow is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :flow, you may optionally skip this warning by adding [xref: [exclude: Flow] to your "def project" in mix.exs

Found at 2 locations:
  lib/pelemay_sample.ex:64: PelemaySample.flow_string_replace/1
  lib/pelemay_sample.ex:71: PelemaySample.flow_logistic_map/1

warning: Flow.map/2 defined in application :flow is used by the current application but the current application does not directly depend on :flow. To fix this, you must do one of:

  1. If :flow is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :flow is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :flow, you may optionally skip this warning by adding [xref: [exclude: Flow] to your "def project" in mix.exs

Found at 11 locations:
  lib/pelemay_sample.ex:65: PelemaySample.flow_string_replace/1
  lib/pelemay_sample.ex:72: PelemaySample.flow_logistic_map/1
  lib/pelemay_sample.ex:73: PelemaySample.flow_logistic_map/1
  lib/pelemay_sample.ex:74: PelemaySample.flow_logistic_map/1
  lib/pelemay_sample.ex:75: PelemaySample.flow_logistic_map/1
  lib/pelemay_sample.ex:76: PelemaySample.flow_logistic_map/1
  lib/pelemay_sample.ex:77: PelemaySample.flow_logistic_map/1
  lib/pelemay_sample.ex:78: PelemaySample.flow_logistic_map/1
  lib/pelemay_sample.ex:79: PelemaySample.flow_logistic_map/1
  lib/pelemay_sample.ex:80: PelemaySample.flow_logistic_map/1
  lib/pelemay_sample.ex:81: PelemaySample.flow_logistic_map/1

warning: Pelemay.defpelemay/1 defined in application :pelemay is used by the current application but the current application does not directly depend on :pelemay. To fix this, you must do one of:

  1. If :pelemay is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :pelemay is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :pelemay, you may optionally skip this warning by adding [xref: [exclude: Pelemay] to your "def project" in mix.exs

  lib/pelemay_sample.ex:22: PelemaySample

warning: Pelemay.eval_compile_time_info/0 defined in application :pelemay is used by the current application but the current application does not directly depend on :pelemay. To fix this, you must do one of:

  1. If :pelemay is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :pelemay is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :pelemay, you may optionally skip this warning by adding [xref: [exclude: Pelemay] to your "def project" in mix.exs

Found at 2 locations:
  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:95: PelemayNifElixirPelemaySample.map_replace_elem1__Fizz/3
  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:131: PelemayNifElixirPelemaySample.map_elem1_plus_1_mult_22_mult_elem1_mod_6700417/1

warning: Pelemay.Db.get_flag/1 defined in application :pelemay is used by the current application but the current application does not directly depend on :pelemay. To fix this, you must do one of:

  1. If :pelemay is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :pelemay is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :pelemay, you may optionally skip this warning by adding [xref: [exclude: Pelemay.Db] to your "def project" in mix.exs

Found at 8 locations:
  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:89: PelemayNifElixirPelemaySample.map_replace_elem1__Fizz/3
  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:94: PelemayNifElixirPelemaySample.map_replace_elem1__Fizz/3
  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:99: PelemayNifElixirPelemaySample.map_replace_elem1__Fizz/3
  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:103: PelemayNifElixirPelemaySample.map_replace_elem1__Fizz/3
  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:125: PelemayNifElixirPelemaySample.map_elem1_plus_1_mult_22_mult_elem1_mod_6700417/1
  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:130: PelemayNifElixirPelemaySample.map_elem1_plus_1_mult_22_mult_elem1_mod_6700417/1
  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:135: PelemayNifElixirPelemaySample.map_elem1_plus_1_mult_22_mult_elem1_mod_6700417/1
  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:139: PelemayNifElixirPelemaySample.map_elem1_plus_1_mult_22_mult_elem1_mod_6700417/1

warning: Pelemay.Generator.libnif/1 defined in application :pelemay is used by the current application but the current application does not directly depend on :pelemay. To fix this, you must do one of:

  1. If :pelemay is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :pelemay is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :pelemay, you may optionally skip this warning by adding [xref: [exclude: Pelemay.Generator] to your "def project" in mix.exs

  _build/dev/lib/pelemay/priv/pelemay_nif_elixir_pelemaysample.ex:16: PelemayNifElixirPelemaySample.load_nifs/0

Generated pelemay_sample app
Settings:
  duration:      1.0 s

## LogisticMapBench

20:33:32.448 [debug] [Pelemay] init_cpu_info success

20:33:32.450 [debug] [Pelemay] library.exists? = true

20:33:32.644 [debug] [Pelemay] load_nif success

20:33:32.644 [debug] [Pelemay] append pelemay_if __MODULE__

20:33:32.646 [debug] [Pelemay] init pelemay_if

20:33:32.646 [debug] [Pelemay] append pelemay_if __MODULE__
[20:33:32] 1/6: Enum
[20:33:35] 2/6: Flow
[20:33:38] 3/6: Pelemay
## StringReplaceBench
[20:33:41] 4/6: Enum String.replace
[20:33:45] 5/6: Flow String.replace
[20:33:48] 6/6: Pelemay String.replace

Finished in 26.56 seconds

## LogisticMapBench
benchmark name          iterations   average time 
Pelemay                       5000   599.82 µs/op
Enum                          1000   2548.52 µs/op
Flow                           500   4451.91 µs/op
## StringReplaceBench
benchmark name          iterations   average time 
Pelemay String.replace    10000000   0.92 µs/op
Enum String.replace        1000000   2.83 µs/op
Flow String.replace           5000   544.17 µs/op

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

For earlier than Pelemay version 0.0.6,

  • Pelemay Version:
  • Elixir & Erlang/OTP versions (elixir --version):
  • OS (OS name & version, and uname -a):
  • Clang versions (clang -v):

For later than Pelemay version 0.0.7,
Copy & paste the error log from Logger tagged [Pelemay]

Additional context
Add any other context about the problem here.

This is due to Benchfella, which doesn't seems to be supported recently.