問題タブ [plan-9]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 未定義: plan9 の syscall.Stat_t
私は 9front/Plan9 のファイル マネージャーに取り組んでいます。開発作業は、Plan9 バイナリをビルドするためのクロスコンパイルを使用して、64 ビット Ubuntu の Go v1.15 で行われます。
ユーザー/グループ情報を取得する関数を想定しましょう:
Plan9 のコンパイル中に失敗しますundefined: syscall.Stat_t
。
syscall
パッケージ ページには、Go v1.4 から廃止され、OS 固有のリポジトリに置き換えられたと記載されていgolang.org/x/sys/
ます。
os.FileInfo.Sys
Linux および Plan9の OS 固有のキャストを実装する方法
go - Go ASM で入力と出力としてスライスを処理する方法
Go ASM 関数との間でより複雑な値を送受信する方法を理解しようとしています。典型的な uint in、uint out のケースを超えています。crypto/elliptic
関数 p256BigToLittleを使用して、この高度な使用法の優れた例を偶然見つけましたp256_asm_arm64.s
。バイト スライスと uint64 スライスを受け取り、バイトを処理して出力値を uint64 スライスに入れます。以下は、プリプロセッサ定義ステートメントが置換された関数です。私が理解していない主なものは次のとおりです。
- define ステートメントが見つかりません。
res
これらin
はコンパイル時に .go ファイルの関数シグネチャから解決されますか? (IE: 関数を作成した場合、対応する asm ファイルでfunc myFunc(arg1 *int)
参照できますか?)arg1
- マジックナンバー
+24
はMOVD in+24(FP), R1
どこから来たのですか? 1*16(R1)
バイト スライス (8*2) の 2 番目の要素を指すことだけを意図していると思いますか? スライスの要素間の間隔はどのようにわかりますか?in
uint32 スライスの場合、2 番目の要素は1*64(R1)
?- この間、Go Slice ヘッダーはどこにありますか? どのように回避されていますか?
go - golang実行パニックのアセンブリケース?
私はgolangでPlan9を学んでいます。次のような場合 (make Square):
とを使用するためFP
にSUBQ $16,SP
。
パニックになるときgo run main.go
エラーの説明を手伝ってください。