Skip to main content

问题

安装 nvm 时,nvm 安装脚本会自动往 .zshrc 或者 .bashrc 中写入以下内容:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

但是以后每当我打开终端时,终端总是很慢,初始化时间大约有3-4s,通过查阅资料发现,罪魁祸首是 nvm 自动加载脚本。

nvm 安装脚本往 .zshrc 或者 .bashrc 中写入的 "$NVM_DIR/nvm.sh" 脚本会自动加载 nvm 及其各种环境变量,但该脚本执行耗时较多,会拖慢终端初始化速度。

序言

之前只在 Linux 和 macOS 上用过 LLVM,从来没有在 Windows 上用过,最近心血来潮在 llvm-bindings 的 github action 上添加 Windows 的工作流,顺便了解了一下 LLVM 在 Windows 上的编译和安装。

LLVM 在 Github 的 Release 页 上提供了 LLVM 各个版本的 Windows 安装包,文件名一般都是 LLVM-13.0.1-win64.exe 这样的格式,使用 Chocolatey 安装 LLVM 也是安装的这种安装包。

但是很遗憾,这种安装包是残缺不全的,只有一些基础的 clang 相关的命令,并不包含大多数 LLVM 的 lib,所以在 Windows 使用 LLVM 只能自己从源码编译了。

本文将介绍如何使用Harbor搭建私有的Docker镜像服务(HTTP版),分为服务端操作和客户端操作两部分,服务端操作包括安装Docker和Harbor,客户端操作主要是配置Docker命令的HTTP访问。

下文操作所使用的相关系统及软件环境如下表所示:

环境版本
操作系统Ubuntu 20.04 LTS
服务端IP192.168.0.2
Docker20.10.13
Docker-Compose1.29.2
Harbor2.4.2

序言

众所周知,编译原理、操作系统、图形学被称为程序员的三大浪漫,相信每个程序员都有一个开发一款编译器的梦想。

在2021年的今天,开发一款编译器不再使用一个很难的事情,你只需要:

  • 定义你的语法规则
  • 进行语法词法分析将源代码按照语法规则解析为语法树
  • 做语义分析做一些检查

然后,也是最重要的事情就是把语法树转换为LLVM IR, 最后通过LLVM把LLVM IR转为二进制机器码或者WebAssembly等目标格式。

可以看出,LLVM很重要,可以说,会用LLVM = 会开发编译器