- 浏览: 502104 次
- 性别:
- 来自: 上海
-
最新评论
-
hypercube:
markin'
配置D语言编程环境 -
qiezi:
qiezi 写道yangyang_08 写道1 ...
我的编程语言学习经历 -
qiezi:
yangyang_08 写道1、现在如果做并发服务器,楼主选用 ...
我的编程语言学习经历 -
yangyang_08:
1、现在如果做并发服务器,楼主选用什么样的语言架构?2、lua ...
我的编程语言学习经历 -
dearplain:
我也是语言爱好者,不过我一直坚持使用c。
我的编程语言学习经历
文章列表
引用
What's New for D 0.176
Dec 2, 2006
New/Changed Features
* Added std.bind.
* Need to recompile because:
o Associative arrays now are PTRSIZE, not PTRSIZE*2.
o Destructors no longer stored in vtbl[].
o "_arguments" now passed differently to variadic ...
- 2006-12-03 14:22
- 浏览 3099
- 评论(5)
DMD 0.166 特性列表中有一条:
* ncorporated Oskar Linde's patches to support member templates.
当时没注意,今天看到邮件列表中的一个帖子。才发现已经支持成员函数模板了,不过是不是在0.166中支持的就不清楚了。
没有成员函数模板的模板是不完整的。一个简单的例子,源于我的另一篇“泛型矩阵类”:
class Matrix(T, int R, int C){
static assert(R > 0 && C > 0);
Matrix!(T, R, C1) op ...
- 2006-12-02 20:29
- 浏览 3096
- 评论(3)
看样子是运行在wine上,不过竟然和windows上一样流畅。
- 2006-12-01 11:21
- 浏览 2551
- 评论(3)
ActiveRecord使用很方便,只需要声明映射关系,就可以方便地获取各个关联对象,而且是延迟加载。有时候这种关系延迟加载可能会严重影响性能,比如下面这个例子:
class User < ActiveRecord::Base
end
class Post < ActiveRecord::Base
has_many :replies
end
class Reply < ActiveRecord::Base
belongs_to :user
belongs_to :post
end
我们在查询某一个帖子的同时,希望取到所有回复以及回复者 ...
- 2006-11-28 17:37
- 浏览 3625
- 评论(4)
一、栈上分配对象
C++可以轻易实现在栈上和堆上分配对象,例如下面的代码:
class Foo{};
Foo foo; //在栈上分配
Foo* foo = new Foo; //在堆上分配
在栈上分配对象是C++相较于java的一大优势,可以轻松实现RAII。
D语言也可以实现这2种分配方式:
Foo foo = new Foo; // 在GC堆上分配
scope Foo foo = new Foo; // 在栈上分配
C++和D在栈上分配的对象,在分配时都会调用构造函数,超出作用域时都会自动析构。
这里顺便提一下0.175版以前,D的栈上对象的一个小陷阱: ...
- 2006-11-28 13:18
- 浏览 2850
- 评论(0)
twisted是一个优秀的python网络开发库,以前用它做过一个视频服务器,感觉它的接口应该比ACE更适合D一些。
twisted虽然是用python所写,但借助于Zope的interface模拟,很大程度上改善了动态语言开发的无接口约束的缺点。
由于它有一整套规范化的接口,所以应该先把它的接口转化过来,方便编写测试。简单看了一下TwistedCore,这个是twisted最基本的部分,先把twisted.internet转化过来吧。
python反射支持得不错,ZopeInterface也做了一些工作,所以可以利用它帮我完成一部分工作。我写了个脚本来转化这些接口:
from twi ...
- 2006-11-26 20:14
- 浏览 4239
- 评论(1)
主要是BUG修复,朝1.0大步迈近啊。还有260多个BUG,1月1日前全部修复估计够呛。不过Walter说尽量做到最好。
引用
What's New for D 0.175
Nov 25, 2006
New/Changed Features
* Added == super to IsExpressions.
* Class variables declared with scope are now allocated on the stack.
Bugs Fixed
* Fixed Bugzilla 222: Internal error: ..\ztc\co ...
- 2006-11-25 17:23
- 浏览 3063
- 评论(7)
测试写到什么程度算足够? 这个帖子对单元测试作了些探讨,代码覆盖率检查是检验单元测试的一项指标。
DMD编译器内建了代码覆盖率检查,根据上面这个帖子我们写一个测试:
int oddNumber(int index){
switch (index){
case 1: return 1;
case 2: return 2;
case 3: return 5;
case 4: return 8;
}
throw new Exception("Unsupported operation");
}
unittest{
ass ...
- 2006-11-22 17:42
- 浏览 2452
- 评论(0)
RAII(Resource Acquisition Is Initialization 资源获得即初始化)是管理资源的一种方式,它在构造对象时初始化资源,析构对象时释放资源,有时也把这2个过程分为RAII和RRID(Resource Release Is Destruction 资源释放即析构),这通常需要语言支持。
大部分语言都支持RAII,RRID则有少数语言不支持,这些语言无法在域结束时自动销毁栈上分配的对象,java就是这种。
先来看看一个简单的JDBC调用过程:
Connection conn = null;
Statement stmt = null;
ResultSet ...
- 2006-11-18 18:32
- 浏览 2763
- 评论(4)
is关键字有2种用法,可以当作===来用(===和!==操作符已经废弃了),它是全等判断,相当于java里的==,而==则和java里的equals同义。值类型(包括简单类型、结构)的全等判断和等于判断是相同的,类对象的全等判断是判断对象指 ...
- 2006-11-16 20:12
- 浏览 2418
- 评论(0)
DMD 0.174 发布
- 博客分类:
- D
引用
Nov 9, 2006
New/Changed Features
* Implemented std.typetuple.
* Implemented std.traits.
* Added .funcptr property for delegates.
* Added .tupleof property for structs and classes.
* Slicing and indexing of type tuples now supported.
* Variable declarations can now be decla ...
- 2006-11-15 09:09
- 浏览 2246
- 评论(2)
说是改良,不过C++的死忠份子可能认为是对C++的亵渎,随便怎么说,就说是不一样的地方吧。
最近D语言没什么大动作,我又参与到xruby的builtin开发中,圈子里有点冷清。有留言说这里没什么人关注,的确是这样,抽点时间来写个简单的比较。
这里有一份各种语言的比较,大致可以了解D语言要对C++改些什么。
http://digitalmars.com/d/comparison.html
下面没什么顺序,想到什么就先列出来,可能随时扩充。
1、内存管理。
内存管理在C++中非常难以掌握,大多数C++程序员没有写过内存管理程序,多数C++程序中存在内存问题,C++程序员终其一生都在与内存管 ...
- 2006-11-14 20:52
- 浏览 2510
- 评论(0)
这几天在折腾网页界面,其中有些要求位置、大小控制得比较精细,而且要在4个主流浏览器(IE, FF, Safari, Opera)上都一致。
经过测试,发现主要是border在IE和其它3个之间表现不一致。IE的border是往里面画的,这样就没有增加宽度,其它浏览器的border是往外画的。如果直接在一个图片上加border,结果大小就有偏差,最好的做法是不在图片上加,而在它外面套一个DIV,给这个DIV指定border即可,在几个浏览器上显示结果完全没有偏差。
outline应该是往外画的,但在opera上它会有一些不良影响,在IE上似乎根本没有使用这个属性,所以就不考虑它了。
另外一个 ...
- 2006-11-14 11:07
- 浏览 2095
- 评论(0)
做了一个图片编辑窗口,用来做裁剪、旋转、镜像操作。
原来是想用一个黑色半透明的mask遮住图片,再用一个div设置背景图和正一样,拖动时设置背景图偏移即可。后来发现backgroundPosition在IE和FF中不一致。
改成一张背景加4个mask的方式,不存在图像对不准的问题。
新的问题是IE中的border的宽度是包含在div宽度里的,其它浏览器则不包括这个宽度。
尝试使用outline代替border,这个应该是比较一致,不过在opera中,快速拖动时会出现多条白线。
最后还是选了第2种方式,需要判断浏览器类型,如果不是IE,就要把拖拽框的宽和高各减去2个边框宽。
...
- 2006-11-13 14:09
- 浏览 6355
- 评论(4)
引用
D 1.0 for Jan 1, 2007 Digital Mars
Walter Bright (newshound@digitalmars.com) 2006/11/09 15:08
We'll release it one way or another Jan 1. And then we'll move on!
看样子应该是DMD 1.0,D语言也要出第一个正式的规范。经过了170多个版本以及5年的跨度,总算是要有一个正式版了。
T shirt也有人在做,很漂亮哇,我喜欢这血红血红的东西:
http://www.zazzle.com/pramga/product/235 ...
- 2006-11-11 15:28
- 浏览 5685
- 评论(8)