- 浏览: 26233 次
- 性别:
- 来自: 武汉
最近访客 更多访客>>
最新评论
-
lifc:
有点push sp和i=i++的味道,不久之前刚犯过一个类似的 ...
笔记 关于D关联数组可能遇到的一个陷阱 -
tomqyp:
以前都是存在电脑上,后来一想放在圈子里也许还能方便别人就干脆贴 ...
笔记 关于D关联数组可能遇到的一个陷阱 -
hqs7636:
不错,谢谢
笔记 关于D关联数组可能遇到的一个陷阱 -
tomqyp:
其实其它语言的编译器特别是第三方库中往往也会有许多bug或者陷 ...
GDC常见BUG及解决办法 -
hqs7636:
这种帖子好,谢谢
d 还是这样也够牙谄的
GDC常见BUG及解决办法
文章列表
关于解决网络订票难的新思路
- 博客分类:
- 春运 抢票
关于解决网络订票难的新思路
春运期间最热门的话题就是火车票了,而最近各大国产浏览器纷纷推出了自己的“抢票插件”,以及传闻铁道部“约谈”部分插件开发商叫停抢票插件,也让IT圈子里多出了一个热门话题。关于传闻的铁道部叫停的“抢票插件”是否合情,浏览器厂商的“抢票插件”是否合理或者合法,更是在网上引起不少争议。关于这个两难问题,我想谈谈我的一些看法。
使用“抢票插件”确实极大的方便了网民,但是略显“暴力”的刷取票额信息的方式也使得12306的互联网定票平添了巨大压力,对于这个问题我认为铁道部不妨改变思路,增加“撮合订购制”。
...
关于D关联数组可能遇到的一个陷阱
前两天想当然的写了类似如下代码:
int[X] n;
n[x] = n.length;
按C的计算顺序此时n[x]的值应该是n的长度。
可是在D中,如果x不存在于n中,此时n的长度为n.length+1,即在先在n中插入一个新对象,再设置对象的值。
在D还没有用的很顺手的调试器的情况下,写出这样的代码仅靠单元测试很难找出bug的位置的,所以应该注意避免写出这样的代码。
在小舅子的电脑上好网没地方存,暂时放在这里。希望这个inotifywait比windows下人filemon好用。
原文出自:http://li2z.cn/2009/12/11/inotifywait/
监视文件系统的一举一动 ── inotifywait
某天,TX大侠说他找不到awn的配置文件在什么地方,问我知道不?而我只是在N年前用过一下下awn而已,所以,理所当然地不知道了。后来,我们想了一个土办法:在$HOME下先执行一次
tree -as > /tmp/before
然后在awn的界面里修改一下配置,再在$HOME下再执行一次
...
最近GDC用的比较多,总结了一些GDC的bug及解决办法:
D内嵌汇编时,如果带有push FS:[0],生成的rtl和汇编代码会省掉0
D源码
push dword ptr FS:[0];
RTL代码
(asm_operands/v ("pushl %%fs:") ("") 0 []
asm源码
pushl %fs:
解决办法改GDC源码,或者加-S输出汇编代码,用sed之类的替换工具处理一下再编译。
用do while可能产生Segmentation fault错误
解决办法,改成whil ...
这两天看到论坛里对编译原理方面的问题论讨的比较热烈,可惜自己对编译原理不太了解,所以插不上嘴,心里痒的难受
今天突然想起来,以前编译ddbg时发现一个D原生的语法分析工具APaGeD,感觉解析的速度还不错,生成的代码可读性也过得去,自带的文档也比较详细,所以共享出来希望对感兴趣的朋友有用。
也可以去它的主页下载源码:
http://apaged.mainia.de/
- 2009-08-19 22:37
- 浏览 1349
- 评论(2)
看了圈子里介绍pyd的文章很感兴趣,试了一下发现不支持python2.6。
就自己导了一个python26的lib,顺便改了几处不能能编译的小问题,在python26、d1.30、phobos环境下测试可以正常使用。
- 2009-06-17 18:12
- 浏览 2578
- 评论(6)
今天,一个小错误浪费了大半天的时间。
我在一个函数中使用scope定义了一个局部临时变量,后来又无意中将其它对象赋值给这个临时变量,并进行了一些操作,当走出函数时,gc自动释放了临时变量最后所指向的对象,一但有程序再对这个对象进行操作时,就有可能引发一个av错误。
因为,离开时只会释放scope变量最后所指向的对象,而其它大部份对象却不受影响,所以错误可能会随机出现,让问题比较隐蔽。同时,发现av错误时,通常注意力都会集中在对象是否正创建和释放,而忽略了scope的影响,所以使得找出原因更加困难。
- 2008-11-19 23:24
- 浏览 1706
- 评论(11)
刚才和hurd讨论D的文件尺寸问题,自己尝试时发现了一点线索。
我试了一下,用-g生成的dwt程序大约3m,用-O -release(没有inline)生成的程序大约2m。
然后把它分分别反汇编了一下,release版代码段占用约40%,数据段占用约60%。(-g版是3:7)
由于代码段没什么规律性,所以大多数压缩程序对代码段的压缩比都不明显(从各压缩结果的大小比较接近代码段大小,就可以看出来)
所以关键的部分就在于数据段了。
我生成的dwt程序数据段,体积比较大的主要是以下部分:
dwt中import的swt的properties文件 (文本内 ...
- 2008-11-13 20:30
- 浏览 1757
- 评论(6)
试用一个开源程序,发现程序在一些特定情况会陷入死循环,这种情况下没有调试工具仅凭契约和单元测试也很难找出原因,何况程序本身没有这样的代码,大范围修改也不方便,突然想到用性能分析功能也许可以很容易找到有问题的函数,试了一下没想到性能分析只有在正常退出时才有输出,强行退出并没有结果。
看了一下trace的代码,发现trace的初始化和结果输出分别是在构造和解构中自动调用的,强退时应该没有调用解构所以没有输出,只要在退出于调用一下输出函数应该就行了,于是试着写了一个小测试。
java 代码
extern (C)
{
void trace_term();
voi ...
- 2007-09-22 01:42
- 浏览 2205
- 评论(3)
刚刚接触D,本身功力又不深,所以只能写些应用级的东西,就当是学习笔记了。
ddbi是用D下的一套的数据库接口,支持:
MS SQL Server & Sybase
MySQL
ODBC
PostgreSQL
SQLite 3
详细介绍见项目主页 http://www.dsource.org/projects/ddbi
下载以后解压,根据说明先编译
dmd -run buildme.d all
提示链接时一大堆函数找不到,我用的是tango用黓认库,配置了半天相关参数,没用。
于是干脆用回phobos,再编译
提示找不到bud程序,我 ...
- 2007-02-16 03:58
- 浏览 4664
- 评论(9)