HN 日本語サマリー

← 一覧へ戻る
プログラミング

UUID: NewV7() がブラウザで常に7000を含むUUIDを生成する (Golang)

UUID: NewV7() always generates a UUID with 7000 on browsers (Golang) (github.com)

35 pointsby mfrw5 コメント

要約

このGitHub issueは、Go言語の `uuid` パッケージにおける `NewV7()` 関数が、`js/wasm`ターゲット向けにコンパイルされた際に、UUIDの特定の部分(バージョンフィールド後)にランダムなバイトではなく常に `7000` を生成するというバグを報告しています。期待される動作ではランダムな値が含まれるはずであり、Go 1.27rc1で確認されています。この問題は、UUIDのバージョン7の仕様に違反する可能性があります。

全文翻訳

golang / go Public Notifications 通知設定を変更するにはサインインが必要です Fork 19k Star 135k uuid: NewV7() がブラウザで常に7000を含むUUIDを生成する #80084 新規issue コピーリンク 新規issue コピーリンク オープン #80091 uuid: NewV7() がブラウザで常に7000を含むUUIDを生成する #80084#80091 コピーリンク ラベル NeedsDecision 変更を行う前に専門家、貢献者、および/またはコミュニティからのフィードバックが必要です。 変更を行う前に専門家、貢献者、および/またはコミュニティからのフィードバックが必要です。 help wanted マイルストーン Go1.27 説明 hajimehoshi が 2026年6月20日にオープンしました。 Issue body actions Goバージョン go version go1.27rc1 darwin/arm64 モジュール/ワークスペースでの go env の出力: AR='ar' CC='clang' CGO_CFLAGS='-O2 -g' CGO_CPPFLAGS='' CGO_CXXFLAGS='-O2 g' CGO_ENABLED='1' CGO_FFLAGS='-O2 g' CGO_LDFLAGS='-O2 g' CXX='clang++' GCCGO='gccgo' GO111MODULE='' GOARCH='arm64' GOARM64='v8.0' GOAUTH='netrc' GOBIN='/Users/hajimehoshi/go/bin' GOCACHE='/Users/hajimehoshi/Library/Caches/go-build' GOCACHEPROG='' GODEBUG='' GOENV='/Users/hajimehoshi/Library/Application Support/go/env' GOEXE='' GOEXPERIMENT='' GOFIPS140='off' GOFLAGS='' GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/cj/73zbb35j0qx5t4b6rnqq0__h0000gn/T/go-build1757681747=/tmp/go-build -gno-record-gcc-switches -fno-common' GOHOSTARCH='arm64' GOHOSTOS='darwin' GOINSECURE='' GOMOD='/Users/hajimehoshi/test/uuidv7/go.mod' GOMODCACHE='/Users/hajimehoshi/go/pkg/mod' GONOPROXY='' GONOSUMDB='' GOOS='darwin' GOPACKAGESDRIVER='' GOPATH='/Users/hajimehoshi/go' GOPRIVATE='' GOPROXY='https://proxy.golang.org,direct' GOROOT='/Users/hajimehoshi/sdk/go1.27rc1' GOSUMDB='sum.golang.org' GOTELEMETRY='on' GOTELEMETRYDIR='/Users/hajimehoshi/Library/Application Support/go/telemetry' GOTMPDIR='' GOTOOLCHAIN='auto' GOTOOLDIR='/Users/hajimehoshi/sdk/go1.27rc1/pkg/tool/darwin_arm64' GOVCS='' GOVERSION='go1.27rc1' GOWORK='' PKG_CONFIG='pkg-config' 何をしたか? このプログラムを作成する ```go package main import "uuid" func main() { println(uuid.NewV7().String()) } ``` js/wasm ターゲット向けにこれを実行する (GOOS=js GOARCH=wasm go1.27rc1 run main.go をテストしました。nodeとgo_js_wasm_execがPATHにある場合、コンソールに出力されます) 何が起こったか? 出力が常に 7000 の部分を含んでいる ``` 019ee60f-29b3-7000-a12b-f817e25db8f4 019ee610-29c7-7000-bc34-f04bc09150bb 019ee610-2eb4-7000-884a-dfcad78e47d9 ``` 何を見ることを期待したか? 000 の部分にはランダムなバイトが含まれるべきです (この問題は @mimifuwacc によって発見されました (https://x.com/mimifuwacc/status/2068357756609065444)) リアクションは現在利用できません メタデータ メタデータ Assignees 誰もアサインされていません ラベル NeedsDecision 変更を行う前に専門家、貢献者、および/またはコミュニティからのフィードバックが必要です。 変更を行う前に専門家、貢献者、および/またはコミュニティからのフィードバックが必要です。 help wanted Type タイプなし Fields フィードバックを提供する タイプのないissueに設定されたフィールドはありません。 Projects プロジェクトなし Milestone Go1.27 期限なし Relationships まだありません Development ブランチやプルリクエストはありません Issue actions