Skip to content

Commit dfd1f51

Browse files
committed
Add changelogs and update some docs
1 parent 805e205 commit dfd1f51

File tree

4 files changed

+66
-3
lines changed

4 files changed

+66
-3
lines changed

.github/workflows/deploy.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ jobs:
5050
llvm \
5151
x86asm \
5252
plaintext \
53-
shell
53+
shell \
54+
rust
5455
working-directory: highlight.js
5556
- name: Prepare theme
5657
run: |

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
.DS_Store
22
book
3+
highlight.js

CHANGELOG/v2.0.0-2023-06-28.md

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# 2.0.0版本更新(2023-06-28)
2+
3+
* 将所有基于macOS的代码都迁移到了Linux上
4+
* 将LLVM版本更新至16
5+
* 将所有的LLVM IR指针都转写为opaque pointers
6+
* 更改了章节布局
7+
8+
* 将数据表示一章分为了数据区与符号表、寄存器和栈、数据的使用三个子章节
9+
* 将控制语句和函数合并为控制流大章的两个子章节
10+
* 删除了异常处理一章
11+
* 增加了内置函数、属性和元数据一章
12+
* 使用MDBook作为文档构建工具,并将文档托管在了GitHub Pages上
13+
* 增加、修正了更多细节

README.md

+50-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
本仓库是我写的LLVM IR入门指南。
44

5-
推荐前往<https://Evian-Zhang.github.io/llvm-ir-tutorial>阅读以获得最佳排版及语法高亮体验。PDF版本下载请点击前述网页的右上角。本教程中涉及的大部分代码也都在本GitHub仓库中
5+
推荐前往<https://Evian-Zhang.github.io/llvm-ir-tutorial>阅读以获得最佳排版及语法高亮体验。PDF版本下载请点击前述网页的右上角。本教程中涉及的大部分代码也都在本GitHub仓库[Evian-Zhang/llvm-ir-tutorial](https://github.com/Evian-Zhang/llvm-ir-tutorial)
66

77
LLVM是当下最通用的编译器后端之一,无论是想自己动手制作一个编译器,还是为主流的编程语言增加功能,又或者是做软件的静态分析,都离不开LLVM。LLVM IR是LLVM架构中一个重要的组成成分,编译器前端将抽象语法树转变为LLVM IR,而编译器后端则根据LLVM IR进行优化,生成可执行程序。但是,目前对LLVM IR的中文介绍少之又少。因此,我就写了这样的一系列文章,介绍了LLVM的架构,并且从LLVM IR的层面,让大家系统地了解LLVM。
88

9-
最近(2023年6月),这个GitHub仓库的star数即将达到一千。因此,我打算基于现有的脉络,大范围更新现有的文章,推出LLVM IR入门指南2.0版。我这次更新的原因主要有以下几点:
9+
最近(2023年6月),这个GitHub仓库的star数即将达到一千。因此,我打算基于现有的脉络,大范围更新现有的文章,推出LLVM IR入门指南2.0版(如需查看1.0版,请移步[v1分支](https://github.com/Evian-Zhang/llvm-ir-tutorial/tree/v1)。我这次更新的原因主要有以下几点:
1010

1111
* LLVM版本更新
1212

@@ -54,6 +54,54 @@ LLVM是当下最通用的编译器后端之一,无论是想自己动手制作
5454

5555
C语言采用Clang 16编译器。LLVM采用LLVM 16版本。
5656

57+
## 本地生成可阅读版本
58+
59+
本系列文章可以在GitHub Pages <https://Evian-Zhang.github.io/llvm-ir-tutorial>上阅读并生成PDF。如果想在本地离线阅读,可以按照如下步骤生成可阅读版本。
60+
61+
### 1. 克隆本仓库
62+
63+
```shell
64+
git clone https://github.com/Evian-Zhang/llvm-ir-tutorial && cd llvm-ir-tutorial
65+
```
66+
67+
### 2. 准备语法高亮文件
68+
69+
由于MDBook自带的highlightjs并不支持本书的所有语法高亮,所以需要按照其官方文档中[Custom theme](https://rust-lang.github.io/mdBook/format/theme/syntax-highlighting.html#custom-theme)的步骤准备自定义的语法高亮文件:
70+
71+
```shell
72+
git clone https://github.com/highlightjs/highlight.js && cd highlight.js
73+
npm install
74+
node tools/build.js \
75+
bash \
76+
c \
77+
llvm \
78+
x86asm \
79+
plaintext \
80+
shell \
81+
rust
82+
cd ..
83+
mkdir -p theme
84+
cp highlight.js/build/highlight.min.js theme/highlight.js
85+
```
86+
87+
### 3. 使用MDBook生成最终文档
88+
89+
使用MDBook,其可通过`cargo install mdbook`进行安装。
90+
91+
```shell
92+
mdbook build
93+
```
94+
95+
生成的文档将位于`book/`目录下。
96+
97+
同时,也可以使用
98+
99+
```shell
100+
mdbook serve
101+
```
102+
103+
在本地启动一个服务器,从而可以更方便地在浏览器中阅读。
104+
57105
#### License
58106

59107
<sup>

0 commit comments

Comments
 (0)