下载
GCC 源码的下载方式的多种,可以通过 SVN 或者 Git 来 clone 到本地,或者通过 rsync 来同步,可以在官网页面上找到相应的链接。在众多方式中,只有 SVN 方式可以 提交代码(当然也不是随便提交的,这里不详述)。
[译]如何开始使用 LLVM C API
原文地址:How to get started with the LLVM C API。
我喜欢做一些玩具编程语言来理解编译器(和最底层的,机器)如何工作以及测试一些我没 有掌握的技术。LLVM 很棒,因为我可以修修改改,然后将它作为后端来生成可以在大多数 平台运行的效率很高的代码。如果我只是想让我的代码能执行,可以简单地手写一个解释器, 但有了 LLVM 的 JIT,优化套件和平台支持就像有了超能力──你的小小的玩具也可以有非 常不错的性能。而且,LLVM 是像 Emscripten 和 Rust 的基础,我喜欢让自己对我感兴趣 的技术如何实现有一些直觉上的认识。
STL 源码剖析 3.2 节中的 iterator 例子
在看《STL 源码剖析》这本书第 3.2 节 iterator 的时候,想要尝试实现一下书中的 list 例子。遇到了一点小问题。
我用的编译器是 clang 7.0, 没有完全按照书中的写法,用了一些 C++11 的语法。但是在 编译时遇到了错误,源码如下:
[译]Emacs Loading Process
原文是 Spacemacs 的文档,描述了如何创建一个 layer。原文很长,本文只是其中关于 Emacs 加载机制的一部分,单独拿出来翻译。
原文地址: The Emacs loading process.
Emacs Lisp files
Emacs Lisp 文件包含了可以被求值的代码。在被求值后,文件中定义的函数、宏和 modes 都会在当前的 Emacs session 中可用。这也被称谓加载文件。
[译]Git Beyond the Basics: Using Shallow Clones
原文地址: https://www.perforce.com/blog/git-beyond-basics-using-shallow-clones
本文是关于 Git 命令的 6 篇文章中的第 6 篇。
Git 在持续集成(CI)和持续交付(CD)环境中使用时经常会遇到的一个问题就是服务器负载。 因为 Git 的设计包括了一个仓库的每一个克隆都包含它的所有信息,每份克隆保存的不仅 仅是其中的文件,还有每个文件的所有提交过的修改。不难想象这很快会成为增加构建数量、 测试和部署流水线的瓶颈。
[译]Let’s Build A Simple Interpreter. Part 14: Nested Scopes and a Source-to-Source Compiler.
原文地址:Let’s Build A Simple Interpreter. Part 14.
Only dead fish go with the flow.
如我在上篇文章中承诺的,今天我们终于要深入研究作用域这个主题了。
[译]Let’s Build A Simple Interpreter. Part 13: Semantic Analysis.
原文地址:Let’s Build A Simple Interpreter. Part 13.
Anything worth doing is worth overdoing.
在深入作用域这个主题之前,我想绕个“小”弯再谈一些关于符号,符号表和语义分析的细节。 本着“Anything worth doing is worth overdoing.”的精神,我希望你能觉得在处理嵌套作 用域之前这些内容对于构建一个更牢固的基本很有用。今天我们会继续增加我们关于怎样编 写解释器和编译器的知识。你会看到在这篇文章中覆盖到的内容是你在第十一部分中看到的 关于符号和符号表内容的更进一步推广。
[译]Let’s Build A Simple Interpreter. Part 12.
原文地址:Let’s Build A Simple Interpreter. Part 12.
不怕慢,就怕停。 ── 中国谚语
嗨,欢迎回来!
今天我们会多走几步并学习怎样解析 Pascal 过程声明。
[译]Let’s Build A Simple Interpreter. Part 11.
原文地址:Let’s Build A Simple Interpreter. Part 11.
有一天我坐在我的房间里,回想我们已经学了多少了,觉得我应该回顾一下我们到现在为止 都学了什么以及还有多少要学。
Figure 1: recap
到现在为止我们都学了:
[译]Let’s Build A Simple Interpreter. Part 10.
原文地址:Let’s Build A Simple Interpreter. Part 10.
今天我们会继续我们当前与想要到达的目标(一个功能齐全的 Pascal 语言子集的解释器)之 间的差距。
Figure 1: intro