draveness / blog-comments

面向信仰编程
https://draveness.me
140 stars 6 forks source link

Go 语言编译过程概述 · /golang-compile-intro #126

Closed draveness closed 2 years ago

draveness commented 5 years ago

https://draveness.me/golang-compile-intro

wanyhamo commented 5 years ago

请教下接口和对应的实现,以及结构体实现多个接口这种是在哪个过程编译的呢?

draveness commented 5 years ago

@wanyhamo 请教下接口和对应的实现,以及结构体实现多个接口这种是在哪个过程编译的呢?

你可以找一下 src/cmd/compile/internal/gc/subr.go:543src/cmd/compile/internal/gc/typecheck.go:1018,之后的文章也会介绍

wujunze commented 5 years ago

Go 语言的编译器入口在 src/cmd/compile/internal/pc 包中的 main.go 文件, 应该改成 Go 语言的编译器入口在 src/cmd/compile/internal/gc 包中的 main.go 文件,

文件路径有误

draveness commented 5 years ago

@wujunze Go 语言的编译器入口在 src/cmd/compile/internal/pc 包中的 main.go 文件, 应该改成 Go 语言的编译器入口在 src/cmd/compile/internal/gc 包中的 main.go 文件,

文件路径有误

修复了,多谢

769344359 commented 5 years ago

问一下画图是用什么工具画的

youzeliang commented 5 years ago

想问下 这书是用什么写的? gitbook?

draveness commented 5 years ago

想问下 这书是用什么写的? gitbook?

bingeng99 commented 4 years ago

“静态单赋值(Statis Single Assigment, SSA)” ,拼写错误:Static Single Assignment

draveness commented 4 years ago

“静态单赋值(Statis Single Assigment, SSA)” ,拼写错误:Static Single Assignment

感谢,已经修复了

ArvonHuang commented 4 years ago

作者有时间可以讲一下GO 的GC吗,非常期待

draveness commented 4 years ago

作者有时间可以讲一下GO 的GC吗,非常期待

后面会讲的,只是还没写哈

ikingye commented 4 years ago

@draveness

想问下 这书是用什么写的? gitbook?

gitbook 哪个版本的,右侧文章目录是自带的吗,还是哪个插件实现的?

draveness commented 4 years ago

@ikingye

@draveness

想问下 这书是用什么写的? gitbook?

gitbook 哪个版本的,右侧文章目录是自带的吗,还是哪个插件实现的?

换过一次主题了,现在是这个 https://github.com/alex-shpak/hugo-book

qichengzx commented 4 years ago

"复杂指令集通过增加指令的数量减少需要执行的质量数;" 减少需要执行的指令数?

draveness commented 4 years ago

"复杂指令集通过增加指令的数量减少需要执行的质量数;" 减少需要执行的指令数?

打错了,我改下

ikingye commented 4 years ago

@draveness

@ikingye

@draveness

想问下 这书是用什么写的? gitbook?

gitbook 哪个版本的,右侧文章目录是自带的吗,还是哪个插件实现的?

换过一次主题了,现在是这个 https://github.com/alex-shpak/hugo-book

hugo 是用 github pages 部署吗,还是用 netlify 部署? https://github.com/draveness/golang 并不存在,或者是私有库, 怎么做到 draveness.me/golang 这样的子路径的? 是部署到自己的服务器,用 nginx 映射吗?

draveness commented 4 years ago

@draveness

@ikingye

@draveness

想问下 这书是用什么写的? gitbook?

gitbook 哪个版本的,右侧文章目录是自带的吗,还是哪个插件实现的?

换过一次主题了,现在是这个 https://github.com/alex-shpak/hugo-book

hugo 是用 github pages 部署吗,还是用 netlify 部署? https://github.com/draveness/golang 并不存在,或者是私有库, 怎么做到 draveness.me/golang 这样的子路径的? 是部署到自己的服务器,用 nginx 映射吗?

我的博客是一个 Kubernetes 集群,你看到的 Hugo Book 和主站是两个不同的 Service

hellowoody commented 4 years ago

"Go Plugin 至今仍然不支持 Windows" 是指无法打包exe么,还是另有含义?

