Go1.25のリリースノート(日本語訳)

JavaScriptを有効にしてください

まえがき

Go 1.25 のリリースノートをChatGPTで日本語に翻訳しました。
Go 1.25 Release Notes

前のバージョン:Go1.24のリリースノート(日本語訳)
リリースノート一覧:Goリリース情報

Go 1.25の紹介

最新のGoリリース、バージョン1.25は2025年8月 に登場し、Go 1.24 から6か月後にリリースされます。変更のほとんどはツールチェーン、ランタイム、ライブラリの実装にあります。リリースは常にGo 1の互換性の約束を維持しています。ほとんどすべてのGoプログラムがこれまで通りにコンパイルおよび実行されることを期待しています。

言語の変更

Go 1.25では、Goプログラムに影響を与える言語の変更はありません。ただし、言語仕様 では、コアタイプの概念が専用のプローズに置き換えられました。詳細については、ブログ記事 を参照してください。

ツール

Goコマンド

go build -asanオプションは、プログラム終了時にリーク検出を行うようにデフォルト設定されました。これにより、Cによって割り当てられたメモリが解放されず、CまたはGoによって割り当てられた他のメモリによって参照されていない場合にエラーが報告されます。これらの新しいエラーレポートは、プログラムを実行する際に環境でASAN_OPTIONS=detect_leaks=0を設定することで無効にできます。

Goディストリビューションには、事前にビルドされたツールバイナリが少なくなります。コンパイラやリンカなどのコアツールチェーンバイナリは引き続き含まれますが、ビルドやテスト操作で呼び出されないツールは、必要に応じてgo toolによってビルドおよび実行されます。
新しいgo.mod ignoreディレクティブ を使用して、goコマンドが無視すべきディレクトリを指定できます。これらのディレクトリおよびそのサブディレクトリ内のファイルは、all./...などのパッケージパターンに一致する際にgoコマンドによって無視されますが、モジュールzipファイルには含まれます。

新しいgo doc -httpオプションは、要求されたオブジェクトのドキュメントを表示するドキュメントサーバーを開始し、ブラウザウィンドウでドキュメントを開きます。新しいgo version -m -jsonオプションは、指定されたGoバイナリファイルに埋め込まれたruntime/debug.BuildInfo構造体のJSONエンコーディングを出力します。

goコマンドは、リポジトリのサブディレクトリをモジュールルートのパスとして使用することをサポートするようになりました。これは、バージョン管理システムvcsを使用して、root-pathrepo-urlsubdirに対応することを示す構文を使用してモジュールパスを解決する 際に使用されます。

新しいworkパッケージパターンは、work(以前はmainと呼ばれていた)モジュール内のすべてのパッケージに一致します。モジュールモードでは単一のworkモジュール、ワークスペースモードではワークスペースモジュールのセットのいずれかです。goコマンドがgo.modまたはgo.workファイルのgo行を更新する際に、コマンドの現在のバージョンを指定するツールチェーン行を追加しなくなりました

Vet

go vetコマンドには新しいアナライザーが含まれています:

  • waitgroup 、これはsync.WaitGroup.Add への誤った呼び出しを報告します。
  • hostport 、これはfmt.Sprintf("%s:%d", host, port)を使用してnet.Dial のアドレスを構築する使用を報告します。これはIPv6では機能しないため、代わりにnet.JoinHostPort を使用することを提案します。

ランタイム

コンテナ対応のGOMAXPROCS

GOMAXPROCSのデフォルトの動作が変更されました。以前のバージョンのGoでは、GOMAXPROCSは起動時に利用可能な論理CPUの数にデフォルト設定されていました(runtime.NumCPU )。Go 1.25では、次の2つの変更が導入されました:

  • Linuxでは、ランタイムはプロセスを含むcgroupのCPU帯域幅制限を考慮します(存在する場合)。CPU帯域幅制限が利用可能な論理CPUの数よりも低い場合、GOMAXPROCSは低い制限にデフォルト設定されます。Kubernetesのようなコンテナランタイムシステムでは、cgroupのCPU帯域幅制限は一般的に「CPU制限」オプションに対応します。Goランタイムは「CPUリクエスト」オプションを考慮しません。
  • すべてのOSで、利用可能な論理CPUの数やcgroupのCPU帯域幅制限が変更された場合、ランタイムは定期的にGOMAXPROCSを更新します。

