2014/04/09


先日、golang でスクリプト言語を書いた訳ですが
Big Sky :: Pure Golang でスクリプト言語の VM 書いた。
http://mattn.kaoriya.net/software/anko/20140328210749.htm
言語仕様もだいたい決まって、github で 70star 近く頂いてて、テストも書けてきて、ダンゴも表示出来て、そろそろ実用的になったんじゃないかと個人的に思ったりはしているのですが、誰もコントリビュートしてくれないという、悲しい状況が続いております。
あんまりなので、インストールしなくてもすぐさま試せる様に playground を作ってみました。
Anko Playground
http://play-anko.appspot.com/
golang の playground とほぼ同じです。(アニメーション機能等はありません)
これで誰でも Anko を試せる様になったのではないかと思います。
Posted at by




あんこ
(Picture licensed under CC BY-SA 3.0)

昨晩 lestrrat さんが go-nuts デビューした。
[ANN] Xslate template engine for golang
https://groups.google.com/d/msg/golang-nuts/bajxDXEsixk/OdRjXgkc5oYJ
lestrrat/go-xslate - GitHub

See Supported Syntax (TTerse) for what's currently available Debugging Currently the error reporting...

https://github.com/lestrrat/go-xslate
golang で書かれた xslate というテンプレートエンジンのポーティング。
Xslate - Scalable template engine for Perl5

Distributions Text::Clevery - Smarty compatible syntax and functions Text::Xslate::Bridge::Alloy - U...

http://xslate.org/
なんと現時点で html/template よりも速いとの事。すばらしい。
テンプレートエンジンの中では小さな VM が動いてる。とてもカッコイイ。

それを聞いて、僕も言語処理系を書きたくなって、家に帰ってからもモヤモヤして寝れなかった。えいや!とばかりに僕も言語処理系を書いてみた。
mattn/anko - GitHub
https://github.com/mattn/anko
JavaScript っぽいような、Golang っぽい様な言語です。
以下の様なスクリプトが動きます。
# declare function
func foo(x){
  return x + 1;
}

# declare variables
var x = 1;
var y = x + 1;

# print values 
println(x * (y + 2 * x + foo(x) / 2));

# if/else condition
if foo(y) > 1 {
  println("こんにちわ世界");
else {
  println("Hello, World");
}

# array type
var a = [1,2,3];
println(a[2]);
println(len(a));

# map type
var m = {"foo""bar""bar""baz"};
for k in keys(m) {
  println(m[k]);
}
勢いで書いたので、開発継続するかとか、この後どうするかとか、何も考えてません。現状、計算くらいしか出来ません。
ですが言語処理系を作る方法のサンプルとしては、誰かの役に立つかなーと思ったので公開しておきます。

追記
ちなみに anko という名前は、ふざけて「unko」にしようと思ったけど、いいのが思いつかずに「そう言えば昨晩、アンドーナツをアテに酒飲んでたなー」という安直な発想で付けました。
Posted at by



2014/03/27


Patch 7.4.212
https://groups.google.com/forum/#!topic/vim_dev/0nx0RLbJhmk
Patch 7.4.212 (after 7.4.200)
Problem: Now that the +visual feature is always enabled the #ifdefs for it
are not useful.
Solution: Remove the checks for FEAT_VISUAL.
最新のソースで TINY FEATURE でビルドしても Visual モードは使えるので、一見なんの変哲もないパッチだが、意外と大きなパッチだったと思ってる。
いままで Vim はどんな事があろうとも #ifdef で切り抜けて来たし、obsolete だから動かない環境は無視しようとといった事を自らは言わない方針だったと記憶してる。
先日、Tiny ビルドでも Visual 選択有効にしようという持ちかけに対して誰も意見しなかった。
About Patch 7.4.200
https://groups.google.com/d/msg/vim_dev/IVsjvq-KUg4/rshKSw-9-_QJ
時代の流れというかなんというか、Vim もそろそろ古い物を保守する為に新しい何かを犠牲にしなければいけない状態になって来ている。

もう Vim のソースでは Visual モードの無い vi はコンパイル出来ないのだ。
Posted at by