Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Using `continue` in a loop has inconsistent behavior.

オープン
#611 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
javascript
領域
compilers

調査の方向性

まず、issue にある 3 つのカーネル例を実行し、ループ境界が固定の場合と可変の場合で出力を比較します。解釈実行されるカーネルループ内で gpu.js が continue をどのように処理するかを追跡します。同じ入力に対してシナリオ A、B、C が同一の結果を生成すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

A GIF or MEME to give some spice of the internet

What is wrong?

continue acts as break when loop is based off an input variable

Where does it happen?

In a kernel or added function, where JS is interpreted, within a loop.

How do we replicate the issue?

A - fixed iteration (i < 4), with or without continue, expected behavior

k = gpu.createKernel(function() {
  var a = 0
  for(var i = 0; i < 4; i++){
    if(i == this.thread.x) { continue }
    else { a += i }
  }
  return a
}).setOutput([4])
console.log(k())
VM3228:9 Float32Array(4) [6, 5, 4, 3]

B - variable iteration (i < n), with continue, completely unexpected behavior

k = gpu.createKernel(function(n) {
  var a = 0
  for(var i = 0; i < n; i++){
    if(i == this.thread.x) { continue }
    else { a += i }
  }
  return a
}).setOutput([4])
console.log(k(4))
VM3217:9 Float32Array(4) [0, 0, 1, 3]
undefined

C - variable iteration (i < n) without continue, a valid workaround

k = gpu.createKernel(function(n) {
  var a = 0
  for(var i = 0; i < n; i++){
    if(i == this.thread.x) {  }
    else { a += i }
  }
  return a
}).setOutput([4])
console.log(k(4))
VM3207:9 Float32Array(4) [6, 5, 4, 3]
undefined

How important is this (1-5)?

5

Expected behavior (i.e. solution)

I would expect scenarios A, B, and C to behave identically.

Other Comments

主要言語
JavaScript
スター
15.5k
フォーク
663
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

gpujs/gpu.js のほかの issue

gpujs/gpu.js の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。