draveness commented 4 years ago

"Go Plugin 至今仍然不支持 Windows" 是指无法打包exe么,还是另有含义?

Windows 上应该就构建不了,你看看这个有 200 多 👍 的 issue https://github.com/golang/go/issues/19282

hengli-coder commented 4 years ago

膜拜大佬

devincd commented 4 years ago

静态单赋值(Static Single Assigment, SSA)中的Assigment应该是Assignment才对哈


2020-04-28 UPDATES: 已修复

kangxiaoning commented 4 years ago

它们的在设计理念上会有一些不同

多了个“的”吗?


2020-05-25 UPDATES: 已修复

Janetyu commented 4 years ago

2.1.3 中“类型检查会对遍历传入节点的全部子节点”这句好像有点不太通顺,是不是可以改成“类型检查会对传入节点的全部子节点进行遍历”呢?


2020-05-25 UPDATES: 已修复,修改如下所示

-类型检查对遍历传入节点的全部子节点
+类型检查会对遍历传入节点的全部子节点
angon823 commented 4 years ago

go编译器也是用go写的,那go编译器的go代码是怎么变成可执行二进制的啊?

draveness commented 4 years ago

go编译器也是用go写的,那go编译器的go代码是怎么变成可执行二进制的啊?

你可以查查 Go 语言的自举

TonyZZhang commented 4 years ago

写的太棒了!

onebig32 commented 4 years ago

写的真棒,看了很多遍~~很受益,谢谢大佬分享~

ou-bing commented 4 years ago

为啥没有第一章啊

juniperdiego commented 4 years ago

作者的图片是用什么工具画的呢,感觉很漂亮

tomial commented 4 years ago

底下注释3的

编译器一般分为前端和后端,其中前端的主要工作是将源代码编程语言无关的中间表示,...

这句话是不是写漏了什么啊?


2020-07-30 UPDATES: 已修复

anig1scur commented 4 years ago

错别字:颗 -> 棵


2020-10-07 UPDATES: 已修复

xunzhaoxusanduo commented 3 years ago

同问,作者的图片是用什么工具画的呢,感觉很漂亮

qichengzx commented 3 years ago

@juniperdiego @xunzhaoxusanduo sketch

javasgl commented 3 years ago
我们可以清晰地发现变量 y_1 和 x_1 是没有任何关系的,所以在机器码生成时就可以省去 x := 1 的复制,通过减少需要执行的指令优化这段代码。

可以省去 x:=1的复制

可以省去 x:=1的赋值?


2021-01-12 UPDATES: 已修复

andrewhit commented 3 years ago

写书是第一步,不知道作者在https://github.com/golang/go 提交了多少个commit?

draveness commented 3 years ago

@andrewhit 写书是第一步,不知道作者在https://github.com/golang/go 提交了多少个commit?

没提交几个,而且都很简单,不知道的可以自己去搜

vamosdalian commented 3 years ago

博主你好,我想知道文中的图片,就是彩色的框那个图片是怎么弄的呢

draveness commented 3 years ago

@elve960520 博主你好,我想知道文中的图片,就是彩色的框那个图片是怎么弄的呢

你说的是圆角矩形么

vamosdalian commented 3 years ago

对,就是那个,整个系列博客的思维图都是这种,是咋弄的

@draveness

@elve960520 博主你好,我想知道文中的图片,就是彩色的框那个图片是怎么弄的呢

你说的是圆角矩形么

chengleqi commented 3 years ago

谢谢博主!学到很多

berryberrrry commented 3 years ago

请问静态单赋值这里

x:=1
x:=2

x短变量声明了两次,不是有问题的吗?

MrGuin commented 3 years ago

图片错误,图2-2的编译phases,中间代码生成是 Intermediate Code Generation 吧?怎么缩写是IR generation?

jluo93 commented 2 years ago

请问用的什么画图工具

ancientmodern commented 2 years ago

@MrGuin 图片错误,图2-2的编译phases,中间代码生成是 Intermediate Code Generation 吧?怎么缩写是IR generation?

Intermediate Representations Generation

LiquanLuo commented 2 years ago

好像书中提到的所有原码都更新了