これらの動作は、GOMAXPROCS環境変数を介して手動で設定するか、runtime.GOMAXPROCS を呼び出すことで自動的に無効になります。また、GODEBUG設定containermaxprocs=0およびupdatemaxprocs=0で明示的に無効にすることもできます。更新されたcgroup制限を読み取るために、ランタイムはプロセスの存続期間中にcgroupファイルのキャッシュされたファイルディスクリプタを保持します。

新しい実験的なガベージコレクタ

新しいガベージコレクタが実験として利用可能になりました。このガベージコレクタの設計は、小さなオブジェクトのマーキングとスキャンのパフォーマンスを、より良い局所性とCPUスケーラビリティを通じて改善します。ベンチマーク結果はさまざまですが、ガベージコレクタを多用する実際のプログラムでガベージコレクションのオーバーヘッドが10〜40%削減されることを期待しています。新しいガベージコレクタは、ビルド時にGOEXPERIMENT=greenteagcを設定することで有効にできます。設計は引き続き進化し、改善されることを期待しています。そのため、Go開発者に試してもらい、経験を報告してもらうことを奨励しています。設計の詳細とフィードバックの共有方法については、GitHubの問題 を参照してください。

トレースフライトレコーダー

ランタイム実行トレース は、アプリケーションの低レベルの動作を理解しデバッグするための強力ですが高価な方法を長い間提供してきました。残念ながら、そのサイズと実行トレースを継続的に書き込むコストのため、まれなイベントをデバッグするには一般的に実用的ではありませんでした。新しいruntime/trace.FlightRecorder APIは、トレースをメモリ内リングバッファに継続的に記録することで、ランタイム実行トレースをキャプチャする軽量な方法を提供します。重要なイベントが発生した場合、プログラムはFlightRecorder.WriteTo を呼び出して、トレースの最後の数秒をファイルにスナップショットします。このアプローチは、アプリケーションが重要なトレースのみをキャプチャできるようにすることで、はるかに小さなトレースを生成します。FlightRecorder によってキャプチャされる時間の長さとデータの量は、FlightRecorderConfig 内で構成できます。

未処理のパニック出力の変更

未処理のパニックが回復され再パニックされたためにプログラムが終了したときに印刷されるメッセージは、パニック値のテキストを繰り返さなくなりました。以前は、panic("PANIC")でパニックし、パニックを回復し、元の値で再パニックしたプログラムは次のように印刷されていました:

1
2
panic: PANIC [recovered]
  panic: PANIC

このプログラムは今後次のように印刷されます:

1
panic: PANIC [recovered, repanicked]

LinuxでのVMA名

匿名仮想メモリアリア(VMA)名のカーネルサポートがあるLinuxシステムでは、Goランタイムは匿名メモリマッピングにその目的に関するコンテキストを注釈します。例:[anon: Go: heap]はヒープメモリを示します。これは、GODEBUG設定decoratemappings=0で無効にできます。

コンパイラ

nilポインタバグ

このリリースでは、Go 1.21で導入されたコンパイラバグ を修正しました。このバグはnilポインタチェックを誤って遅延させる可能性がありました。次のようなプログラムは、以前は正常に(誤って)実行されていましたが、今後は(正しく)nilポインタ例外でパニックします:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
package main

import "os"

func main() {
    f, err := os.Open("nonExistentFile")
    name := f.Name()
    if err != nil {
        return
    }
    println(name)
}

このプログラムは、エラーをチェックする前にos.Openの結果を使用しているため、誤っています。errがnilでない場合、fの結果はnilになる可能性があり、その場合f.Name()はパニックするべきです。しかし、Goバージョン1.21から1.24では、コンパイラがエラーチェックの後までnilチェックを誤って遅延させ、プログラムがGo仕様に違反して正常に実行される原因となっていました。Go 1.25では、もはや正常に実行されません。この変更がコードに影響を与えている場合、解決策はエラー生成ステートメントの直後に非nilエラーチェックをコード内で早期に行うことです。

DWARF5サポート

Go 1.25のコンパイラとリンカは、DWARFバージョン5 を使用してデバッグ情報を生成するようになりました。新しいDWARFバージョンは、Goバイナリ内のデバッグ情報に必要なスペースを削減し、特に大規模なGoバイナリのリンク時間を短縮します。DWARF 5の生成は、ビルド時に環境変数GOEXPERIMENT=nodwarf5を設定することで無効にできます(このフォールバックは将来のGoリリースで削除される可能性があります)。

