
ruby0.49
woshiyilitongdouzi
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ruby049_string.c分析03
ruby049_string.c分析03static VALUEFstr_rindex(str, args) struct RString *str; VALUE args;{ struct RString *sub; VALUE initpos; int pos, len; char *s, *sbeg, *t; if (rb_scan_args(args, "11", &sub, &initpos) == 2) { ...原创 2020-10-15 09:53:26 · 194 阅读 · 0 评论 -
ruby049_string.c源码分析2
今天接着分析ruby049中string.c这个源程序,刚才忽然想,如果我教学生学软件,我想,应该把ruby049的源码当成作业,让学生课余学着去读源码,并进行交流。我现在才开始读源码,是不是太晚了些。不多想了,开始正题。static charstr_next(s) char *s;{ char c = *s; /* control code */ if (c < ' ') return 0; /* numerics */ if ('0...原创 2020-10-15 09:03:45 · 207 阅读 · 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源码解读之array.c文件
ruby049源码解读之array.c文件昨天半夜睡不着,就起床写了一博文,写完后,继续睡觉。感觉还是有些迷糊。晚上还是要好好睡才是。今天我接着说说array.c文件。我是在linux下读程序,但写文字还是在windows下。那个ubuntu下五笔输入法没弄好。这个程序中最末尾是Init_Array(){ C_Array = rb_define_class("Array", C_Object); rb_include_module(C_Array, M_Enumerable);...原创 2020-10-13 08:59:58 · 364 阅读 · 0 评论 -
浅谈如何阅读开源软件的源码----谈谈我读ruby049源码的体会
浅谈如何阅读开源软件的源码----谈谈我读ruby049源码的体会很长一段时间没有读源码,也没有更新csdn,但所幸的是,还是在断断续续的读。有时在网上找资料,发现,很少。有时,找来找去,还是只看到自己写的那些博客。而自己写的博客内容是很浅薄的。于是,心想,或许我来补充完整吧。网上读源码的人少,我来当第一人,把大家都带动起来。今天重点谈谈自己的一些思路。第一、用成长型思维读源码。前段时间看书,发现思维模式很重要,有人用成长型思维看问题,有人用固定型思维看问题。而读源码时,个人体会是,第一眼看到从官网上原创 2020-10-13 04:02:48 · 1386 阅读 · 1 评论 -
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 评论 -
不到1000行的正则表达式源码分析04
不到1000行的正则表达式源码分析04今天购买了一个usb变多个usb的玩意儿,感觉很神奇,一个usb口可以当多个口用,如果同时连接鼠标、键盘,系统是如何处理的呦,难道象令牌环网,传递一个令牌?太神奇。感觉今天基本能把代码串起来了。在grep.c中,执行时echo "foooo" | ./ogrep 'fo*'先执行re_comp,把'fo*'变为chr fclo chr o再执行...原创 2019-01-08 20:31:02 · 117 阅读 · 0 评论 -
不到1000行的正则表达式源码分析03
不到1000行的正则表达式源码分析03https://www.cnblogs.com/plodsoft/p/5853945.htmlplodsoft的文章写得好,作者分析代码也很到位。可惜就是太少了。开始看到佩服得真不行。后到读了源码,发现作者真是花了心思的。可以作者写得太精彩,就没有照顾到初学者那种在源码面前的纠结,那种挣扎和无奈。而我呢,就当是出丑吧,感觉分析源码,就是从不会到会,从无到有...原创 2019-01-08 19:41:03 · 126 阅读 · 0 评论 -
不到1000行的正则表达式源码分析02
不到1000行的正则表达式源码分析02开始睡觉总是睡不着,过了好一会,睡着了。昨天好象做了一个梦,梦中,说西方不亮东方亮。而为什么东方亮呢,大意是中国人喜欢以天下事为已任。忽然梦醒来了。于是开了暖气,接着读代码。今天的收获很大。首先,把代码编译成功。先读下makefile,再进行编译。打开grep.c文件,这个文件是入口。先执行代码,如:echo "fooooo" | ./ogrep ...原创 2019-01-08 19:09:20 · 152 阅读 · 0 评论 -
ruby0.49 regex.c源码分析2
ruby0.49 regex.c源码分析今天发现自己的C语言学得还是不够好。上回说静态变量,其实是我没有理解。void test(){ static int done=0; done+=1; printf("%d\n",done);}int main(){ int i; for(i=0;i<3;i++) test(); ...原创 2019-01-07 20:23:41 · 146 阅读 · 0 评论 -
ruby0.49 simple文件夹下内容分析
ruby0.49 simple文件夹下内容分析ruby中的源码太多,又编译不了,于是就先分析其测试代码。感觉很有意思。因为0.49的代码,能在ruby2下执行,不是很神奇吗。可惜的是,我居然连ruby的语法也不熟悉,原来都是看书学习,满足于把书上的例子输入到机器,自己主动思考得少。我几乎把市场上能买到的ruby书籍都购了。但因为缺少自己的主动思考,写个if都不晓得,我发现还是要学会搜索,于是打...原创 2019-01-06 12:31:26 · 157 阅读 · 0 评论 -
ruby-0.49源码分析
今天想想,读读ruby0.49的源码。用C写东西,那是太慢了。真要干活,还是用perl或者ruby.现在时间充足,就相看看ruby0.49。收到了王亚刚写的gcc源码分析的书,他的版本太高,感觉还是读最古老的版本较划算。代码量太大了,这何年何月才能看完呢。wget https://cache.ruby-china.org/pub/ruby/1.0/ruby-0.49.tar.gztar ...原创 2019-01-06 12:34:08 · 114 阅读 · 0 评论 -
不到1000行的正则表达式源码分析05
不到1000行的正则表达式源码分析05写程序真需要安静。心情要宁静,另外,外面要尽量安静。也即,最好外部安静,内心也安静,这样,才能随着程序一步步走,在网上花心血购了降噪耳机,感觉真爽。价钱也真是贵,但效果还真是好。今天上午看代码,中午睡觉,一觉醒来,感觉神清爽,午睡后,一天可当两天用。首先看grep.c其中最让我烦的是字符串的资源分析,在《程序设计实践之路》中,有专门一章,讲资源分析,反...原创 2019-01-11 16:27:14 · 120 阅读 · 0 评论 -
不到1000行的正则表达式源码分析06
不到1000行的正则表达式源码分析06今天想谈NFA与DFA的区别,对代码来说。我喜欢购书,只要是经典的书,就买了。但当时也许看不懂。记得,《设计模式》一出来时,就购买了。可总是看不懂。直到看了程杰写的《大话设计模式》才基本看懂。其实,学正则表达式,有本经典书《精通正则表达式》也是经典,买了后,第4章,讲原理的那章,基本没看懂。等学习算法有一定理解后,再加上研读源码,才基本把第4章理解,因为...原创 2019-01-11 16:40:31 · 124 阅读 · 0 评论 -
coreutils-4.5.1 与ruby0.49中regex.c代码比较
coreutils-4.5.1 与ruby0.49中regex.c代码比较今天上网购了机械键盘。然后接着把ruby0.49/simple目录下的全部测试代码在ruby2下跑通了。这个matz是个厉害的人,0.49代码现在基本都能执行。于是分析regex.h,regex.c今天做了一件事,认真读程序中的注释,不象原来硬拼了。其实代码中的注释是写得很好的。也许是原来看过,今天再重头看,感觉顺利...原创 2019-01-06 21:32:24 · 104 阅读 · 0 评论 -
ruby0.49稀里糊涂编译成功了
ruby0.49稀里糊涂编译成功了上次编译ruby0.49时,总是卡在gdbm这一步编译不成功,说是一个so文件中没有定义gdbm_open之类函数,今天把oz的regex文件读懂了,心想,编译问题对比程序逻辑,应该还是简单的,于是又折腾ruby0.49,先进入gdbm的安装文件夹,读读makefile,readme之类文件,因为我想找个测试用例。自己编译测试文件不成功。打开ndbm.h,看看。...原创 2019-01-11 17:36:58 · 156 阅读 · 0 评论 -
不到1000行的正则表达式代码分析07
不到1000行的正则表达式代码分析07早晨先翻开ruby0.49下的regex.c,发现还是头大,因为太长了,而且逻辑太复杂,比oz的复杂了不止一个数量级。于是仍旧回到oz的grep.c下的正则引擎源码。昨天在睡觉时,一直在想,grep.c的正则引警是NFA,因为匹配时是正则表达式作主导,而ruby0.49中正则引擎是DFA的,我没有细看代码,但名字叫DFA,应该就是文本主导的,确定型自动机算...原创 2019-01-12 10:45:20 · 134 阅读 · 0 评论 -
ruby0.49 regex.c源码分析
ruby0.49 regex.c源码分析网上买个日本人的二手显示器,保护眼睛吧。安装好显示器就开始读源码。看regex.c,因为可以单独进行测试,先加上几句:#define test 1#include<stdio.h>#include<malloc.h>进行编译时,报错,说xmalloc,xrealloc等函数找不到,网上也找不到资料,后来,记起在awk还是s...原创 2019-01-07 19:52:56 · 215 阅读 · 0 评论 -
好好享受生活……ruby0.49阅读有感
好好享受生活……ruby0.49阅读有感昨天忽然上网网到取猝死相关的信息,忽然感觉自己原来的坚持是对的。我现在想,我们要学会适应现代的生活,要学会高质量的生活。我有一些高质量生活的方法,比如:1.每天晚上9:00睡觉2.冬天每天在脚边放热水袋,所谓的“烫婆子"3.写代码时,注意姿势,可以站立式办公,站累了就坐4.买好的显示器,机械键盘5.冬天买个电热取暖器6.写代码累了,就弹电子琴...原创 2019-01-06 09:21:26 · 226 阅读 · 0 评论