V8 不用支持运算符重载,也完全不支持多线程,只考虑沙箱运行,是容易优化很多
#21 楼 @blacktulip 是的,你有 7 本购物目录要解锁,每件东西都买来烧掉后还有段剧情
little inferno 通关了... burn 掉了好多时间...
除了 clarify 马赛克样,和 path finder, 都是功能简单界面奇帅的软件...
那就等 zsh 抄 fish 的提示了...
收入可能比美国少 20-30%,东西比美国贵 10-20%。但是超市不卖枪,很少有枪杀,没有恐怖袭击,而且全民免费医疗。看个人喜好了。
高风险高回报 XD
想起了绝版输入设备:data hand...
话说 wiki 关于 rvm 的部分也该更新下了,现在安装依赖的方法就是:全部交给 rvm ...
rvm autolibs packages
rvm install ruby-head --debug
XCode 4.6.1 是有点问题,所以现在的 brew 都要求 4.6.2
antlr 接受的是 CFG 的子集,而 packrat parser 接受的是 PEG CFG 和 PEG 的区别是,CFG 的选择支是无序的,PEG 的选择支是有序的。
packrat 可以无限 lookahead. LL, LR, GLR 都只支持定长 lookahead, LL(3) 就表示最多 lookahead 3 个 token. 不过这个长度在 antlr 里是可以配置/检测的,所以叫 LL(*).
缩进敏感语法可以用 lexer 插入伪 token: indent
和 dedent
来解决。python 语法里的缩进就是这么预处理后交给 antlr 的。手写语法有一些好处,例如可以加入特殊的规则,优化性能,可以更自由的自定义错误报告之类的。官方 java 的语法就是手写的。但是对比较复杂的语法来说手写还是容易出错的,ruby 和 python 就没用手写法。
LL, LR, GLR 里面的第一个 L 都是废话 (left to right), 最后一个字母区别了 Leftmost derivation 和 Rightmost derivation.
LL 和 packrat parser 都不支持 left recursion (称作 ambiguity ignored, 也有一些实现改写了算法加入有限支持的).
LR 可以辨认的语法范围比 LL 大,支持 left recursion. GLR (generalized LR) 通过平行构造多个语法树,最终可以多消除一些歧义 (称作 ambiguity embraced). lookahead LR 的缩略写法是 LALR, 和 LL(k) 的写法略有区别。
关于这次嵌入 ruby 2.0 的最小 hello world 的写法...
#include <ruby.h>
int main (int argc, char const *argv[]) {
// ruby-2.0.0-p0 还需要这个函数, 演示时跑不过是因为 ruby-head 进一步简化了...
// ruby_sysinit(&argc, &argv);
RUBY_INIT_STACK; // 初始化栈
ruby_init(); // 初始化 vm 和 gc
rb_eval_string("puts 'hello world'");
return 0;
}
编译运行 (和各人的路径可能不太一样)
clang a.m -I~/.rvm/rubies/ruby-head/include/ruby-2.0.0\
-I~/.rvm/rubies/ruby-head/include/ruby-2.0.0/x86_64-darwin12.2.1\
-L~/.rvm/rubies/ruby-head/lib\
-lruby
./a.out
支付宝还算可以吧,就是回车键不能提交表单太郁闷...
我比较担心的是听完了会忍不住买 RubyMotion
持久...?
做得大不代表没有垃圾设计,在客户不知道的地方偷懒裁减成本正是发展壮大的条件之一...
私鈅的 pass phrase 本地穷举爆破就可以了,没有意义的...
已经 fo 了 HackThePlanet
基本没实用意义的,一是有 map
, reduce
等优化过性能的高级方法,我们很少需要操作底层插入,二是我们用数组的时候都是在尾插入而不是在头插入...
在尾插入数组,最后 reverse, 比 list 快多了:
bench ("array") {
100000.times { a << 10 }
a.reverse!
}
报名~~
太操蛋了,HN 上贴切评论:
-- 别担心,门都锁好了 -- 钥匙呢? -- 插在锁上
明天换卡去...
自带的好像没有... 你可以 gem ins test-unit
然后就能 def self.startup
和 def self.cleanup
了