高速なスライス

コンパイラは、より多くの状況でスライスのバックストアをスタックに割り当てることができるようになり、パフォーマンスが向上します。この変更は、誤ったunsafe.Pointerの使用の影響を増幅する可能性があります。たとえば、issue 73199 を参照してください。これらの問題を追跡するために、bisectツール を使用して、問題を引き起こしている割り当てを-compile=variablemakeフラグを使用して見つけることができます。このような新しいスタック割り当てはすべて、-gcflags=all=-d=variablemakehash=nを使用してオフにすることもできます。

リンカ

リンカは、関数エントリのアラインメントを指定する-funcalign=Nコマンドラインオプションを受け入れるようになりました。デフォルト値はプラットフォームに依存しており、このリリースでは変更されていません。

標準ライブラリ

新しいtesting/synctestパッケージ

新しいtesting/synctest パッケージは、並行コードのテストをサポートします。Test 関数は、テスト関数を分離された「バブル」で実行します。バブル内では、時間が仮想化され、time パッケージの関数はフェイククロックで動作し、バブル内のすべてのゴルーチンがブロックされている場合、クロックは瞬時に進みます。Wait 関数は、現在のバブル内のすべてのゴルーチンがブロックされるのを待ちます。このパッケージは、Go 1.24でGOEXPERIMENT=synctestの下で最初に利用可能になり、わずかに異なるAPIを持っていました。この実験は一般的な利用可能性に昇格しました。古いAPIはGOEXPERIMENT=synctestが設定されている場合にまだ存在しますが、Go 1.26で削除されます。

新しい実験的なencoding/json/v2パッケージ

Go 1.25には、新しい実験的なJSON実装が含まれており、ビルド時に環境変数GOEXPERIMENT=jsonv2を設定することで有効にできます。有効にすると、次の2つの新しいパッケージが利用可能になります:

  • encoding/json/v2 パッケージは、encoding/jsonパッケージの大幅な改訂版です。
  • encoding/json/jsontext パッケージは、JSON構文の低レベル処理を提供します。

さらに、「jsonv2」GOEXPERIMENTが有効な場合:

  • encoding/json パッケージは、新しいJSON実装を使用します。
  • マーシャリングとアンマーシャリングの動作は影響を受けませんが、パッケージ関数によって返されるエラーのテキストは変更される可能性があります。
  • encoding/json パッケージには、マーシャラーとアンマーシャラーを構成するために使用できる新しいオプションが多数含まれています。

新しい実装は、多くのシナリオで既存のものよりも大幅に優れたパフォーマンスを発揮します。一般に、エンコーディングのパフォーマンスは実装間で同等であり、デコーディングは新しいものの方が大幅に高速です。詳細な分析については、github.com/go-json-experiment/jsonbench リポジトリを参照してください。詳細については、提案の問題 を参照してください。encoding/json のユーザーには、GOEXPERIMENT=jsonv2を有効にしてプログラムをテストし、新しい実装との互換性の問題を検出するのを支援することを奨励しています。encoding/json/v2 の設計は引き続き進化することを期待しています。開発者には、新しいAPIを試してみて、提案の問題 でフィードバックを提供することを奨励しています。

ライブラリの小さな変更

archive/tar

Writer.AddFS の実装は、io/fs.ReadLinkFS を実装するファイルシステムのシンボリックリンクをサポートするようになりました。

encoding/asn1

UnmarshalUnmarshalWithParams は、ASN.1タイプのT61StringBMPStringをより一貫して解析するようになりました。これにより、以前に受け入れられていた不正なエンコーディングが拒否される可能性があります。

crypto

MessageSigner は、新しい署名インターフェースで、署名されるメッセージを自分でハッシュしたい署名者によって実装できます。また、新しい関数SignMessage も導入され、Signer インターフェースをMessageSigner にアップグレードしようとし、成功した場合はMessageSigner.SignMessage メソッドを使用し、そうでない場合はSigner.Sign を使用します。これは、コードがSignerMessageSigner の両方をサポートしたい場合に使用できます。プログラムが開始された後にfips140GODEBUG設定 を変更することは、現在は無効です。以前は許可されていないと文書化されており、変更するとパニックを引き起こす可能性がありました。SHA-1、SHA-256、およびSHA-512は、AVX2命令が利用できない場合、amd64で遅くなりました。2015年以降に製造されたすべてのサーバープロセッサ(およびほとんどの他のプロセッサ)はAVX2をサポートしています。

