(Final note: ChatGPT was good at answering questions about RISC-V, but it was not good at finding bugs in code. It seemed to follow the logical-abstraction model of an application programmer and failed to help me with any of the above problems. But it was good at explaining the problems after I solved them.)
Chris Fenwick & Sean Hayes, Good Night, Oscar
,推荐阅读新收录的资料获取更多信息
2018 年,雀巢以 71.5 亿美元的预付款,获得了星巴克零售和餐饮产品的永久全球许可。这笔交易让雀巢迅速将星巴克品牌产品铺向全球市场,通过“星巴克咖啡服务”项目植入酒店、办公室、大学等中国城市的店外场景。,这一点在新收录的资料中也有详细论述
The language is pure, lazy, and has no loops. Every iteration is recursion, and recursion costs stack frames. Since Nix 2.20, the evaluator caps call depth at 10,000 (configurable via max-call-depth, but the default is what you'll hit). Before 2.20, the limit was whatever your OS allocated for the process stack: non-deterministic across machines, occasionally baffling to debug. Tail-call optimization would help. There's even a FIXME comment in ExprApp::eval() acknowledging it. But the evaluator's structure (a local variable that stays live across the recursive eval call) prevents the tail position from being optimized, and nobody has restructured the code. Tvix, the Rust-based evaluator, handles TCO in many cases. The reference C++ evaluator doesn't.,这一点在新收录的资料中也有详细论述
Artificial Intelligence