Community Contributed Articles and Tutorials on Go Important Conference Announcement You may have noticed that the team at Gopher Academy has been unusually quiet lately. In April, we contacted the Walt Disney World Swan and Dolphin Resort to discuss the cancellation of our conference at their property. GoVirCon is back With cases of COVID-19 continuing to rise throughout the US due to the Delta v
なんとなく、mrubyのVMの基本的なところを書いておこうと思ったので。誰かの参考になれば。 大きな仕様的なところは、 ・32bit固定長のバイトコードを解釈して動作する。 ・レジスタをスタックに確保するタイプのレジスタマシンである。従って、スタックの任意の位置をレジスタ番号で指定して直接読み書き可能。 ・メソッドやブロックなどの単位でバイトコードがirep構造体にまとめられている。 みたいな感じ。 スタックの使い方 スタックトップがレジスタのR0となり、以下、R1、R2・・・と名前が付けられる。スタックの型はmrb_valueの配列であり、つまりmrubyオブジェクトが詰まっている。irepのコードを呼び出すとき、スタックの上から順に以下のような情報を積んでから呼ばれる。 (引数が2個あった場合の例) R0 |self | R1 |argument1| R2 |argument2| R3
Go の言語仕様はシンプルで他の言語に比べてはまりどころが少なくて学習コストが小さめな言語のように思います。しかし、それでもはまるところがないわけではないので、自分がはまって時間を無駄にしてしまったことを書き留めておきます。 念の為誤解のないように追記しておくと、この文書の目的は Go を批判することではなく Go が Go であるがゆえに C++/Java/Python など利用者が Go を使い始めるときに困惑あるいは誤解するであろうポイントをまとめておくことで初めて Go を触る人がスムーズに Go を使い始められるようにすることです。私個人は Go はバランスがとれた良い言語でだと思いますし、気に入っています。 目次 interface と nil (Go の interface は単なる参照ではない) 文献 メソッド内でレシーバ(this, self)が nil でないことをチェ
Advanced Reflection with Go at HashiCorp HashiCorp builds a diverse set of popular DevOps tools written in Go: Packer, Serf, Consul, and Terraform. While these tools range from desktop software to highly scalable distributed systems, their internals all have one thing in common: they use reflection, and a lot of it. In this post, I’ll share the libraries and techniques we use at HashiCorp to get t
ffjson is a project I have been hacking on for making JSON serialization faster in the Go programing language. ffjson works by generating static code for Go’s JSON serialization interfaces. Fast binary serialization frameworks like Cap’n Proto or Protobufs also use this approach of generating code. Because ffjson is serializing to JSON, it will never be as fast as some of these other tools, but it
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く