zeam-vm / pelemay

Pelemay is a native compiler for Elixir, which generates SIMD instructions. It has a plan to generate for GPU code.
Apache License 2.0
186 stars 13 forks source link

After fix #73: CC=gcc-7 doesn't work #88

Closed tsugutsugu8 closed 4 years ago

tsugutsugu8 commented 4 years ago

バグの説明

73 でchristianjgreenが作成したパッチをlinuxOS(ubuntu)とgccで動作するか確認した結果です

gcc-9では動作し、gcc-7では動作しませんでした

再現方法
下記の情報を記載してください.

  1. Pelemayを適用したソースコード README.mdにあるサンプルコード
  2. 実行したコマンド
    CC=gcc-7 mix compile
  3. 発生したエラー
    
    Compiling 11 files (.ex)
    "gcc-7"
    "gcc-7"
    /.../pelemay/_build/dev/lib/pelemay/priv/libnifelixirm.c:47:31: error: initializer element is not constant
    const size_t init_size_long = cache_line_size / sizeof(long);
                               ^~~~~~~~~~~~~~~
    /.../pelemay/_build/dev/lib/pelemay/priv/libnifelixirm.c:48:33: error: initializer element is not constant
    const size_t init_size_double = cache_line_size / sizeof(double);
                                 ^~~~~~~~~~~~~~~
    /.../pelemay/_build/dev/lib/pelemay/priv/libnifelixirm.c:49:35: error: initializer element is not constant
    const size_t size_t_highest_bit = ~(size_t_max >> 1);
                                   ^

== Compilation error in file lib/sample.ex == ** (MatchError) no match of right hand side value: {"", 1} lib/pelemay/generator/builder.ex:53: Pelemay.Generator.Builder.generate/1 lib/pelemay.ex:51: Pelemay.pelemaystub/2 expanding macro: Pelemay.defpelemay/1 lib/sample.ex:5: M (module)



**期待している動作**

**スクリーンショット**
バグの修正に役立ちそうな時はスクリーンショットを追加してください.

**動作環境(必須)**
 - Pelemay Version:0.0.4 
 - Elixir & Erlang/OTP versions (`elixir --version`):OTP 22/Elixir 1.9.1
 - OS (OS name & version, and `uname -a`): Linux rigel 5.0.0-36-generic #39~18.04.1-Ubuntu SMP Tue Nov 12 11:09:50 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
 - gcc versions (`gcc -v`):gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)

**備考**
[christianjgreenがforkしたリポジトリ](https://github.com/christianjgreen/pelemay/commit/8afb367577c8db3f3c6213ac5df558d9a0bc14bb)をoriginにブランチを切っています。
ブランチ名:[nerves_gcc](https://github.com/zeam-vm/pelemay.git)
zacky1972 commented 4 years ago

@tsugutsugu8 I fixed it. Would you try the branch nerves_gcc after git pull?

tsugutsugu8 commented 4 years ago

動きました。ありがとうございます。