
ruby
woshiyilitongdouzi
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ruby049源码分析_string.c05.txt
ruby049源码分析_string.c05.txt今天有个头痛的玩意。matz实现了类似shell的tr命令。如echo "1234" | tr '12' 'ab'结果为:"ab34"但matZ先来一个结构体。struct tr { int last, max; char *p, *pend;} trsrc, trrepl;这什么玩意儿呀。我有些读不下去了。现在想来,还是年轻时脑袋灵活些。也许,我想,应该在大学中,当学生学完C,和数据结构这两门课程后,就应该鼓励他们读源...原创 2020-10-15 10:18:08 · 208 阅读 · 0 评论 -
ruby049源码分析_string.c文件
ruby049源码分析_string.c文件昨天写了array.c的文件中各函数的解读,下班后,在床上就进行回顾。发现真正写一遍后,自己思维更清楚了。就是说,象一本书《59秒》所言,倾说无益,书写才有效果。把知识点自己写下来,自己理解得更深入了。所以今天接着来分析string.c文件,因为字符串我使用得也较多,算是稍微熟悉一些。一、初始化函数先看结构体struct RString { struct RBasic basic; UINT len; char *ptr;...原创 2020-10-14 08:49:38 · 211 阅读 · 0 评论 -
浅谈如何阅读开源软件的源码----谈谈我读ruby049源码的体会
浅谈如何阅读开源软件的源码----谈谈我读ruby049源码的体会很长一段时间没有读源码,也没有更新csdn,但所幸的是,还是在断断续续的读。有时在网上找资料,发现,很少。有时,找来找去,还是只看到自己写的那些博客。而自己写的博客内容是很浅薄的。于是,心想,或许我来补充完整吧。网上读源码的人少,我来当第一人,把大家都带动起来。今天重点谈谈自己的一些思路。第一、用成长型思维读源码。前段时间看书,发现思维模式很重要,有人用成长型思维看问题,有人用固定型思维看问题。而读源码时,个人体会是,第一眼看到从官网上原创 2020-10-13 04:02:48 · 1386 阅读 · 1 评论 -
《数据结构》线性表伪码变代码
《数据结构》线性表伪码变代码前几天读ruby049中,array.c时,发现和数据结构课本上的实现很像。于是今天就把严教授课本上的伪码输入到计算机中,进行了调试。代码如下:#define LIST_INIT_SIZE 100#define LISTINCE 10#include<stdio.h>#include<stdlib.h>typedef int El...原创 2020-03-24 11:32:08 · 441 阅读 · 0 评论 -
分享我修改后的一些源码
分享我修改后的一些源码我有时觉得现在的时代真好。有电脑可以用,有书可以读。而且有那么多的开源代码可以供自己研究。我想,或许,这就是我们真正的天堂了。我原来学习时,偏重于读书,很少写代码,导致自己水平一直不高,现在我改变思路,以读源码为主,以写代码为辅助,再辅以之读书,感觉水平在慢慢上升。因此,我把自己觉得好的代码,就上传上去,让后来的人有一些帮助。因为有的人,可能没想过读源码,因为在win1...原创 2020-03-23 08:37:01 · 457 阅读 · 0 评论 -
如何在大脑中模拟代码运行
如何在大脑中模拟代码运行昨天,终于在笔记本上安装好了ubuntu,这次没有使用虚拟机。这样,可以在ubuntu中使用图形界面相关功能了。在win10下通过wsl使用ubuntu,不能使用图形界面,感觉功能很受限。心里一想起这事,就觉得很兴奋。但睡在床上,不想起床,于是就把自己读过的代码在大脑中进行回忆。我比较喜欢的是oz写的grep程序,因为有一本书《精通正则表达式》,这本书,讲得很透,我...原创 2020-03-23 07:53:31 · 642 阅读 · 0 评论 -
ruby.c源码分析
ruby.c源码分析代码编译不了,但生活还是要继续的。我今天就读ruby.c。我快速的浏览了一下文件。因为我执行时./ruby -vhelloworld01[hello] ruby - version 0.49 (18 Jul 94)yang@DESKTOP-V9HS3B6:~/ruby049/ruby$也就是说,-v参数是可以执行的。于是我去找了,并进行了修改。static ch...原创 2020-03-21 17:02:07 · 361 阅读 · 0 评论 -
读代码时,写测试代码验证自己的想法
读代码时,写测试代码验证自己的想法这两天为了编译ruby0.49,可是费尽了心思。后来,发现,为了再现编译中的错误,最好是自己写测试代码。一。gdbm调试因为ruby049中有一个文件dbm.c,为了编译它,需要安装gdbm。从来没有用过dbm。于是在网上学安装,并在网上找文件,再进行编译,等本地小程序编译后,再修改Makefile,dbm.c#include <unistd.h&...原创 2020-03-21 16:47:53 · 202 阅读 · 0 评论 -
ruby0.49编译
ruby0.49编译从前天开始,又开始编译ruby0.49,过程痛苦得不想说了。先是,dbm.c的编译。 老是出现找不到lgdbm-compat。我后来,干脆先写测试程序,在网上抄一个。再进行编译。还是报错。于是在网上找资料。于是重新安装gdbm。各种折腾。后来,发现编译时,我把下划线写成了减号。应该这样写 gcc t1.c -lgdbm -lgdbm_compat但安装时,可以这样...原创 2020-03-21 16:33:14 · 164 阅读 · 0 评论 -
ruby0.49编译问题
ruby0.49编译问题编译时,报了许多错,先解决其中之一。array.c: In function ‘ary_new2’:ruby.h:119:38: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]#define NEWOBJ(obj,type) type *obj = (t...原创 2020-03-19 21:01:39 · 215 阅读 · 0 评论 -
ruby0.49 array.c源码阅读
ruby0.49 array.c源码阅读我想,应该叫源码阅读,自己随心所欲的读。就像读小说一样。因为我比较喜欢ruby语言,读新版本的,代码量太大,不划算。为此,找了最早版本的。代码量少些。读array.c源码,今天基本上把代码过完了,而且基本都理解了。数组中,好像有三个重要的要素arr->len 存储数组中实际的元素个数,下标从0开始。arr->capa 存储数组中,目前分...原创 2020-03-19 20:27:29 · 145 阅读 · 0 评论 -
谈谈我读源码的心得
谈谈我读源码的心得为了搜索他人对gnugawk源码的分析成果,在百度上搜索,发现除了我写的一些东西,其它人没有写。于是,就重新操起了笔,自己接着写。我很久没上csdn,密码忘记了,上次登陆没进去。这次居然一次性还记起来了。首先,我想,还是读老版本的代码,性价比高。因为老版本的代码,解决了最核心的问题,从0到1,这是最根本的。但一个问题,老版本的代码编译不了,因为操作系统,编译器都不同了。于是...原创 2020-03-08 11:31:25 · 294 阅读 · 0 评论 -
ruby049源码分析 string.c
ruby049源码分析 string.c看代码,终于知道了字符串的一些方法是如何实现的了。比如"abc".length直接返回长度。因为字串类中存储了长度,所以直接返回即可。如果a="abc"a[-1]为'c'那是如何实现的呢?当下标为负数时,用下标加上字串长度。如a[-1+3]=a[2]即为'c'了。神奇吧。通过读string.c,发现作者对字符串的处理相当熟练。明白了自己...原创 2019-02-24 10:35:51 · 157 阅读 · 0 评论 -
ruby0.49重新编译
ruby0.49重新编译今天早上读ruby049代码时,感觉想修改下代码,再验证自己的理解对不对。可惜编译不了。于是把本地ruby代码打包tar -zcvf ruby.tar ./ruby再把文件复制出来。进入另一个linux系统,建立文件夹,把修改过的ruby文件复制过来。tar -zxvf ruby.tar再cd rubysudo ./configure再sudo make...原创 2019-02-24 09:39:26 · 186 阅读 · 0 评论 -
ruby0.49源码分析 string.c
ruby0.49源码分析 string.c昨天睡觉较早,今天就早些起来。喝点水,就开始读代码。matz对字符串的操作真是很熟练。因为对ruby中字符串操作较熟练,所以就从这个开始看。基本能看懂,但不明白RString的定义。struct RString { struct RBasic basic; UNIT len; char *ptr; struct RSt...原创 2019-02-24 07:05:10 · 118 阅读 · 0 评论 -
ruby0.49源码分析2
ruby0.49源码分析2周末重新打造读程序的环境。在卧室里布置了两台电脑,每台笔记本加个显示器。一台专门用于读代码。另一台,专门用于写测试程序,并把上网功能去掉。最大限度的保持专注。因为ruby中定义了数据结构,把数据结构的定义抄下来,然后贴在墙面上,就象警察破案一下,准备一个大的工作板。发现证据就贴上去。因为在电脑中,桌面太小,还是没有墙面大。如果能有墙面大,就能显示几个文件。发现r...原创 2019-02-23 16:08:30 · 147 阅读 · 0 评论 -
ruby0.49源码分析……array.c
ruby0.49源码分析……array.c今天读ruby0.49,感觉读代码的速度越来越快了。大脑好象开窍了。先读Makefile,根据基编译顺序,从下向上读。在array.c的上面定义了若干函数,在末尾把函数进行注册。文件末尾 有Init_String()函数用rb_define_method()函数把定义的函数当成C_String的方法。具体过程不了解。便大致的使用知道了。于是接...原创 2019-02-23 11:37:12 · 209 阅读 · 1 评论 -
ruby049 array.c源码分析
ruby049 array.c源码分析我今天发现[]= << 在代码实现上都调用了aset这个函数。但为何只有<<才能自动增长数组呢?也许是我使用的是高版本的ruby,这个ruby049与之不同呢?可是,我把编译后的ruby049一执行,就报错:yang@LAPTOP-H8I0P027:~/work/ruby049/ruby$ ./rubyputs("ok")S...原创 2019-10-06 20:46:10 · 197 阅读 · 0 评论 -
ruby0.49源码分析……与gawk很类似
ruby0.49源码分析……与gawk很类似今天睡了懒觉,在床上回忆gawk源码,在大脑中读源码,感觉很有意思,就象有人讲的,跟着书旅游或者是卧以游之,很爽。心想,我大概要读读shell的源码。但linux内核不懂,估计遇到系统调用,就无解了,因此,还是看看ruby源码吧。毕竟上次都编译成功了。于是起床,就看ruby0.49的源码。先打开Makefile,如何着手,先看Array如何实现的...原创 2019-02-23 09:06:19 · 191 阅读 · 0 评论 -
rubygem minitest1.3.0源码阅读
rubygem minitest1.3.0源码阅读很久没上网了。上网容易浪费时间,我控制不了,于是不上网。前段时间,对python感兴趣了,读了下入门书,然后读howdoi.py的源码,发现根本看不懂。心想,我对ruby较熟悉,还是读rubygem相关的源码吧。前段,读了matz关于streem新语言的书,对ruby0.49的编译过程有了些了解。作者是先自己写lex进行词法分析,再用biso...原创 2019-08-30 17:12:23 · 230 阅读 · 0 评论 -
读代码有感想……象读小说一样读代码
读代码有感想____很久没有写博客了。今天吃完早餐,早餐有猪脚吃,吃了丰富的早餐,正在消化之时,心想,写写博客吧。最近还是在陆陆续续的读代码,我发现一个秘密,就是象读小说一样读代码,先把代码通读,然后再选择感兴趣的点,慢慢看。而且看不懂,也没什么,就象读小说,有些小说,你看不明白,那还能怎么样,换一本小说,再读。或者,等有机会再重读。而且读小说时,你也不会向人吹,说自己看了多少本小说,读小说,...原创 2019-10-05 08:53:14 · 194 阅读 · 0 评论 -
Ruby书籍好少呀
Ruby书籍好少呀不知是什么原因,也许是读了《程序员的呐喊》之故,我对ruby很有兴趣,但现在几乎没有ruby书籍,铺天盖地,都是python的书籍。我把ruby的中文书籍几乎都买了。有段时间,想搞人工智能,甚至把python的书籍也买了若干。但感觉,要学就把一种语言学精。于是,还是把心思用在学ruby上。因为感觉ruby的写法和gawk的差不多。于是,读ruby0.49的源码,可惜,没有如何...原创 2019-10-05 09:08:45 · 355 阅读 · 0 评论 -
ruby gem algorithms使用
ruby gem algorithms使用昨天在网上找ruby中栈的使用,我以为在标准库中有stack的实现,结果没有。在https://ruby-china.org/topics/18985 上找到一文章,介绍了algorithms, 于是安装,sudo gem install algorithms可惜不会使用,于是从https://rubygems.org/search?utf8=%E...原创 2019-10-05 09:56:55 · 190 阅读 · 1 评论 -
ruby049源码分析————array.c
ruby049源码分析————array.c今天在网上都浪费最几个小时,在购物网站上看,一晃几个小时就过去了,真是浪费了时间。astore(ary,idx,val)实现的功能是:ary[idx]=val,并且若idx超过数组长度,就自动扩大。而Fary_push(ary,item)和Fary_append(ary,item)实现的功能是一样的。比如a=[]a.push(3)a &...原创 2019-10-05 17:12:41 · 364 阅读 · 0 评论 -
用ruby写了8皇后的问题
用ruby写了8皇后的问题dell win10笔记本使用,17年购的三星本子,不能使用五笔,我下载了一个五笔,但在IE中却使用不了。今天,买了dell的win10机器,发现可以使用五笔了。真是幸福呀。因为要读源码,所以就学习慢慢使用ruby,为此,进行一些小程序用ruby来开发。今天用ruby来实现8皇后问题,就是把8个皇后摆在棋盘上,要求每行、、每列、、斜线不能放两个皇后。我的想法是,用一...原创 2019-10-06 20:12:22 · 143 阅读 · 0 评论 -
ruby gem algorithms 源码分析环境准备
ruby gem algorithms 源码分析环境准备在网上看到有人推荐这个gem,因为对数据结构很感兴趣,所以开始读这个。感觉比起ruby049来,要轻松许多。重新安装了ubuntu18,然后安装rubysudo apt-get install ruby-devsudo apt-get install gccsudo apt-get install makesudo gem ins...原创 2019-10-07 10:50:15 · 112 阅读 · 0 评论 -
ruby gem algorithms0.0.1源码阅读
ruby gem algorithms0.0.1源码阅读今天把自己昨天读源码的情况进行简单总结,也算是对昨天所做事情的总结。我象着了魔一样,拼命想把ruby0.49编译成功,于是昨天又重新下载了一个ubuntu,因为在win10 uwp上重新下载一个ubuntu真的非常简单,我再把源换成国内源sudo apt-get updatesudo apt-get upgradesudo apt-...原创 2019-10-09 08:27:00 · 111 阅读 · 0 评论 -
ruby gem camping源码解读
ruby gem camping源码解读今天先占个位置,具体的分析以后来细说。我原来一直想,如何找到一些gem的源码来细读,因为ruby本身开源,相信这些框架应该也是有源码的。今天果然找到了。先进入网站https://rubygems.org在这个网站中搜索自己要读的源码,我为了读_why先生的camping,下载了如下几个因为_why先生太有名气了,不读他的代码,感觉会让自己后悔。我下的最早版本...原创 2018-06-21 14:21:47 · 254 阅读 · 0 评论 -
好好享受生活……ruby0.49阅读有感
好好享受生活……ruby0.49阅读有感昨天忽然上网网到取猝死相关的信息,忽然感觉自己原来的坚持是对的。我现在想,我们要学会适应现代的生活,要学会高质量的生活。我有一些高质量生活的方法,比如:1.每天晚上9:00睡觉2.冬天每天在脚边放热水袋,所谓的“烫婆子"3.写代码时,注意姿势,可以站立式办公,站累了就坐4.买好的显示器,机械键盘5.冬天买个电热取暖器6.写代码累了,就弹电子琴...原创 2019-01-06 09:21:26 · 226 阅读 · 0 评论 -
登天的感觉…… 重新编译ruby0.49
登天的感觉…… 重新编译ruby0.49 看了一段时间的coreutils4.5.1,又想把ruby0.49编译一下,因为这个代码量少些。以前弄过,今天重新开始。1.解压文件2../configure 生成makefile文件3.sudo make发现报了大量的错4.先是可变参数写法,再是dbm问题,采取修改makefile文件的方法,后来,又是rcypt编译不对,再加编译参数,有些是i...原创 2019-01-05 17:49:22 · 214 阅读 · 0 评论 -
ruby gem test-unit-1.2.3源码分析3
ruby gem test-unit-1.2.3源码分析上午我不清楚,文件夹中test文件夹下文件的用途,下午清楚了。比如lib/test/unit/testsuite.rbtest/runit/test_testsuite.rb看到没,上面是源码,下面就是对上面的源码进行测试。比如lib/test/unit/testsuite.rb中有一段 # Adds the test to the...原创 2018-06-23 17:15:26 · 175 阅读 · 0 评论 -
ruby gem test-unit-1.2.3源码分析
ruby gem test-unit-1.2.3源码分析先看lib/test/unit.rb这里面注释太多了,用vim打开后,先把注释去掉:g/^\s*#/d去掉注释后,把代码露出来,如下:module Test # :nodoc: module Unit def self.run=(flag) @run = flag end def self.run? @...原创 2018-06-23 17:14:50 · 161 阅读 · 0 评论 -
ruby gem test-unit源码分析
ruby gem test-unit源码分析读源码的人真少呀。我是最想偷懒的人,早上想看activerecord,网上有人介绍这是根据马丁的一种设计模式弄出来的,于是立马去网上购了书,我想等书到了后,先看那个模式,再慢慢分析源码。下午就看其它的gem,感觉test-unit应该好看些,这次先装最低版本。sudo gem install -v 1.2.3 test-unit再把最低版本下载下来,用7...原创 2018-06-23 15:52:15 · 293 阅读 · 0 评论 -
ruby gem activerecord1.0源码分析
ruby gem activerecord1.0源码分析昨天安装成功了sqlite3-ruby,又写了一个例子,从ruby中访问sqlite3,很是兴奋。早上醒来,又把bluecloth这个把文档转为html的玩了一下,能简单的把txt文档转为html格式,真是漂亮。心想,还是读读activerecord的源码吧。从网站上下了,activerecord1.0版本。再用7z解压,里面有rakefil...原创 2018-06-23 08:39:46 · 210 阅读 · 0 评论 -
gem install sqlite3-ruby安装成功了
还是以前买书多有好处,今天看《ruby gems 开发实战》,专门讲gem,想看看camping,先得安装上呀,可是sqlite3-ruby装不上,如何操作数据库,于是接着折腾。心想,我的gcc先删除掉,再重装。于是sudo apt-get remove gcc再sudo apt-get install gcc再安装gem install sqlite3-rub居然搞成了。于是再安装activer...原创 2018-06-22 20:42:06 · 1699 阅读 · 0 评论 -
gem install sqlite3-ruby安装不成功的感想
gem install sqlite3-ruby安装不成功的感想写作即思考,所以我要多写点东西。不然的话,自己就没有思考。《ruby元编程》是本好书,最近时常读,作者从打开类技术,谈到对象的方法查找,再谈到用send,define_method进行方法动态调用和定义,以及幽灵方法的使用,再谈到块是如何引用外部变量,以突破变量作用域,再讲单件类,把Ruby的类体系架构串起来,写得太好了。我在想,作者...原创 2018-06-22 19:39:45 · 1648 阅读 · 0 评论 -
gnu coreutils源码感悟——小说,代码,人生
gnu coreutils源码感悟——小说,代码,人生好久没写博客了,今天写写。前一段时间,读网络小说《官策》,读得天昏地暗,我心太急,恨不得马上读完。读得眼睛都睁不开了,小说太吸引人了。今年,过年抱着试试的态度,买了个笔记本,上面装的win10,有个ubuntu的内置应用,上面可以写shell,太爽了。以前用那个cygwin时,总遇到到在windows中,是\n\r,而unix是\n的问题,现在...原创 2018-06-21 11:08:23 · 638 阅读 · 0 评论 -
ruby0.4 源码分析之编译
昨天读ruby代码,编译不了,于是就随便翻,从makefile文件入手,先看最简单的version.o : version.c ruby.h defines.h \ version.h打开version.c代码也少,static VALUE rb_version;VALUE rb_readonly_hook();Init_version(){ rb_version = str_new2(R...原创 2018-03-13 21:06:05 · 164 阅读 · 0 评论 -
ruby0.49源码分析——编译代码01
今天还是写两句。花了一整天,在ubuntu16上编译ruby0.49,我开始想装一个老版本的gcc,但装不上。弄了三个版本,都安装不上。于是,就在gcc5下编译ruby0.49,开始遇到varargs.h要换成stdarg.h的问题,换了头文件还不行,接着改相关用到可变参数的代码。改完了,接着又遇到一些头文件的问题,改了可变函数调用,要在相应头文件中修改。又遇到gdbm和crypt的问题, """...原创 2018-03-11 20:49:58 · 181 阅读 · 0 评论 -
ruby-0.49 missing/getopt.c 源码分析
这个文件和sed1.8源码中的的getopt.c好象。而我想读sed1.8的源码,通过调试程序,大致看懂了。上回打开ruby0.49源码,发现这个文件,就又去读gnu的源码了。这里面getopt.h,getopt1.c等几个文件和sed1.8中的很像。至于另两个文件mkdir.c,memmove.c好象也在gnu中有,就不看了。略过。...原创 2018-03-10 17:12:51 · 233 阅读 · 0 评论