LoginSignup
8
8

More than 5 years have passed since last update.

Swiftコンパイラの暴走バグ回避 (Xcode6 Beta5)

Last updated at Posted at 2014-08-12

そのうち治ると思うのですが一応メモしておきます.

ループをアンロールしてみて気づいたのですが,例えば:

var c = [b[0] + 1, b[1] + 1, b[2] + 1, b[3] + 1, b[4] + 1, b[5] + 1, b[6] + 1, b[7] + 1]

とか

var v = [0] + c[1] + c[2] + c[3] + c[4] + c[5] + c[6] + c[7]

のようなコードを書くとコンパイル時間がありえないほど(指数オーダー?)長くなってしまいます.
なんだかよく分かりませんが, 識別子かリテラル以外の式が 項としていっぱい並ぶとAST的にダメっぽいです.
今のところ,せいぜい3つの項にしておいたほうが無難なようですね.4つだと少し重くなります.

var v = c[0] + c[1] + c[2] 
v += c[3] + c[4] + c[5]
v += c[6] + c[7]

としておくと一瞬でコンパイルできます.

<追記>
リテラル使ってもこういうのはダメですね.

var v = Int(2 + 1 + 1 + 4 + 4 + 2 + 2 + 2 + 4)
8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8