SHINING的博客

不忘初心,方得始终。
私信 关注
snsn1984
码龄17年

专注技术,专注管理。

  • 1,210,607
    被访问量
  • 203
    原创文章
  • 2,705
    作者排名
  • 1,423
    粉丝数量
  • 毕业院校 吉林大学
  • 于 2004-03-06 加入CSDN
获得成就
  • 博客专家认证
  • 获得601次点赞
  • 内容获得484次评论
  • 获得191次收藏
荣誉勋章
TA的专栏
  • LLVM每日谈
    60篇
  • 深入研究Clang
    19篇
  • 编译技术及LLVM
    116篇
  • LLVM零基础学习
    8篇
  • Tensorflow学习
    5篇
  • 翻译
    8篇
  • TensorFlow
    9篇
  • 技术综合区
    36篇
  • C++
    32篇
  • 软件工程
    8篇
  • Android
    8篇
  • VC++/MFC
    22篇
  • 随笔
    36篇
  • 文本分析
    2篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

LLVM libc++的RISCV支持

libc++的官方主页:http://libcxx.llvm.org/libc++文档主页:https://libcxx.llvm.org/docs/简介:libc++ is an implementation of the C++ standard library, targeting C++11, C++14 and above.All of the code in libc++ isdual licensedunder the MIT license and the UIUC...
原创
351阅读
0评论
0点赞
发布博客于 9 月前

深入研究Clang(十九) Clang的RISCV支持2

前文Clang的RISCV支持1介绍了Clang中有关RISCV的代码主要集中在三个地方:Driver部分、Basic部分和CodeGen部分,并且对Basic部分和CodeGen部分的内容和关系进行了介绍,只有Driver部分因为涉及到了ToolChain、Tool和Command(job)等概念体系而未进行深入介绍。在介绍完ToolChain、Tool和Command(job)等概念和调用关系之后,我们在本文再对Clang的RISCV支持的Driver部分进行深入分析。一、Driver部分涉及到
原创
317阅读
0评论
1点赞
发布博客于 9 月前

深入研究Clang(十八) Clang Driver库的job

Clang的Tool最终会调用ConstructJob来为Compilation添加job。根据源码中的注释,Tool中保存的是一个特定编译工具的信息(Tool - Information on a specific compilation tool.,clang/include/clang/Driver/Tool.h)。而job则是通过Command类去进行具体实现,同时还有一个相关类JobList。本文将分析Command和JobList的实现,以及其相关的调用关系。一、Command和JobLis
原创
206阅读
0评论
0点赞
发布博客于 9 月前

深入研究Clang(十七) Clang Driver库的Tool

Tool也是Clang的Driver库里的一个类,它是具体编译工具的信息,代码注释中的原文是:Tool - Information on a specific compilation tool.(clang/include/clang/Driver/Tool.h)本文将对Tool的实现以及其相关调用关系做一个简单的分析。一、Tool的实现和继承关系1、Tool的定义和实现都位于clang/include/clang/Driver/Tool.h和clang/lib/Driver/Tool.cpp之中。
原创
209阅读
0评论
1点赞
发布博客于 9 月前

深入研究Clang(十六) Clang Driver库的ToolChain

