[#12340] CGI#out — Shugo Maeda <shugo@...>
前田です。
[#12354] re: higher-resolution Time for Win32 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#12364] Dir::fnmatch? — "Akinori MUSHA" <knu@...>
[ruby-dev:12229] の、 Dir::fnmatch? の追加には特に問題や反対
まつもと ゆきひろです
[#12385] Re: NaN, Infinity (Bug?) — WATANABE Hirofumi <eban@...>
わたなべです。
[#12387] reducing logical operation — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
えぐち@エスアンドイー です。
なかだです。
えぐち@エスアンドイー です。
なかだです。
えぐち@エスアンドイー です。
木山です.
[#12404] fork in threads — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
なひです。
[#12405] at_exit — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#12415] — Koji Arai <JCA02266@...>
新井です。
[#12425] bignum % の結果が負数になることがある — Hisayasu Nakao <h-nakao@...>
最近、ruby-1.6.2を使い出したばかりの中尾です。
わたなべです。
In message <4518-Mon12Mar2001145434+0900-eban@os.rim.or.jp>
まつもと ゆきひろです
In message <984469222.234203.1007.nullmailer@ev.netlab.zetabits.com>
なかだです。
In message <200103131446.XAA22520@sharui.nakada.kanuma.tochigi.jp>
まつもと ゆきひろです
In message <984550885.417146.3670.nullmailer@ev.netlab.zetabits.com>
まつもと ゆきひろです
In message <984553493.009507.3747.nullmailer@ev.netlab.zetabits.com>
まつもと ゆきひろです
In message <984579430.080967.5569.nullmailer@ev.netlab.zetabits.com>
まつもと ゆきひろです
[#12483] sort! of empty array — Shin-ichiro HARA <sinara@...>
原です。
まつもと ゆきひろです
なひです。
[#12492] compile error on mswin32 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#12513] SOLIBS — "Akinori MUSHA" <knu@...>
configure.in に以下のような修正を加えたいと思っています。
In message <86itlbdv32.wl@archon.local.idaemons.org>
[#12535] シンボリックリンクを含むパスを渡した時の Dir.glob() の動作 — tachino Nobuhiro <tachino@...>
[#12537] re-initialize ARGF — Masaki Suketa <masaki.suketa@...>
助田です。
[#12541] Thread.kill — Masatoshi SEKI <m_seki@...>
[#12570] compile error on ews48 — Koji Arai <JCA02266@...>
新井です。
[#12578] require 'win32api' — Kazuhiro NISHIYAMA <zn@...>
require 'win32api'のエラーメッセージがわかりにくいと
なかだです。
なかだです。
In <200103211407.XAA03408@sharui.nakada.kanuma.tochigi.jp>
なかだです。
In <200103220905.SAA01745@m3.gw.fujitsu.co.jp>
artonです。
[#12582] finalizer problem — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
[#12605] extern inline (ruby.h) ruby-1.6.3 — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
まつもと ゆきひろです
渡辺哲也です。
まつもと ゆきひろです
まつもと ゆきひろです
新井です。
[#12621] Marshal bug still remains — "Akinori MUSHA" <knu@...>
Marshal にまだバグが残っています。最新安定版で:
[#12623] [req] Symbol#intern — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#12672] segv on Continuation#call on C_ALLOCA system — Koji Arai <JCA02266@...>
新井です。
[#12674] Was: [rubyist:0454] Re: to_str — Kenichi Komiya <kom@...1.accsnet.ne.jp>
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
なかだです。
なかだです。
新井です。
なかだです。
まつもと ゆきひろです
[#12693] Re: [ruby-cvs] ruby/lib: * ext/extmk.rb.in, lib/mkmf.rb: move C++ rules to the right place. — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
At Wed, 28 Mar 2001 21:08:14 +0900,
[#12699] cross compile mingw-ruby on cygwin — Koji Arai <JCA02266@...>
新井です。
[ruby-dev:12354] re: higher-resolution Time for Win32
まつもと ゆきひろです
ruby-talkからこちらに振ります。
要するに今のgettimeofdayは精度が悪すぎってことのようです。
このパッチを参考にwin32/win32.cの実装を書き換えればよいって
ことでしょうか?
------- Start of forwarded message -------
From: Tim Thompson <tjt@nosuch.com>
Subject: [ruby-talk:11990] higher-resolution Time for Win32
To: ruby-talk@ruby-lang.org (ruby-talk ML)
I want to use Ruby for realtime MIDI and audio on Windows.
To do that, I need high-resolution timing. The existing C code
in Ruby uses gettimeofday() to get the current time.
I have made a modification so that, on Windows, it uses the
timeGetTime() API to get a higher-resolution time.
Before this change, Ruby's Time.now.tv_usec value on Windows 98
was quantized to a large (40-50 millisecond) amount, because
of the poor implementation of gettimeofday() in Windows.
After this change, Ruby's Time.now.tv_usec value on Windows 98
has millisecond-resolution (i.e. the resolution of
the timeGetTime() API).
I've tried to make a minimal (but complete) change,
by added a rb_gettimeofday() function that all code uses
instead of gettimeofday(). The winmm.lib library needs
to be added to the makefile as well. A 'diff -u' for 1.6.2
is enclosed at the end of this message.
I've tested the change on both Win98 and Linux.
Any chance this change can be made in the official distribution?
...Tim Thompson...tjt@nosuch.com...
================================================================
- --- win32/Makefile.sub.original Sun Mar 4 20:27:04 2001
+++ win32/Makefile.sub Sun Mar 4 20:33:31 2001
@@ -35,7 +35,7 @@
LDFLAGS = $(CFLAGS) -Fm
XLDFLAGS =
#EXTLIBS =
- -LIBS = user32.lib advapi32.lib wsock32.lib $(EXTLIBS)
+LIBS = user32.lib advapi32.lib wsock32.lib $(EXTLIBS) winmm.lib
MISSING = crypt.obj alloca.obj win32.obj isinf.obj isnan.obj
LDSHARED =
DLDFLAGS =
- --- eval.c.original Sun Mar 4 20:26:44 2001
+++ eval.c Sun Mar 4 20:03:09 2001
@@ -6771,7 +6771,7 @@
timeofday()
{
struct timeval tv;
- gettimeofday(&tv, NULL);
+ rb_gettimeofday(&tv);
return (double)tv.tv_sec + (double)tv.tv_usec * 1e-6;
}
--- random.c.original Sun Mar 4 20:27:15 2001
+++ random.c Sun Mar 4 20:03:25 2001
@@ -119,7 +119,7 @@
static int n = 0;
struct timeval tv;
- gettimeofday(&tv, 0);
+ rb_gettimeofday(&tv);
seed = tv.tv_sec ^ tv.tv_usec ^ getpid() ^ n++;
}
else {
@@ -143,7 +143,7 @@
if (first) {
struct timeval tv;
- gettimeofday(&tv, 0);
+ rb_gettimeofday(&tv);
rand_init(tv.tv_sec ^ tv.tv_usec ^ getpid());
}
switch (TYPE(vmax)) {
--- time.c.original Sun Mar 4 20:27:31 2001
+++ time.c Sun Mar 4 21:10:12 2001
@@ -26,6 +26,10 @@
#endif
#endif /* NT */
+#ifdef NT
+#include <mmsystem.h>
+#endif
+
#ifdef HAVE_SYS_TIMES_H
#include <sys/times.h>
#endif
@@ -50,6 +54,31 @@
Data_Get_Struct(obj, struct time_object, tobj);\
}
+int
+rb_gettimeofday(struct timeval *tvp)
+{
+#ifdef NT
+ static int initialized = 0;
+ static struct timeval tv0;
+ static long tm0;
+ long dt;
+
+ if ( ! initialized ) {
+ initialized = 1;
+ tm0 = timeGetTime();
+ if ( gettimeofday(&tv0, 0) < 0 )
+ return -1;
+ }
+ dt = timeGetTime() - tm0;
+ *tvp = tv0;
+ tvp->tv_sec += dt / 1000;
+ tvp->tv_usec += 1000 * (dt % 1000);
+ return 0;
+#else
+ return gettimeofday(tvp, 0);
+#endif /* NT */
+}
+
static VALUE
time_s_now(klass)
VALUE klass;
@@ -60,7 +89,7 @@
obj = Data_Make_Struct(klass, struct time_object, 0, free, tobj);
tobj->tm_got=0;
- if (gettimeofday(&tobj->tv, 0) < 0) {
+ if (rb_gettimeofday(&tobj->tv) < 0) {
rb_sys_fail("gettimeofday");
}
@@ -294,7 +323,7 @@
struct tm *tm;
long t, diff;
- if (gettimeofday(&tv, 0) < 0) {
+ if (rb_gettimeofday(&tv) < 0) {
rb_sys_fail("gettimeofday");
}
guess = tv.tv_sec;
================================================================
------- End of forwarded message -------