crypto/ecdsa

新しいParseRawPrivateKeyParseUncompressedPublicKeyPrivateKey.Bytes 、およびPublicKey.Bytes 関数とメソッドは、低レベルのエンコーディングを実装し、crypto/ellipticmath/big の関数とメソッドを使用する必要を置き換えます。FIPS 140-3モードが有効な場合、署名は4倍速くなり、非FIPSモードのパフォーマンスに一致します。

crypto/ed25519

FIPS 140-3モードが有効な場合、署名は4倍速くなり、非FIPSモードのパフォーマンスに一致します。

crypto/elliptic

一部のCurve 実装における非公開で文書化されていないInverseおよびCombinedMultメソッドが削除されました。

crypto/rsa

PublicKey は、モジュラス値が秘密として扱われると主張しなくなりました。VerifyPKCS1v15VerifyPSS はすでにすべての入力が公開され、漏洩する可能性があると警告しており、他の公開値からモジュラスを回復できる数学的攻撃があります。キー生成は3倍速くなりました。

crypto/sha1

SHA-NI命令が利用可能な場合、amd64でのハッシュ化は2倍速くなりました。

crypto/sha3

新しいSHA3.Clone メソッドはhash.Cloner を実装します。Apple Mプロセッサでのハッシュ化は2倍速くなりました。

crypto/tls

新しいConnectionState.CurveID フィールドは、接続を確立するために使用された鍵交換メカニズムを公開します。新しいConfig.GetEncryptedClientHelloKeys コールバックは、クライアントが暗号化されたクライアントハロー拡張を送信するときにサーバーが使用するEncryptedClientHelloKey を設定するために使用できます。SHA-1署名アルゴリズムは、RFC 9155 に従って、TLS 1.2ハンドシェイクで禁止されました。GODEBUG設定のtlssha1=1で再度有効にすることができます。FIPS 140-3モード が有効な場合、TLS 1.2では拡張マスターシークレットが必要になり、Ed25519とX25519MLKEM768が許可されるようになりました。TLSサーバーは、クライアントの最も優先されるプロトコルバージョンでなくても、サポートされている最高のプロトコルバージョンを優先するようになりました。TLSクライアントとサーバーの両方が、仕様に従ってより厳密に動作し、仕様外の動作を拒否するようになりました。準拠したピアとの接続には影響がないはずです。

crypto/x509

CreateCertificateCreateCertificateRequest 、およびCreateRevocationList は、crypto.MessageSigner 署名インターフェースとcrypto.Signer の両方を受け入れることができるようになりました。これにより、これらの関数は、ハッシュ化が署名操作の一部として行われる「ワンショット」署名インターフェースを実装する署名者を使用できるようになります。CreateCertificate は、SubjectKeyIdが欠落している場合、トランケートされたSHA-256を使用してSubjectKeyIdを埋めるようになりました。GODEBUG設定x509sha256skid=0はSHA-1に戻ります。ParseCertificate は、負のpathLenConstraintを含むBasicConstraints拡張を含む証明書を拒否するようになりました。ParseCertificate は、ASN.1のT61StringおよびBMPStringタイプでエンコードされた文字列をより一貫して処理するようになりました。これにより、以前に受け入れられていた不正なエンコーディングが拒否される可能性があります。

debug/elf

debug/elf パッケージには、RISC-V ELF解析用の2つの新しい定数が追加されました:

go/ast

FilterPackagePackageExportsMergePackageFiles 関数、およびMergeMode タイプとその定数はすべて非推奨です。これらは、長い間非推奨となっているObject およびPackage 機構でのみ使用されます。新しいPreorderStack 関数は、Inspect のように構文ツリーをトラバースし、サブツリーへの降下を制御しますが、便利なことに各ポイントで囲むノードのスタックも提供します。

go/parser

ParseDir 関数は非推奨です。

go/token

新しいFileSet.AddExistingFiles メソッドは、既存のFileFileSet に追加するか、任意のFile セットのFileSet を構築することを可能にし、長期間のアプリケーションで単一のグローバルFileSet に関連する問題を軽減します。

go/types