ToolChain是Clang的Driver库里的一个类,它是用来获取具体某个平台的工具集合,代码注释中的原文是:ToolChain - Access to tools for a single platform.(clang/include/clang/Driver/ToolChain.h)这里涉及到的Tool也是Clang的Driver库里的一个类,它是具体编译工具的信息,代码注释中的原文是:Tool - Information on a specific compilation tool.(clang
原创
280阅读
0评论
0点赞
发布博客于 9 月前

深入研究Clang(十五) Clang的RISCV支持1

一、Clang/LLVM对RISCV的支持概况目前已经有一系列的C类编译器和库开始支持RISCV,这其中包括了GCC和Clang/LLVM。从RISCV的官方网站,可以获取目前的支持状态。具体内容如下:网址:https://riscv.org/software-status/#c-compilers-and-libraries该列表中还包含了所支持的License和Maintainers。其中,Clang/LLVM的Maintainers是Alex Bradbury,这位大神是LLVMWEE
原创
421阅读
2评论
1点赞
发布博客于 9 月前

LLVM每日谈之五十七 TableGen

TableGen官方文档TableGen 后端官方文档TableGen是LLVM的一个工具,其可执行文件的名字为llvm-tblgen。通常在build目录下的bin目录里。TableGen主要是帮助开发者开发和维护特定领域的信息记录,方便开发者更好的构建这些信息记录,避免错误。尤其是在面对大量的信息记录的时候,用起来比较方便。TableGen的主要使用者是The LLVM Targe...
原创
435阅读
0评论
0点赞
发布博客于 10 月前

方舟编译器学习笔记67 clang-tidy的检查规则解析

前段时间,我为方舟编译器提交了一些clang-tidy的检查规则,这些规则位于项目目录之下的.clang-tidy文件之中。本文将逐条解读一下这些规则。1、readability-identifier-naming (规则2.1.1)这条规则是用来检查名命名规则的。在这条总的规则之下,还有关于具体要检查项的key和value。比如: - key: reada...
原创
1839阅读
0评论
0点赞
发布博客于 1 年前

关于编译器和静态分析的一些课程

陆陆续续收集了一些课程,主要是编译器和静态分析方面的,在这里分享给大家,也给自己做个资料存档。国外的一些课程:1、Stanford编译器课程系列CS143:CS143: CompilersCS243:CS243 - Advanced CompilersCS343:CS 343这个系列课程,共有三门课。其中,CS143讲的是编译器的基础知识;CS142讲的是程序分析和优化技术...
原创
1870阅读
0评论
0点赞
发布博客于 1 年前

写在36岁的生日

25 Feb 2020今天是我36岁的生日。 回望过去,似乎是不知不觉就来到了这个有点尴尬的年纪,这个被年轻程序员认为要被淘汰的年纪。 但是真正到了这个年纪,却发现,现在更能静下心来做点东西,也更喜欢踏实的做点东西。32岁的时候,做到了技术总监,真正脱离了第一线,终于不担心自己的中年危机了。 每天就是开会、考察、写公文、谈合作,搞的自己疲惫不堪。 偶尔有时间的时候,自己读读代码,读读书,就...
原创
601阅读
1评论
7点赞
发布博客于 1 年前

深入研究Clang(十四) clang-tidy的使用

前文对clang-tidy进行了简单的介绍,本文对clang-tidy使用中的一些点进行一下总结。1、clang-tidy及其批量运行脚本run-clang-tidy.py在Clang/LLVM的预编译发布包中都有,但是位于不同的目录。其中,clang-tidy位于:发布包主目录/bin目录之下;run-clang-tidy.py位于:发布包主目录/shared/clang/目录之下。例如...
原创
2696阅读
1评论
0点赞
发布博客于 1 年前

深入研究Clang(十三) clang-tidy简介

最近几天在关注clang-tidy,有一些体会,简单做一些笔记。分享给感兴趣的朋友们,也是给将来的自己看。1、clang-tidy是基于AST的静态检查工具。因为它基于AST,所以要比基于正则表达式的静态检查工具更为精准,但是带来的缺点就是要比基于正则表达式的静态检查工具慢一点。也是因为它基于AST,所以clang-tidy运行的时候需要知道编译命令。2、clang-tidy不仅仅可以做静...
原创
2131阅读
0评论
1点赞
发布博客于 1 年前

方舟编译器学习笔记分类与导读

方舟学习笔记系列,从方舟开源到现在,已经写了50多篇,保证了每天一篇的更新频率。篇数增加之后,文章的分类以及文章之间的关系,逐渐变得复杂起来。本文将对已发表的学习笔记系列进行分类和导读,方便读者更好的理解。1、方舟动态本类中主要是关于方舟编译器动态的消息,包括不限于方舟的变动、线下活动见闻等,以与此相关的评论和思考内容。方舟编译器学习笔记5 方舟开始接受代码合并请求 [方舟动态]方舟...
原创
1986阅读
2评论
2点赞
发布博客于 2 年前

LLVM每日谈之五十六 从RegionPass看Region

RegionPass是Pass的一个子类,和其他Pass的子类(ModulePass、FunctionPass、LoopPass、BasicBlockPass)一样,都是同样的一个模式:运行在每一个XX之上。(注:这里的XX代表着这几个Pass的针对的对象,每个都不同。FunctionPass运行在每一个Function之上,RegionPass运行在每一个Region之上。其他同样)但是...
原创
476阅读
1评论
1点赞
发布博客于 2 年前

[技术论坛]6月22日HelloLLVM上海线下聚会

HelloLLVM和HelloGCC社区将在 2019年6月22日(周六)在上海聚会。聚会内容包含(但不限于):MLIR 是什么,要学么? 近期的编译领域的八卦 TVM Stack 前景如何?现在入还来得及么? 如何吸引新人参与GCC开发? 闪电演讲(现场排队)时间暂定为6月22日周六下午3点到6点,地点暂定为张江高科地铁站旁的 vπ 咖啡。本次活动采取报名制,感兴趣的同学和...
转载
967阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之五十五 浅谈对Pass的错误认知及其原因

Pass作为LLVM的一个重要的组成部分,在LLVM IR层面和LLVM Backend层面都发挥了重要的作用。很多LLVM的使用者容易将Pass理解为LLVM IR层面的analysis和transform,而忽略了Pass在LLVM Backend层面的作用。而实际上,Pass在LLVM Backend层面发挥的作用一点都不小。以后端的结构为例:Notes: 《Getting Star...
原创
1541阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之五十四 新建后端的第二步校正(register set)

新建后端的七大步骤,在前文《LLVM后端文档解析》中进行过介绍。我们在《创建一个LLVM新后端的第一步中文档与代码的差异》和《Target Registration的更正》中,已经列出了现有文档中第一步“Create a subclass of the TargetMachine class that describes characteristics of your target machine...
原创
1060阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之五十三 Target Registration的更正

前文:创建一个LLVM新后端的第一步中文档与代码的差异主要是为新后端实现了一个Target Machine,这是新建后端七个步骤的第一步。在这个步骤之后,还有一个隐含的内容,那就是将这个Target注册,好让其它的LLVM工具可以在运行时使用你新建的target。LLVM的官方文档中,以Sparc为例,做了举例:和实际上,代码变动已经很大了。目前的Target的注册的代...
原创
1019阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之五十二 创建LLVM后端的第一步校正(target machine)

根据LLVM文档《Writing an LLVM Backend》可知道,LLVM新建一个后端需要七大步骤。前文对七大步骤和文档中其他的结构的关系也做了简单的分析。后续会逐步分析新建后端的七大步骤,并以RISC-V为目标平台,结合RISC-V的LLVM后端代码进行分析。另外,由于《Writing an LLVM Backend》中有一部分内容已经和代码完全脱钩,所以我通常会列出文档的要求,然后...
原创
848阅读
0评论
1点赞
发布博客于 2 年前

Modern source-to-source transformation with Clang and libTooling

原文地址:https://eli.thegreenplace.net/2014/05/01/modern-source-to-source-transformation-with-clang-and-libtooling/I couple of years ago I published a blog post namedBasic source-to-source transformati...
转载
229阅读
0评论
0点赞
发布博客于 2 年前

[技术论坛] 5月25日 HelloLLVM 北京线下:我们又双叒叕聚了

HelloLLVM 与 HelloGCC 社区计划于 2019年5月25日举办线下聚会。本次聚会的内容有:丰富的茶歇(感谢金牌赞助商重德智能。硬广:他们提供工具链外包服务,有需求的话可以到时候在聚会现场直接找他们聊) 话题讨论:「大神们又在搞事情系列」之 MLIR 是什么,要学么? 技术分享:深度学习中的注意力模型如何应用于漏洞挖掘 话题讨论:TVM Stack 前景如何?现在入还来得及...
转载
699阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之五十一 TargetMachine

TargetMachine及其子类:前文介绍了TargetMachine类,我们这篇文章简单分析下TargetMachine类及其子类。TargetMachine类位于include/llvm/Target/TargetMachine.h文件之中。TargetMachine类作为获取目标机器相关信息的入口,作为目标机器类的父类,并不是直接被具体平台的TargetMachine类所继承的,...
原创
630阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之五十 LLVM 后端文档解析3 —目标描述类

前文理清楚了六大部分、七大环节和七大步骤的对应关系。那么我们接下来要深入的去分析:Target description classes: abstract target description interfaces (代码地址:include/llvm/Target/)。Target description classes的特点主要有以下几点:1、Target description cl...
原创
361阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之四十九 LLVM后端文档解析2

前文讲了七大环节和六大部分之间的对应关系,简单来讲就是七大环节其实对应了六大部分的第四个部分:Target-independent code generation algorithms(代码地址:lib/CodeGen)。我们接下里再看看新建后端的时候,所做的七大步骤,对应的是LLVM后端的六大部分的哪一部分。我们首先对六大部分进行裁剪。后端的六大部分:Target descript...
原创
339阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之四十八 LLVM后端文档解析1

之前在LLVM每日谈之四十七 LLVM后端文档解析中,介绍了后端文档中提到关于后端的六大模块、七大环节和七个步骤。前文也提到过,它们是从不同的维度去解析LLVM的后端,不同维度之间是存在各种各样的交叉关系的。在这里,简单对于三者的关系进行解析。六大模块中第四个模块Target-independent code generation algorithms(代码地址:lib/CodeGen)...
原创
335阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之四十七 LLVM后端文档解析

去年在HelloLLVM杭州站的活动中,我做了一个分享:LLVM后端简介。主要是从LLVM后端的几大环节上展开,简单介绍了LLVM后端。在新的芯片和指令集大火的今天,为LLVM添加一个新的后端,也成了大家比较关注的热点。LLVM官方提供了两个关于后端的官方文档:1、The LLVM Target-Independent Code Generator2、Writing an LLVM...
原创
669阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之四十六 MLIR

在2019 European LLVM developers' meeting上,Tatiana Shpeisman (Google), Chris Lattner (Google)一起做了《MLIR: Multi-Level Intermediate Representation for Compiler Infrastructure》的keynote,对于了解MLIR有很大的帮助。PPT...
原创
2394阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之四十五 LLVM IR TUTORIAL

今年的LLVM欧洲开发者会议上,在Tutorials环节,Vince Bridgers (Intel Corporation), Felipe de Azevedo Piovezan (Intel Corporation)做了名为《LLVM IR Tutorial - Phis, GEPs and other things, oh my!》的报告。这个报告面向没有LLVM IR基础的用户对LLVM...
原创
707阅读
0评论
3点赞
发布博客于 2 年前

LLVM每日谈之四十四 LLVM的别名分析

别名分析是试图决定两个指针是否指向同一块内存的一类技术,这类技术有很多种不同的算法和方法。所以,别名分析也常常被称作是指针分析。别名分析通常会返回是别名、或许是别名和不是别名等几种情况。LLVM别名分析的核心是AliasAnalysis类。这个类提供了用户或者是LLVM系统内部使用别名分析所需要的接口。AliasAnalysis类的代码在llvm/lib/Analysis/目录下有AliasA...
原创
638阅读
0评论
1点赞
发布博客于 2 年前

LLVM每日谈之四十三 LLVM的utility pass

LLVM的pass是LLVM优化的核心,除了我们经常谈到的analysis pass和transform pass,还有一类pass叫做utility pass(以LLVM8.0.0为例)。utility pass这一类pass主要是无法按照analysis pass和transform pass进行分类的pass。因为analysis pass和transform pass的界限很明显,前者...
原创
584阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之四十二 一个添加pass的实例

总会有LLVM的学习者问怎么添加一个pass实例。我之前写过的一个简单的文档,但是间隔时间太久,LLVM更新很大,已经不具有实际的指导作用。这次举一个新提交的patch为例子,可以清晰的看到如何在LLVM之中添加一个pass。rL358607​reviews.llvm.org这个patch为LLVM添加了一个基本的loop融合pass。可以参照这个patch在最新的LLVM之中添加自己...
原创
742阅读
0评论
0点赞
发布博客于 2 年前

LLVM每日谈之四十一 组装一个完整的工具链

写在前面的话:这是一篇LLVM的官方文档,英文文档地址:Assembling a Complete Toolchain之前读文档的时候,陆陆续续的翻译过一些,周末花了点时间把这个文章整理了出来。因为都是随手翻的,翻译完了之后,也不愿意再花时间去斟酌,所以有不少用词都不那么严谨。LLVM的官方文档很详细,有什么需要最好是直接读官方的英文文档。这个自己随便翻译的文档放出来,是希望能给有些不...
翻译
2002阅读
2评论
3点赞
发布博客于 2 年前

LLVM每日谈之四十 一门介绍LLVM的课程

最近看到了UFMG的DCC888课程。在这里分享给大家,有需要的可以自己看看,个人感觉非常不错。DCC888课程,主要是关于程序分析和优化的,其主要的内容如下图所示:本身这门课程的内容,就是编译器相关课程。这门课程在后半部分,有一个关于LLVM的子课程,非常适合入门的学习,其内容主要如下:基本上覆盖了LLVM刚入门会需要用到的几个方面。而且,因为是个小课程,相关的基础介绍以及连...
原创
1180阅读
0评论
5点赞
发布博客于 2 年前

LLVM每日谈之三十九 浅谈LLVM的异常处理(OSDT2018大会分享)

CSDN的ppt和图片上传很困难,放到知乎上了。https://zhuanlan.zhihu.com/p/51915789
原创
614阅读
1评论
0点赞
发布博客于 3 年前

LLVM每日谈之三十八 那些LLVM的博客和专栏

接触LLVM至今,已经6年多了,除了官方文档和邮件列表之外,陆陆续续的也读了一些博客和专栏,非常的不错,帮助很大。在此,将这些博客和专栏整理出来,希望对大家有帮助。1、llvm - 韋任的維基百科最初接触LLVM的时候,没有任何中文资料,唯一能找到的中文资料就是这个维基百科。对我帮助很大,和博主也有过简单的沟通。2、Eli Bendersky's websiteEli Bender...
原创
1672阅读
2评论
1点赞
发布博客于 3 年前

LLVM每日谈之三十七 Brief Intro to LLVM Backend (HelloLLVM杭州站分享PPT)

今天参加了HelloLLVM在杭州的线下聚会,做了一个关于LLVM 后端的分享。旨在给对LLVM感兴趣的同学和刚接触LLVM的同学一点引导,帮助他们快速理清LLVM的后端架构。PPT如下:...
原创
834阅读
1评论
1点赞
发布博客于 3 年前

LLVM每日谈之三十六 LLVM后端的结构

最近在重读《Gettiing Started with LLVM Core Libraries》,后端方面感觉有新的认识。在这个过程中,发现这本书中关于后端结构的几个图非常的好,能说明很多问题,就将这几个图摘录下来,根据自己的理解,简单做个介绍。希望能对初学者有用。                                                               ...
原创
3441阅读
1评论
2点赞
发布博客于 3 年前

LLVM每日谈之三十五 LLVM/Clang 6.0.0编译中遇到的问题

随着LLVM/Clang版本的不断升级,LLVM/Clang也在慢慢的变得庞大起来,这使得编译其源码的时间和空间的需求也在极速扩张。这两天在虚拟机Ubuntu18.04上编译LLVM/Clang 6.0.0的时候就遇到了这样的问题。首先,采用了传统的cmake 、make方式编译,没有添加任何参数。这种情况下,默认编译的是Debug模式,默认编译的目标平台是所有。编译时间长,这个无非是多等一下...
原创
1766阅读
0评论
2点赞
发布博客于 3 年前

LLVM每日谈之三十四 LLVM IR生成和转换的几条指令

本文将罗列几条关于LLVM IR生成和转换的几条指令,并没有技术含量可言,只是让刚接触LLVM IR的同学,有一个检索和参考作用。文中min.c作为输入。min.cint min(int a , int b) { if (a <b ) return a; return b:}1、从源码生成.bcclang min.c -emit-llvm -c -o min.bc2、从源...
原创
3736阅读
3评论
1点赞
发布博客于 3 年前

深入研究Clang(十二) 可以观察Clang前端分析阶段性产物的几个命令

Clang作为整个LLVM框架下关于C、C++和Object-C的前端。其大致环节分为词法分析、预处理、语法分析、语义分析、中间代码生成几个环节。我们在阅读和修改Clang的代码的过程中,需要经常的调试代码,观察改动所带来的各个阶段所发生的改变,这就需要时刻了解各个阶段的输出。要了解各个阶段的输出,目前常用有两种方法:1、最朴实最实用但是效率不一定是最高的办法,那就是打log。这是毋庸置疑的。2、...
原创
1696阅读
0评论
0点赞
发布博客于 3 年前

LLVM每日谈之外篇 HelloLLVM上海活动之行

 昨天(7月1日)参加了HelloLLVM上海的活动,是HelloLLVM组织的第二次线下活动。第一次活动是6月初在北京举行的,我因故没能参加。这次能参加这个活动,还要特别感谢HelloLLVM的创始人吴伟先生。能让我有机会参与到HelloLLVM上海活动之中,并和大家做一个简单的分享。 HelloLLVM上海的活动,选择了上海张江高科地铁站附近的Vπ咖啡馆,场地本身特别适合技...
原创
703阅读
2评论
0点赞
发布博客于 3 年前

LLVM每日谈之外篇 工具链到底能火多久

本篇不同于之前所有的篇章,与技术毫无关系,纯属扯淡。算是反思一下业态。中兴被制裁事件之后,忽然之间,花开一地。大大小小的公司都开始在芯片上发力,实干的、吹牛的、投机的、蹭热点的、套钱的等等,不一而足。真的是什么类型都有,似乎马上这个行业就繁荣起来了,至少是表面上繁荣了起来。给了很多非专业人士莫大的鼓励,似乎有了这个劲头,再有三五年,我们就永远不会像今天的中兴那样面对困局。事实什么样,明白人心里都有...
原创
897阅读
2评论
0点赞
发布博客于 3 年前

LLVM每日谈之三十三 LLVM的DEBUG宏改名了

根据rL332240提交的申请,LLVM的DEBUG宏将更名为LLVM_DEBUG,原因是为了避免其他工程出现问题。在转换期间,DEBUG宏作为别名依然可以使用。这个更改虽然谈不上什么有技术含量的更新,只是一个更名,但是这个更名却对我们日常的使用影响较大。毕竟,debug宏使用的频率还是很高的。具体修改内容见:rL332240...
原创
539阅读
0评论
0点赞
发布博客于 3 年前

LLVM每日谈之三十二 C++ Insights

C++ Insights是一个基于clang的工具,它主要提供代码到代码的转换。它的目标是让屏幕背后发生一些事情变得可见,让我们更好的理解编译器是怎么运作的。列举两个例子,大家就很明白的知道这个工具到底做了什么了。官方例子一:Source:#include <cstdio>#include <vector>int main(){const char arr[10]{2,4,...
原创
776阅读
0评论
0点赞
发布博客于 3 年前

LLVM邮件列表2018年4月内容选辑

缘起:LLVM的邮件列表关注了很久,最闲的时候每篇都读,也回过几篇邮件。忙的时候,可能好几个月不怎么读,积累一大堆未读,只能直接清理了。后来,有人做了llvmweekly,好了很多,每周花点时间看一看,就知道个大概,方便很多。转眼之间,llvmweekly已经做到了200多期,历时4年多了,我从中获益很多。一直在想,除了经常记录点自己学习的感受和零碎的知识点,我还能做点什么?最近忽然有想法,我能不...
原创
513阅读
0评论
0点赞
发布博客于 3 年前

LLVM每日谈之三十一 如何读写LLVM的bitcode

LLVM的IR在整个LLVM工程中占据着核心地位,它是整个LLVM三个阶段的中间环节,起着承上启下的作用。如何读写LLVM的bitcode在LLVM的前端和后端都会涉及这个问题,在基于LLVM做一些定制化开发的时候,对LLVM的bitcode也是重中之重。 LLVM的官方文档在这个方面介绍很详细,但是随着LLVM的扩充,官方文档也越来越厚重,有的时候只是简单的想做某个事,可...
原创
2626阅读
0评论
0点赞
发布博客于 3 年前

深入研究Clang(十一) 使用libclang遍历AST

之前在本系列的第三篇(深入研究Clang(三) libclang)介绍过libclang,内容相对简单,也没有实际的代码举例。其实,在看libclang的时候,我自己动手写了一个小工具:screader,想取名source code reader的意思。 screader放在了github上很长一段时间了,我一直以为这个资源已经在写第三篇(深入研究Clang(三) libclang)...
原创
7091阅读
2评论
4点赞
发布博客于 3 年前

LLVM每日谈之三十 在LLVM中定制Alias分析

Alias分析是一个决定两个指针是否指向同一个对象(alias)的过程。这在变量优化的过程中十分重要。近日,Simon Brand写了一篇博客介绍如何在LLVM中定制Alias分析,这篇博客非常简明,并且附上了示例代码,让人可以很快的掌握如何在LLVM中定制Alias分析。其最终目标,也是为了添加一个可以做定制化Alias分析的PASS。这篇博客的地址为:Custom Alias Analysis...
原创
1013阅读
0评论
0点赞
发布博客于 3 年前

LLVM每日谈之二十九 面向机器学习的编译器——Glow

当地时间五月三日,Glow开发者在LLVM开发者邮件列表中发布了Glow。邮件地址:[llvm-dev] Thank you from the Glow DevelopersGlow的开源地址:pytorch/glowGlow的论文地址:https://arxiv.org/pdf/1805.00907.pdf根据官方的描述,Glow基于LLVM项目进行了开发,所以在邮件列表里对LLVM的开发者表示...
原创
2024阅读
0评论
2点赞
发布博客于 3 年前

LLVM每日谈之二十八 I am leaving llvm

Rafael 于当地时间五月二日宣称离开LLVM社区,在网络引发了广泛的讨论。Rafael 作为LLVM贡献排名第五的资深贡献者,对LLVM社区贡献极大,他一共提交了4,344个节点,占LLVM提交节点总数的2.65%,共提交了157,679行代码。Rafael 离开的根本原因还是社区环境的变化,最终的触发事件是社区与Outreachy的合作。不管怎么说,Rafael 的离开让人觉得惋惜。感谢他一...
原创
828阅读
0评论
0点赞
发布博客于 3 年前

文本分析杂记之二 场景及要点

文本分析的整体大的背景,对于理解文本分析显得至关重要。因为不理解这个大的背景的情况下,过分的聚焦于具体的技术,可能会完全的走偏。尤其是对于我现在这种已经有了具体应用场景的学习者来言,每个层次能做什么,才是最关注的事情。首先谈谈文本分析解决什么问题。(Text Mining 和 Text Analytics在严格的意义上是不一样的。但是在这里探讨的时候,认为是约等的,不特殊说明的情况下不做区分。)文
原创
556阅读
1评论
1点赞
发布博客于 3 年前

文本分析杂记之一 课程资源

最近因为想分析一些文本,打算研究研究文本分析的相关技术,看看到底能分析到什么程度。之前做编译器相关的时候,关注过自然语言分析这块,但是没有太深入。这两年再看,优质的资料真的很多了,而且很多方向也做的很不错了。之前经常在Coursera | Online Courses From Top Universities. Join for Freewww.coursera.org听课,所以第一时间上去找了
原创
599阅读
0评论
0点赞
发布博客于 3 年前

LLVM每日谈之二十七 几个在线编译器资源

几个在线编译器资源:(来源于https://isocpp.org)平时会遇到有点小想法想验证一下,发现手头那台电脑环境不具备,还要折腾一下重新配置,很是烦人。无意间发现了这几个在线的资源,记录下来,留作后用。1、godbolt.org (Clang, GCC, Intel ICC, VC++)2、Wandbox  (Clang, gcc -- includes Boost)3、Online Vis
原创
1309阅读
0评论
2点赞
发布博客于 4 年前

LLVM每日谈之二十六 riscv-llvm

说起riscv-llvm,可能一下子让人摸不到头脑,因为有些人没有关注RISC-V。如果从RISC说起,RISC-V, riscv-llvm都会变得更容易理解。RISC就是经常说的精简指令集,这在之前计算机行业的发展过程中起到的作用,怎么形容都不为过了。真正做过编译器相关和CPU相关工作的人,可能对这些有更深的感触。RISC-V简单点来说,就是一个开源版本的RISC,并且由于设计团队包含了很多之前
原创
2846阅读
1评论
1点赞
发布博客于 4 年前

LLVM每日谈之二十五 Clangd和LSP

1、ClangdClang的Extra Clang Tools中有一个ClangD。按照ClangD的定义,它是对Language Server Protocol的一个具体实现(当然是建立在Clang的基础之上的),目的是为了提供编程语言的一些智能化的特性,比如代码完成、引用查找等,主要面向的终端是C/C++的编辑器。Clangd的官方定义:Clangd is an implementation
原创
5310阅读
0评论
1点赞
发布博客于 4 年前

几个常用的技术类型网站

最近常用的几个技术类网站,列下来备忘,也分享给大家。https://slideslive.com会议视频和PPThttp://llvmweekly.org/LLVM周报https://www.coursera.org/公开课平台https://stackoverflow.com技术问答社区https://github.com开源代码库社区http://www.diffblue.com/AI for
原创
9101阅读
3评论
9点赞
发布博客于 4 年前

C++温故笔记(三)

一、可变数据成员1、我们希望类的数据成员(甚至在const成员函数内)可以修改,这可以将它们声明为mutable来实现。2、可变数据成员永远都不能为const,甚至当它是const对象的成员时也如此。二、static数据成员和static成员函数1、static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联。2、正如类可以定义共享的static
原创
958阅读
1评论
1点赞
发布博客于 4 年前

C++温故笔记(二)

一、多重继承1、多重继承是从多于一个直接基类派生类的能力,多重继承的派生类继承其所有父类的属性。2、在多重继承下,派生类的对象包含每个基类的对象。3、(多重继承)构造函数初始化式只能控制用于初始化基类的值,不能控制基类的构造次序。4、对于多重继承,派生类的指针或引用可以转换为其任意基类的指针或引用。5、当一个类继承于多个基类的时候,那些基类之间没有隐含的关系,不允许使用一个基类的指针访问其他基类的
原创
922阅读
1评论
2点赞
发布博客于 4 年前

C++温故笔记(一)

从学C++到现在也有十个年头了,一直在用,也一直在不断的研究和学习。最近时间比较宽松,就把之前的一些书籍翻了出来,把基础的东西都又略读了一遍,有了不少的收获。这可能就是所谓的理论和实践的不断循环吧。将略读过程中所做的笔记整理出来,主要是总结和备忘,如果能对他人有所帮助,那就善莫大焉了。注:都是一些基础的东西,没有什么高深的,大牛可以跳过。一、模板和泛型1、模板是C++语言与众不同的特性,是标准库的
原创
1384阅读
1评论
4点赞
发布博客于 4 年前

人生的又一次转折——写在离职读博之前

本周是我在现在这个公司最后一周了,本周离职流程走完之后,就算是彻底离开了。从加入这家公司到现在,正好是一年半左右,在即将离开的时候,回顾、总结一下这一年半的所得所失,顺便做一次内心的自省。2016年1月份,从上家外企离职,来到现在这家国企,当时没有犹豫、也没有彷徨,在待遇上有所下降,在职位上有所上升,也算是正常的一次跳槽。就算今天再回头去看,也谈不上对或者不对。毕竟是从之前公司的一个项目经理,到这
原创
5764阅读
9评论
9点赞
发布博客于 4 年前

LLVM每日谈之二十四 Google的ClangMR

ClangMR的论文《Large-Scale Automated Refactoring Using ClangMR》:http://www.hyrumwright.org/papers/icsm2013.pdfClangMR是Goolge的一个工具,严格的说,并不属于Clang家族,是属于基于Clang所构建的一个工具。Google秉承他们一贯的原则,在构建该工具并投入使用之后,将该工具的情况发
原创
1817阅读
0评论
1点赞
发布博客于 4 年前

深入研究Clang(十) Clang Static Analyzer简介

Clang Static Analyzer 官网地址:http://clang-analyzer.llvm.org/Clang Static Analyer是一个源码分析工具,它可以发现C、C++和Objective-C程序中的bug。现在Clang Static Analyer既可以作为一个单独的工具使用,也可以集成在Xcode中使用。作为单独的工具使用的时候,可以通过命令行调用,作为一个代码库
原创
6483阅读
1评论
2点赞
发布博客于 4 年前

LLVM官方文档翻译---- LLVM原子指令与并发指引

英文原文地址:http://llvm.org/docs/Atomics.html译文原文地址:http://blog.csdn.net/wuhui_gdnt/article/details/52485591注:该文章转载已经得到译者授权。---------------------------------------------------------------------------------
转载
1938阅读
0评论
0点赞
发布博客于 4 年前

Devirtualization in LLVM and Clang

Devirtualization in LLVM and ClangThis blog post is part of a series of blog posts from students who were funded by the LLVM Foundation to attend the 2016 LLVM Developers' Meeting in San Jose, CA. Ple
转载
1104阅读
0评论
0点赞
发布博客于 4 年前

LLVM每日谈之二十三 LLVM/Clang编译Linux内核资料

作者:史宁宁(snsn1984)之前有朋友问到这个问题,是否有使用LLVM/Clang编译Linux内核的,随手找了一些相关资料,在这里贴出来,与大家共享。网址:http://llvm.linuxfoundation.org项目简介:LLVMLinux Project OverviewThis project aims to fully build the Linux kernel using C
原创
4862阅读
0评论
3点赞
发布博客于 4 年前

Generate C interface from C++ source code using Clang libtooling

原文地址Generate C interface from C++ source code using Clang libtoolingDec 6, 2016 · 24 minute read · Comments clangllvmCC++I developed a concurrent user-thread library using C++, and was looking for a w
转载
1351阅读
0评论
0点赞
发布博客于 4 年前

Apache Beam初探

Apache BeamApache Beam provides an advanced unified programming model, allowing you to implement batch and streaming data processing jobs that can run on any execution engine.Apache Beam is:UNIFIED -
原创
2406阅读
1评论
3点赞
发布博客于 4 年前

深入研究Clang(九) Clang代码阅读之打log读流程2

继续上一篇,同样的hello.c,同样的执行过程,只不过继续添加了一些log信息,而且对代码进行了更近一步的挖掘。先看输入和输出的log信息(前半部分):shining@shining-VirtualBox:~/llvm-3.9.0/build/bin$ ./clang hello.c -o helloclang/tools/driver/driver.cpp/main()_begin/shin
原创
2889阅读
0评论
2点赞
发布博客于 4 年前

深入研究Clang(八) Clang代码阅读之打log读流程1

#includeint main() {  printf("Hello world!
");}#include "llvm/Support/raw_ostream.h"    llvm::errs() //shining add begin#include "llvm/Support/raw_ostream.h"//shining add end  //shining add begin  ll
原创
2454阅读
0评论
0点赞
发布博客于 5 年前

深入研究Clang(七) Clang Lexer代码阅读笔记之Lexer

作者:史宁宁(snsn1984)源码位置:clang/lib/Lexer.cpp源码网络地址:http://clang.llvm.org/doxygen/Lexer_8cpp_source.htmlLexer.cpp这个文件,是Clang这个前端的词法分析器的主要文件,它的内容是对Lexer这个类的具体实现,原文件的注释中:“This file implements the Lexer and T
原创
4453阅读
9评论
3点赞
发布博客于 5 年前

TensorFlow博客翻译——TensorFlow v0.9发布,带有增强版的移动支持

TensorFlow v0.9 now available with improved mobile supportMonday, June 27, 2016Posted by Pete Warden, Software EngineerWhen we started building TensorFlow, supporting mobile devices was a top priority
翻译
4511阅读
0评论
2点赞
发布博客于 5 年前

TensorFlow学习笔记之五——源码分析之最近算法

A nearest neighbor learning algorithm example using TensorFlow library.This example is using the MNIST database of handwritten digits (http://yann.lecun.com/exdb/mnist/)
原创
16223阅读
4评论
3点赞
发布博客于 5 年前

TensorFlow学习笔记之四——源码分析之基本操作

例子源码地址:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/1%20-%20Introduction/basic_operations.py根据网上的入门例子,一点点的熟悉代码和TensorFlow。对这个基本的例子,做一个注释,备忘之余分享给同样入门的初学者。import tensorflow
原创
10876阅读
0评论
1点赞
发布博客于 5 年前

TensorFlow学习笔记之三——适合入门的一些资源

Github上除了有TensorFlow的源码库之外,还有一些很不错的适合入门的资源。现在将目前已经解除到的资源整理出来,和大家分享。1、TensorFlow源码库https://github.com/tensorflow/tensorflow2、TensorFlow中文文档https://github.com/jikexueyuanwiki/tensorflow-zh3、TensorFlow入门
原创
21311阅读
2评论
5点赞
发布博客于 5 年前

TensorFlow学习笔记之二——安装和运行

通过阅读TensorFlow的论文和相关博文之后,接下来,对TensorFlow进行一个简单的初步运行。1、安装了Ubuntu 16.04.(ubuntu-16.04-desktop-amd64.iso)2、sudo apt-get update3、# Ubuntu/Linux 64-bit     $ sudo apt-get install python-pip python-dev4、# U
原创
13746阅读
5评论
3点赞
发布博客于 5 年前

TensorFlow博客翻译——用TensorFlow在云端进行机器学习

原文地址Machine Learning in the Cloud, with TensorFlowWednesday, March 23, 2016Posted by Slaven Bilac, Software Engineer, Google Research用TensorFlow在云端进行机器学习At Google, researchers collaborate closely with
翻译
8924阅读
0评论
1点赞
发布博客于 5 年前

TensorFlow博客翻译——TensorFlow 0.8发布

TensorFlow0.8发布——目前可以支持分布式计算!Google在一系列的产品中都使用了机器学习。为了继续发展我们的模式,训练过程尽可能的快就显得十分重要。其中的一个办法就是在成百上千台机器上运行TensorFlow,这将把一些模型的训练时间从几周缩短到几个小时,并且能有条件让我们去试验更大和更复杂的模型。甚至当我们把TensorFlow开源之后,对分布式训练的支撑也成为了呼声最高的特征之一
翻译
6368阅读
0评论
2点赞
发布博客于 5 年前

TensorFlow博客翻译——DeepMind转向TensorFlow

DeepMind moves to TensorFlowDeepMind转向TensorFlowFriday, April 29, 2016Posted by Koray Kavukcuoglu, Research Scientist, Google DeepMindAt DeepMind, we conduct state-of-the-art research on a wide range
翻译
6732阅读
0评论
2点赞
发布博客于 5 年前

TensorFlow学习笔记之一——初步印象

最近工作太忙,赶上孩子刚刚出生不久,简直是忙的四脚朝天。对技术的跟踪、论文的阅读和代码的编写,都拉下了一段时间。跟朋友聊天的时候得知TensorFlow,而且是朋友极力推荐的开源项目,马上关注了一下。知道TensorFlow是Google的项目,我就马上去找到了关于TensorFlow的论文。
原创
10947阅读
0评论
5点赞
发布博客于 5 年前

瞎谈“认知计算”

阿尔法狗赢了之后,最近关于人工智能的文章铺天盖地,颇有当年纳米材料的风范,但是其中有多少人是真明白,有多少人是跟风,有多少人纯粹是为了炒作,不得而知。曾经在人工智能方面,我也是下过一段时间的苦功夫,但是因为近两年在这方面钻研不够,所以不敢跟风妄谈,只敢瞎谈,纯属作为对自己在这方面的一些想法的记录,欢迎批评指正,不可作为参照。阿尔法狗这件事情之后,关注人工智能,才发现了“认知计算”这个概念。个人感觉
原创
3884阅读
0评论
2点赞
发布博客于 5 年前

《深入理解LLVM》第一章 LLVM简介

第一章 LLVM简介作者:史宁宁1.1 LLVM是什么LLVM是什么?这是一个虽然基础,但是也曾经让很多新入门的人迷惑的一个问题。从字面上来讲,LLVM(Low Level Virtual Machine)是一个底层虚拟机,LLVM曾经有一部分功能对虚拟机有所帮助。但是现在,LLVM所代表的基本和虚拟机没有关系了,也不在作为一个缩写使用了,而是直接作为一个名字使用。那么LLVM到底是什么? L
原创
27044阅读
0评论
8点赞
发布博客于 6 年前

像外行一样思考,像专家一样实践

----------《像外行一样思考,像专家一样实践----科研成功之道》读后感       第一次看到这个标题,就让我非常的有感触。像外行一样思考,可以给我们完全不同的视野。很多时候,换个角度看问题,问题往往就很容易想到新的解决方法。像专家一样实践,需要在实践的过程中精益求精,才能让我们之前从不同视野得到的新的想法,可以正确的实施。
原创
3382阅读
11评论
5点赞
发布博客于 6 年前

从今天起,写一本关于LLVM的书----《深入理解LLVM》

一直想写一本关于深入学习LLVM的书,这个想法有了很久了,但是一直没有机会动手。现在虽然很忙,但是依然觉的有必要马上动手去做这个事情。任何事情都是一点一点积累起来的,如果一直不动手,什么都做不成。还有句话:活在当下。抓紧时间去做想做的事情,才不会给自己的人生留遗憾。       现在关于LLVM的书,只见过一本英文的《Getting Started with LLVM Core Libraries
原创
10989阅读
26评论
10点赞
发布博客于 6 年前

我的2008

从2006年开始有写年终总结的习惯了。不知道是不是因为受工作的影响。可能是那时候觉的给领导汇报的那份太正式吧,所以有了个非正式的总结。 盘点2008: 第二次参加研究生入学考试,并顺利通过,未能如愿以偿,但是结果基本满意。 20多年第一次在家里安省的呆了半年左右的时间,不可避免的整出了个小啤酒肚,但是现在已经没有了。 顺利实现从无业游民到学生的转变,不禁感慨当学生真好。同时感慨没有人发钱的日子真不
原创
2024阅读
3评论
0点赞
发布博客于 6 年前

我的2014

2014年已经过去快一个月了,我才开始提笔盘点我的2014。不得不说,和前些年还有些不同的,前些年是从12月份就早早的开始盘点这一年,甚至从11月份就开始总结这一年的收货如何,这次却晚了很多。这个不同里面其实包含着对时间的态度,以前总觉的时间过的慢,希望新的一年早早到来,现在却是无论好与坏,都希望时间能流走的慢一些,好让自己多做一些该做的事情。年终总结也是写了很多年了,在CSDN上是从09年开始总
原创
4256阅读
12评论
3点赞
发布博客于 6 年前

深入研究Clang(六) Clang Lexer代码阅读笔记之Preprocesser

clang/include/clang/Lex/Preprocesser.h这个文件是包含clang::Preprocesser类的定义的头文件。它是类C语言(C、C++、Object C)的预处理的头文件。也就是说,类C语言的预处理都会用到此处的代码。00082 /// \brief Context in which macro name is used.00083 enum MacroUse
原创
4531阅读
0评论
4点赞
发布博客于 7 年前

LLVM每日谈之二十二 llvm-config工具的使用

作者:史宁宁(snsn1984)llvm-config作为LLVM的一个工具,是非常有用的,官方文档(http://llvm.org/docs/CommandGuide/llvm-config.html)关于它的介绍如下:llvm-config makes it easier to build applications that use LLVM. It can print the compile
原创
10006阅读
2评论
2点赞
发布博客于 7 年前

深入研究Clang(五) Clang Lexer代码阅读笔记之Lexer

作者:史宁宁(snsn1984)Clang的Lexer(词法分析器)的源码的主要位置如下:clang/lib/Lex    这里是主要的Lexer的代码;clang/include/clang/Lex   这里是Lexer的头文件代码的位置;同时,Lexer还使用了clangBasic库,所以要分析Lexer的代码,clangBasic(clang/lib/Basic)的一些代码也会用到。首先从L
原创
6447阅读
4评论
3点赞
发布博客于 7 年前

LLVM每日谈之二十一 一些关于编译器和LLVM/Clang的代码

作者:史宁宁(snsn1984)自己收集了一些LLVM/Clang的代码,并且自己也在一点一点的写一些LLVM/Clang以及编译器的代码,在这里把这些代码库分享出来,欢迎大家交流探讨。1.crangehttps://github.com/shining1984/crange这是一个python写的调用libclang去定位和交叉检索C/C++源码的工具。这个工具不是我写的,我给fork过来了,方
原创
4400阅读
0评论
3点赞
发布博客于 7 年前

深入研究Clang(四) Clang编译器的简单分析

首先我们确定下Clang编译器的具体内容和涵盖范围。之前在《LLVM每日谈之二十 Everything && Clang driver 》中曾经提到过,Clang driver(命令行表示是clang)和Clang前端(按照具体实现来说就是Clang的那些库所实现的前端)是不同的,同时还存在一个Clang编译器(命令行表示是clang -cc1)。Clang编译器不仅仅包含了Clan
原创
21933阅读
14评论
6点赞
发布博客于 7 年前

LLVM每日谈之二十 Everything && Clang driver

作者:史宁宁(snsn1984)最近在读,这是读的第一本LLVM的书,很多地方虽然讲的是自己知道的东西,但是也给人耳目一新的感觉,让人感觉之前有些不确定的东西,或者没有联系起来的知识点一下子贯通了,那感觉非常酸爽。1.先谈谈题目里的Everything。LLVM每日谈之十六中,曾经提到过:Everything is a value.主要讲的是重要的LLVM IR的C++类都是Value的子类,同时
原创
4434阅读
0评论
3点赞
发布博客于 7 年前

LLVM每日谈之十九 LLVM的第一本系统的书<Getting Started with LLVM Core Libraries>

作者:史宁宁(snsn1984)LLVM终于有了一本系统的书了——《Getting Started with LLVM Core Libraries》。这本书号称是LLVM的第一本书,但是据说日本早就有两本日文的关于LLVM的书,这个了解的不多。不过可以肯定的是,这本书是英文表述的第一本书。这本书的覆盖范围很广,从简单的如何安装LLVM一直到各个部分的介绍,以及如何使用这些部分去创建自己的工具,都
原创
7414阅读
0评论
1点赞
发布博客于 7 年前

程序员的武林世界

在武林中,我们常常流传着关于高手的传奇故事。手中无剑,心中也无剑,是无数剑客们追求的境界。因为虽然手中无剑,心中也无剑,但是落花飞叶皆为剑,剑剑杀招,可取敌人首级。但是这样的高手毕竟是非常稀缺的。多数的人都奋斗在手中有剑,心中无剑的层次,另外有少数人能爬到了手中无剑,心中有剑的地步。那么对程序员来说,什么样的人才是手中无剑,心中也无剑的人高手呢?让我们先从底层的手中有剑心中无剑说起。手中有剑,心中
原创
3497阅读
1评论
0点赞
发布博客于 7 年前

关于Java的一点感悟---底层开发者的上层学习感悟

这些年主要一直是搞C、C++,偏底层一些,一直想多了解一下上层的东西。于是利用业余时间,看了些Java方面的东西,也利用一些架构搭建了一些简单的程序,在此想简单的谈谈自己的一点感悟。1.Java真的是非常方便。对于做惯了底层的我,依靠文档在文本编辑器中写程序,已经成为了习惯。一下子转换到Java这种集成环境中,感觉简直是方便太多了。连文档都用不上了,光自动提示的信息就够解决普通问题了。写起来代码,
原创
6462阅读
3评论
1点赞
发布博客于 7 年前

吐槽一下Activiti的用户手册和一本书

业余没事的时候,看了点Java的资料,无意之中发现了Activiti,就打算自己跑几个例子看看到底是怎么回事。一直搞底层,也得偶尔关心下上层到底发展到什么程度了不是。悲惨的过程就是这么开始的,首先是Activiti的用户手册,第一次见到这么混乱的用户手册,完全打破了“Hello World”的过程。一上来你还没看到Activiti到底是什么东西的时候,就各种配置各种代码往上贴,好像生怕吓不走你一样
原创
8974阅读
10评论
3点赞
发布博客于 7 年前

回归

将近两个月的西藏之行结束了,总该说点什么,但是又不知道怎么说,就只好唠叨唠叨了。此行计划三个月,打算纯徒川藏线,实际的执行结果是纯徒了三分之一,海拔四千以上的山爬了一半(7座),然后就把韧带给拉伤了,至今仍然没有恢复。后续的路程就改为徒搭。整个人的状态也从向往激动,激情,平淡,坚持,懊恼,淡然,一点一点走过来。到了最后,可以很平淡的去看待这次出行。记得之前有一篇文章写的特别好,给我印象特别深刻。文
原创
1937阅读
5评论
2点赞
发布博客于 7 年前

程序员也应该有梦想

上周跟公司提了离职,给公司的理由是:累了,想休息一下,调整一下。其实这是表面的理由,深层次的理由是,一直还有一个梦想没有实现,那就是徒步川藏线。自从知道了川藏线上的风景,就一直惦记着去走一圈,11年自己一个人在电影院看《转山》,给自己看的稀里哗啦的,或许我本来就是个感性的人,那时候打算12年7月份去走这条线。各种原因一直拖到现在,总是是找到个机会去实现这个梦想了,最难的在于耐心的说服自己的家人,让
原创
6404阅读
30评论
29点赞
发布博客于 7 年前

浅谈新一代Android操作系统Android L

今天早一些的时候,Google发布了新一代Android操作系统Android L。让我非常意外的是命名规则的变化,之前外界纷纷猜测会叫Android5.0,同时会给一个甜品的名字命名。因为Android操作系统发布了这么多的正式版本,一直是用甜品来命名的,现在直接用了一个L,和以往风格大大不同,让人不太理解。不过好在L非常好记,也非常容易上口。看了一下官方宣称的Android L的新特性,主要有
原创
3171阅读
0评论
1点赞
发布博客于 7 年前

请不要轻易的说:我不会

关于这个想法,在脑子里盘旋好久了,今天把它抓出来,跟大家分享一下。从学计算机到现在,十几年了,遇到过很多人,同学、朋友、师弟师妹、同事、下属,其中不少人有这样的问题,当自己接到任务的时候,迫不及待的说:“我不会。”甚至有的时候,把这句话说的理所当然,理直气壮。“我不会”这句话,其实是描述一个状态,说明要完成的任务或者要做的东西,没有做过,也不知道该怎么去做。本身是一句中性的词,没有什么褒贬,今天这
原创
3284阅读
13评论
6点赞
发布博客于 7 年前

LLVM WEEKLY系列停止转载

不再每周转载LLVM WEEKLY,感兴趣的可以去官网: http://llvmweekly.org/
原创
2416阅读
2评论
1点赞
发布博客于 7 年前