From Sharp to Erlang
[Erlang 0129] Erlang 杂记 VI
摘要:把之前阅读资料的时候记下的东西,整理了一下.Adding special-purpose processor support to the Erlang VMP23简单介绍了Erlang Compiler和Beam文件格式;The Erlang Compiler in short 章节提到了 Cor...
阅读全文
[Erlang 0128] Term sharing in Erlang/OTP 下篇
摘要:继续昨天的话题,昨天提到io:format对数据共享的间接影响,如果是下面两种情况恐怕更容易成为"坑", 呃,恰好我都遇到过; 如果是测试代码是下面这样,得到的结果会是怎样?猜!s2()-> L=[1,2,3,4,5,6], L2=[L,L,L,L],erlang:display( {{ert...
阅读全文
[Erlang 0127] Term sharing in Erlang/OTP 上篇
摘要:之前,在 [Erlang 0126] 我们读过的Erlang论文提到过下面这篇论文:On Preserving Term Sharing in the Erlang Virtual Machine地址:http://user.it.uu.se/~kostis/Papers/erlang12_shar...
阅读全文
Elixir 1.0 Release
摘要:Erlang的强大,Ruby的语法,Elixr 1.0 bigger than bigger,要不要试一下?
阅读全文
[Erlang 0126] 我们读过的Erlang论文
摘要:我在Erlang Resources 豆瓣小站上发起了一个征集活动 [链接] ,"[征集] 我们读过的Erlang论文",希望大家来参加.发起这样一个活动的目的是因为Erlang相关的出版物很少,很多时候都是从学术论文中寻找答案,而发现合适的论文是第一步,这个活动就是为了解决这个问题.
在一个极小的知识点可能都会有一篇精彩的论文为你条分缕析,抽丝剥茧,甚至可以拼凑起来一个完整的Erlang知识系统,我们开始吧...
阅读全文
[Erlang 0125] Know a little Erlang opcode
摘要:Erlang源代码编译为beam文件,代码要经过一系列的过程(见下面的简图),Core Erlang之前已经简单介绍过了Core Erlang,代码转换为Core Erlang,就容易拨开一些语法糖的真面目了.下一阶段就是将Core Erlang转换为opcode,使用c(m,'S')生成的是.S文件可以看到反编译的代码.编译器最终输出的是Virtual Beam Code 但这还不是最终VM执行的代码,在erts\emulator\beam\beam_load.c执行的过程中会完成指令优化,优化之后的代码可以通过erts_debug:df(m)生成.dis文件查看,换句话说,这个方法执行成功必须要要求模块已经加载.
阅读全文
[Erlang 0124] Erlang Unicode 两三事 - 补遗
摘要:最近看了Erlang User Conference 2013上patrik分享的BRING UNICODE TO ERLANG!视频,这个分享很好的梳理了Erlang Unicode相关的问题,基本上把 Using Unicode in Erlang 讲解了一遍.再次学习了一下,整理成文字,补充一些 [Erlang 0062] Erlang Unicode 两三事 遗漏掉的内容.
阅读全文
[Erlang 0123] Erlang EPMD
摘要:epmd进程和Erlang节点进程如影随形,在Rabbitmq集群,Ejabberd集群,Couchbase集群产品文档中都会有相当多的内容讲epmd,epmd是什么呢?
epmd 是Erlang Port Mapper Daemon的缩写,全称足够明确表达它的功能了(相比之下,OTP就是一个难以从字面理解的名字);epmd完成Erlang节点和IP,端口的映射关系,比如在我的测试机上,
阅读全文
[Erlang 0122] Erlang Resources 2014年1月~6月资讯合集
摘要:项目太忙,很多事情一直没有抽出时间做,最近稍微轻松点,调整一下再次开始,就从Erlang Resources小站的上半年盘点开始吧.
阅读全文
[Erlang 0120] Know a little Core Erlang
摘要:Core Erlang 是Erlang的一种中间表现形式,Erlang在语法层面一直在演变,越发复杂,一些代码分析工具或者调试工具解读代码就不方便了.Core Erlang就是因此而生,它尽可能的保持语法简单,稳定以方便工具解析,同时具备代码可读性以方便手工修改代码.十段代码,不同角度,不同收获!
阅读全文
[Erlang 0119] Erlang OTP 源码阅读指引
摘要:上周Erlang讨论群里面提到lists的++实现,争论大多基于猜测,其实打开代码看一下就都明了.贴出代码截图后有同学问这代码是哪里找的?
"代码去哪里找?",关于Erlang源码阅读的路线图江湖上只有一份残卷了.我觉得"代码在哪儿?"这类问题是信息不对称造成的,本身难度不大,就像里面的情节:贾马尔知道市井生活中的零零碎碎却说不出国徽上的文字,我们就从电影中的这一幕开始本文的探索吧
阅读全文
[Erlang 0118] Erlang 杂记 V
摘要:我在知乎回答问题不多,这个问题: "对你职业生涯帮助最大的习惯是什么?它是如何帮助你的?",我还是主动回答了一下.
做笔记
一开始笔记软件做的不好的时候就发邮件给自己,然后不断的回顾更新笔记;
后来用OneNote,由于这玩意当时不是云同步的,硬盘坏掉的时候丢了一些数据,打击还是挺大,好多事情要从头开始
再后来用过一段时间Google Wave,还以和朋友分享讨论笔记,结果,你们知道关闭服务了,费力导出来
现在转战Evernote和思维导图Conceptdraw
记忆是靠不住的,会自然淘汰长时间不用的数据,一旦需要重新加载,如果从0开始那成本就太高了,而笔记和思维导图是自己思考方式的组织的,可以快速加载;
阅读全文
[Erlang 0117] 当我们谈论Erlang Maps时,我们谈论什么 Part 2
摘要:继续昨天的话题,在Erlang Factory SF Bay Area 2013有一个议题:"Where are we on the Map?" [PDF ],这个Talk基本上就是选取了EEP43的要点,有兴趣的同学可以FQ观看视频 Where are We on the Map? - Kenneth Lundin - YouTube 如果是腿脚不利索的,可以看墙内的.仔细阅读EEP43,其信息量巨大,包括Maps的设计演变来龙去脉,各种取舍,也是我们学习设计的极佳范例.下面我将按照自己的逻辑顺序重新解读EEP43,先从如何使用开始,直观上感受一下区别,然后再回答"何必有我"的问题.
阅读全文
[Erlang 0116] 当我们谈论Erlang Maps时,我们谈论什么 Part 1
摘要:Erlang 增加 Maps数据类型并不是很突然,因为这个提议已经进行了2~3年之久,只不过Joe Armstrong老爷子最近一篇文章Big changes to Erlang掀起不小了风浪.这篇文章用了比较夸张的说法:"Records are dead - long live maps !",紧接着在国内国外社区这句话就传遍了.马上就有开发者忧心忡忡的在Stackoverflow上提问:Will Erlang R17 still have records?
套用一句文艺的话,当我们谈论Maps时,实际上是表达我们对record的不满,这些不满/痛点恰好就是我们寄希望于Maps能够提供给我们的.本文将尽可能的逐一列出这些点,并尝试分析原因,下篇文章将深入分析Maps的一些细节.
阅读全文
致鸡鸣狗盗
摘要:最近有朋友反映我写的Erlang文章被改头换面发布到某网站,改头换面的意思是换个标题,增加几个换行什么的,比如我的标题是Erlang杂记,他给改成"76个值得你注意的erlang编程习惯",我能猜到这是出于SEO的考虑;而你这样改完全曲解了我的意思,估计你连正文都没有好好看吧,所有标记Erlang杂记的文章都是我记录的零碎技巧和心得,和编程习惯什么的没有半毛钱关系;网络转载的基本底线是保留内容的原始链接,为什么?因为内容还有可能更新,补充或修订,而你这种行为更为恶劣,让回溯到源头难度都大大增加,请停止这种上不了台面的行为;
阅读全文
[Erlang 0115] 2014值得期待的Erlang两本新书
摘要:2014年Erlang方面有两本让我非常期待的书要出版.一本探究底层机制,一本分享实战经验,满怀期待.
阅读全文
[Erlang 0114] Erlang Resources 小站 2013年7月~12月资讯合集
摘要:按照惯例, Erlang Resources 小站半年盘点一次,这里是2013年7月~12月资讯合集.喜欢Erlang,Elixir,Clojure,Lisp的同学强力关注啊
阅读全文
Elixir - Hey, two great tastes that go great together!
摘要:I found this the other day. Erlang’s Actor Model gives it the distinction of being the only language that claims not to support object-orientation while actually providing full support for it. Languages that claim to support object-orientation but don’t, are far more common.
阅读全文
[Erlang 0113] Elixir 编译流程梳理
摘要:之前简单演示过如何从elixir ex代码生成并运行Erlang代码,下面仔细梳理一遍elixir文件的编译过程,书接上文,从elixir的代码切入,这一次我们主要关注编译流程,一些细节暂时不展开.
阅读全文
|
|