Var には、変数を次のいずれかとして分類するVar.Kind メソッドが追加されました:パッケージレベル、レシーバー、パラメーター、結果、ローカル変数、または構造体フィールド。新しいLookupSelection 関数は、既存のLookupFieldOrMethod 関数のように、指定された名前とレシーバータイプのフィールドまたはメソッドを検索しますが、結果をSelection の形式で返します。

hash

新しいXOF インターフェースは、SHAKE のような任意または無制限の出力長を持つハッシュ関数である「拡張可能出力関数」によって実装できます。新しいCloner インターフェースを実装するハッシュは、その状態のコピーを返すことができます。すべての標準ライブラリHash 実装は、Cloner を実装しています。

hash/maphash

新しいHash.Clone メソッドは、hash.Cloner を実装します。

io/fs

新しいReadLinkFS インターフェースは、ファイルシステム内のシンボリックリンクを読み取る機能を提供します。

log/slog

GroupAttrs は、Attr 値のスライスからグループAttr を作成します。Record には、ソースの場所を返すSource メソッドが追加されました。利用できない場合はnilを返します。

mime/multipart

新しいヘルパー関数FileContentDisposition は、マルチパートのContent-Dispositionヘッダーフィールドを構築します。

net

LookupMXResolver.LookupMX は、IPアドレスのように見えるDNS名と有効なドメイン名を返すようになりました。以前は、ネームサーバーがDNS名としてIPアドレスを返した場合、LookupMX はそれを破棄していましたが、RFCに従っていました。しかし、実際にはネームサーバーはIPアドレスを返すことがあります。Windowsでは、ListenMulticastUDP がIPv6アドレスをサポートするようになりました。Windowsでは、os.File とネットワーク接続の間で変換することが可能になりました。具体的には、FileConnFilePacketConn 、およびFileListener 関数が実装され、オープンファイルに対応するネットワーク接続またはリスナーを返します。同様に、TCPConnUDPConnUnixConnIPConnTCPListener 、およびUnixListenerFileメソッドが実装され、ネットワーク接続の基になるos.File を返します。

net/http

新しいCrossOriginProtection は、クロスサイトリクエストフォージェリ(CSRF) に対する保護を実装し、安全でないクロスオリジンのブラウザリクエストを拒否します。これは最新のブラウザフェッチメタデータ を使用し、トークンやクッキーを必要とせず、オリジンベースおよびパターンベースのバイパスをサポートします。

os

Windowsでは、NewFile が非同期I/O用にオープンされたハンドルをサポートするようになりました(つまり、syscall.FILE_FLAG_OVERLAPPEDsyscall.CreateFile 呼び出しで指定されています)。これらのハンドルは、GoランタイムのI/O完了ポートに関連付けられており、結果として得られるFile に次の利点を提供します:

この強化は、特にWindowsで名前付きパイプを介して通信するアプリケーションにとって有益です。ハンドルは一度に1つの完了ポートにのみ関連付けることができることに注意してください。NewFile に提供されたハンドルがすでに完了ポートに関連付けられている場合、返されるFile は同期I/Oモードにダウングレードされます。この場合、I/OメソッドはOSスレッドをブロックし、デッドラインメソッドは効果がありません。DirFS およびRoot.FS によって返されるファイルシステムは、新しいio/fs.ReadLinkFS インターフェースを実装しています。CopyFS は、io/fs.ReadLinkFS を実装するファイルシステムをコピーする際にシンボリックリンクをサポートします。Root タイプは、次の追加メソッドをサポートします:

reflect

新しいTypeAssert 関数は、Value を指定された型のGo値に直接変換することを許可します。これは、Value.Interface の結果に型アサーションを使用するのと似ていますが、不要なメモリアロケーションを回避します。

regexp/syntax

\p{name}および\P{name}文字クラス構文は、AnyASCIIAssignedCnLCの名前を受け入れるようになりました。また、\p{Letter}\pLのようなUnicodeカテゴリエイリアスとして受け入れます。Unicode TR18 に従って、スペース、アンダースコア、ハイフンを無視して大文字小文字を区別しない名前の検索も行います。

runtime

