Hatena::ブログ(Diary)

PBoMC

2009-07-23 D言語 ヴァージョン2リリース迫る?

[] ヴァージョン2リリース迫る?

D言語設計チームの一人 Bartosz Milewski 氏が自分のブログに付けたコメントが紹介されている。

これによると、どうやらD2のリリース日が (内部的には) 決まったようだ。

http://lists.puremagic.com/pipermail/digitalmars-d/2009-July/059590.html

To Álvaro: We’ve just had a conference–Andrei, Walter and I. We decided

that we have a deadline for D2, so we have to cut some features and

postpone them to D3. The race-free type system won’t make it–there just

isn’t enough time to implement and test it. There will be however a

stopgap solution for message passing in Phobos. It will be limited but safe.

拙訳:

Álvaroさん: さっきAndreiとWalterと私とで話し合いました。

D2に締切を設けることが決まりましたので、機能をいくつか削ってD3へ先送りすることになります。

競合のない型システムは、実装してテストする時間がないため、D2には含まれないことになりました。

ただし、メッセージパッシングに関しては、一時凌ぎの解決策をPhobosに入れます。機能は限られていますが安全に使えます。

2009-06-29

[] "The Case for D" 和訳を公開しました

Andrei Alexandrescu氏によるD言語の紹介記事 ”The Case for D” を、私と id:repeatedly とで和訳しました。

文書は D言語友の会 のページに置かせていただいています。

http://dusers.dip.jp/modules/wiki/?Learning%2FThe%20Case%20for%20D

翻訳・公開の許可をいただいた原著者のAndrei Alexandrescu氏、および文書の公開場所などをご提供いただいたSHOO氏に感謝いたします。

2009-06-10

[] "The D Programming Language" 米Amazonで予約受付開始

DチームPhobos担当 (?) のAndrei AlexandrescuさんのD本、早くも 予約受付開始

本家メイリングリストでは、O'Reilly Rough Cuts向けの原稿締切が8月末だと言ってたので、書籍版が出るまではまだ結構あるはず。

追記: 日本のアマゾンでも 受付けてました。が値段が37.52米ドルと6,655円で随分違う。

2009-05-13

[] D 2.030リリース

11日に2.030がリリースされた。 事前情報どおり 、グローバル変数がディフォルトでthread localになっている。

簡単な例:

import core.thread;
import std.stdio;

string a = "foo";
shared string b = "foo";

void threadFunc()
{
    a = "bar";
    b = "bar";
    writefln("threadFunc: a = %s, b = %s", a, b);
}

void main()
{
    writefln("main: a = %s, b = %s", a, b);

    auto t = new Thread(&threadFunc);
    t.start;
    t.join;
    writefln("main: a = %s, b = %s", a, b);
}

実行結果:

% dmd shared.d && ./shared
main: a = foo, b = foo
threadFunc: a = bar, b = bar
main: a = foo, b = bar
%

関数threadFuncは、mainとは別のスレッドで実行される。

変数bはスレッド間で共有なので、threadFuncで変更した "bar" がmainにも伝わっている。変数aはthread local (つまりスレッドごとに実体がある) なので、threadFuncでの「a = "bar";」はmainから見えているaには影響がない。

2009-05-12

[] D2.029 Phobos std.dateのバグ

import std.date: toString, getUTCtime;
// import std.datebase;
import std.stdio;

void main()
{
    writefln("%s", toString(getUTCtime));
}

std.date.toStringはローカルタイム文字列を返すはずだが、タイムゾーンを日本にして実行するとこうなる:

% dmd foo.d && ./foo
Tue May 12 08:18:14 GMT+0000 2009
%

一時的な回避策として、上記のコメントアウト部分を戻すと、正しく「GMT+0900」で表示される。

std.dateのソースを見たところ、タイムゾーンが正しく初期化できてないっぽい。本家bugzillaに 報告しておいた