近君子而远小人
君子与小人在《论语》中,君子和小人指品德高尚性情文雅的人和徇私舞弊品行低劣的人,现在也沿用了这一种解释。 虽然我们不能以极端的态度去评价人,去决定哪个人是君子,哪个人是小人,但我们可以判断哪些人像君子,哪些人像小人。 所谓之,心诚求之,虽不中,不远矣。内心倾向于君子品行的人,其本身就不远于君子,而相反,其不远于小人。 我的生活中,大多数人都是非常优秀和善良的人,我也以诚待人,并乐在其中,故而从没有认真看待过那些极少数不善良、人品差的人,甚至自己从没有意识到,自己身边也会存在这样的人。 如何辨别君子与小人孔子说过,君子坦荡荡,小人长戚戚。 这是我发生这件事后,体会最大的一句话,君子做事坦坦...
TableGen 语言语法介绍
LLVM目前的更新很活跃,请注意跟踪项目最新变更 如果你之前没了解过 TableGen,请先看我的另一篇文章:有关于TableGen的简单介绍 有关于TableGen语言语法的文章,LLVM官方发布有两篇: TableGen Language Introductionbcain-llvm.readthedocs.io/projects/llvm/en/latest/TableGen/LangIntro/ TableGen Language Referencereleases.llvm.org/10...
Effective C++ 学习笔记 2:构造、析构、赋值运算
Effective C++ 学习笔记 1:让自己习惯 C++Effective C++ 学习笔记 2:构造、析构、赋值运算Effective C++ 学习笔记 3:资源管理Effective C++ 学习笔记 4:设计与声明Effective C++ 学习笔记 5:实现Effective C++ 学习笔记 6:继承与面向对象设计Effective C++ 学习笔记 7:模板与泛型编程Effective C++ 学习笔记 8:定制 new 和 deleteEffective C++ 学习笔记 9:杂项讨论 条款 05:了解 C++ 默默编写并调用哪些函数Know what functio...
学习非暴力沟通
我掌握感受沟通情绪的技巧,最早是因为一本书,书名叫《非暴力沟通》,我非常乐意把这本书推荐给你。 作者马歇尔 · 卢森堡博士是非暴力沟通的最早传播者,里边介绍了很多他遇到的案例,同时也很细心的把这些案例按主题分类。 书中介绍了非暴力沟通的四个步骤,非常有实用价值,分别是:观察、感受、需要、请求(这四个词放在这里不好理解,推荐你去看书,毕竟作者把这四个词扩展成了一本书)。 你可能在想,不就是不要用暴力和冲突去沟通嘛,哪有那么多道理。但事实上,这是技巧,是能力,并且很多人只懂概念,但做不到(或者不知道怎么做)。我把自己所学的精华分享出来。 非暴力沟通的前提是先体会自己的内心情绪变化,观察自己...
Effective C++ 学习笔记 1:让自己习惯 C++
Effective C++ 学习笔记 1:让自己习惯 C++Effective C++ 学习笔记 2:构造、析构、赋值运算Effective C++ 学习笔记 3:资源管理Effective C++ 学习笔记 4:设计与声明Effective C++ 学习笔记 5:实现Effective C++ 学习笔记 6:继承与面向对象设计Effective C++ 学习笔记 7:模板与泛型编程Effective C++ 学习笔记 8:定制 new 和 deleteEffective C++ 学习笔记 9:杂项讨论 条款 01:让自己习惯 C++Accustoming Yourself to C+...
有关于TableGen的简单介绍
本文主要参考了官方的一篇文档:TableGen - LLVM 10 documentationllvm.org/docs/TableGen/ 因为工作相关,需要整理学习一下llvm中TableGen的相关知识,本文不是对官方文档的直接翻译,故仅供参考。有关于LLVM的基础知识,可以参考我之前的文章:LLVM基本概念入门 - 知乎 (zhihu.com) 基本介绍TableGen在llvm中是一个比较重要的部分,它连接着很多不同功能的模块,它的主要目的是帮助开发人员更便捷的维护领域特定信息(domain-specific information),比如...
LLVM基本概念入门
LLVM目前的更新很活跃,请注意跟踪项目最新变更 入职新公司以后,开始着手基于LLVM开发编译器,之前在前东家那里主要做gcc的开发,所以也算是有点基础,但拿到LLVM后,除了知道clang a.c -o a之外,好像其他的都有点差异。现在经过了小一个月的学习,也算有点收获。因为网上关于LLVM的中文资料一直也不多,即使能找到的一些,也都是停留在怎么使用的层面,对于编译器开发工程师入门来说,感觉完全不够,所以我写写基础概念,能帮到大家也挺好的。本文的参考资料主要是官网的资料,经过自己的摸索和提炼,整理成文,本文需要一定的编译器基础知识。有任何建议或疑问,欢迎留言 安装与使用这部分...
跟随一条指令来看LLVM的基本结构
LLVM是一个很复杂的软件,了解LLVM的工作原理不是很容易,然而,对于刚开始接触LLVM整个框架的工作原理来说,详细而深入,不如广泛而浅显,所以有了这一篇文章。 通过跟随一条指令在LLVM中的各个passes中的状态变化,从源程序开始,到目标代码结束,可以让我们对LLVM的整体框架有个大致的认识。 这篇文章基于Life of an instruction in LLVM,文章大部分内容与参考文章一致,但由于参考文章编辑于2012年11月,当时的LLVM版本是3.2,距现在新的LLVM版本已有一些差异,所以有部分内容我做了调整。 这篇文章不会详细讲解各个passes中的实现,尽量易于理解...
在 CentOS 上编译 LLVM 源码
在公司使用llvm开发编译器,刚入门,尝试在一个CentOS系统上编译llvm的源码,本文是对过程的简要记录以及遇到的一些问题的记录。 操作步骤下载llvm库12cd /home/PWE/git clone https://github.com/llvm/llvm-project.git 开始构建12345cd llvm-projectmkdir buildcd buildcmake -G Ninja -DCMAKE_BUILD_TYPE="Debug" -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi&qu...