AddCleanup によってスケジュールされたクリーンアップ関数は、現在並行して実行され、並列に実行されるようになり、クリーンアップがunique パッケージのように重く使用される場合により実行可能になります。ただし、個々のクリーンアップは、長時間実行またはブロックする必要がある場合は、新しいゴルーチンに作業を移すべきです。新しいGODEBUG=checkfinalizers=1設定は、ファイナライザやクリーンアップに関する一般的な問題を見つけるのに役立ちます。これらの問題は、GCガイド で説明されています。このモードでは、ランタイムは各ガベージコレクションサイクルで診断を実行し、ファイナライザとクリーンアップキューの長さを定期的に標準エラー出力に報告して、長時間実行されるファイナライザやクリーンアップの問題を特定するのに役立ちます。詳細については、GODEBUGドキュメント を参照してください。新しいSetDefaultGOMAXPROCS 関数は、GOMAXPROCS環境変数が設定されていないかのように、GOMAXPROCSをランタイムのデフォルト値に設定します。これは、GOMAXPROCS環境変数または以前のGOMAXPROCS呼び出しによって無効にされた場合に、新しいGOMAXPROCSデフォルトを有効にするのに役立ちます。

runtime/pprof

ランタイム内部ロックの競合に関するミューテックスプロファイルは、遅延を引き起こしたクリティカルセクションの終わりを正しく指すようになりました。これは、sync.Mutex値の競合に関するプロファイルの動作と一致します。GODEBUGruntimecontentionstacks設定は、このプロファイルのこの部分に関するGo 1.22から1.24の異常な動作を選択することを許可していましたが、現在は削除されました。

sync

新しいWaitGroup.Go メソッドは、ゴルーチンの作成とカウントの一般的なパターンをより便利にします。

testing

新しいメソッドT.AttrB.Attr 、およびF.Attr は、テストログに属性を出力します。属性は、テストに関連付けられた任意のキーと値です。たとえば、TestFという名前のテストでは、t.Attr("key", "value")は次のように出力します:

1
=== ATTR  TestF key value

-jsonフラグを使用すると、属性は新しい「attr」アクションとして表示されます。新しいOutput メソッドは、TB 、およびFio.Writer を提供し、TB.Log と同じテスト出力ストリームに書き込みます。TB.Log のように、出力はインデントされますが、ファイルと行番号は含まれません。AllocsPerRun 関数は、並列テストが実行されている場合にパニックします。AllocsPerRun の結果は、他のテストが実行されている場合に本質的に不安定です。新しいパニック動作は、そのようなバグをキャッチするのに役立ちます。

testing/fstest

MapFS は、新しいio/fs.ReadLinkFS インターフェースを実装します。TestFS は、実装されている場合、io/fs.ReadLinkFS インターフェースの機能を検証します。TestFS は、無制限の再帰を避けるためにシンボリックリンクをたどらなくなりました。

unicode

新しいCategoryAliases マップは、「Letter」を「L」としてのようなカテゴリエイリアス名へのアクセスを提供します。新しいカテゴリCnLC は、それぞれ未割り当てのコードポイントと大文字小文字のある文字を定義します。これらは常にUnicodeによって定義されていましたが、以前のバージョンのGoでは誤って省略されていました。C カテゴリには、Cn が含まれるようになり、すべての未割り当てのコードポイントが追加されました。

unique

unique パッケージは、インターンされた値をより積極的に、より効率的に、並行して再利用するようになりました。その結果、Make を使用するアプリケーションは、多くの本当にユニークな値がインターンされたときにメモリの膨張を経験する可能性が低くなりました。Make に渡されたHandle を含む値は、以前はガベージコレクションサイクルを複数回必要としていましたが、Handle 値のチェーンの深さに比例していました。現在、未使用になると、単一のサイクルで迅速に収集されます。

ポート

Darwin

Go 1.24のリリースノートで発表された ように、Go 1.25はmacOS 12 Monterey以降を必要とします。以前のバージョンのサポートは終了しました。

Windows

Go 1.25は、壊れた 32ビットのwindows/armポート(GOOS=windows GOARCH=arm)を含む最後のリリースです。これはGo 1.26で削除されます。

Loong64

linux/loong64ポートは、レースディテクタをサポートし、runtime.SetCgoTraceback を使用してCコードからトレースバック情報を収集し、内部リンクモードでcgoプログラムをリンクするようになりました。

RISC-V

linux/riscv64ポートは、プラグインビルドモードをサポートするようになりました。GORISCV64環境変数は、新しい値rva23u64を受け入れるようになり、RVA23U64ユーザーモードアプリケーションプロファイルを選択します。


スポンサーリンク

共有

もふもふ

プロフィール

著者
もふもふ
プログラマ。汎用系→ゲームエンジニア→Webエンジニア→QAエンジニア