[#62297] Re: [ruby-cvs:52906] nari:r45760 (trunk): * gc.c (gc_after_sweep): suppress unnecessary expanding heap. — Eric Wong <normalperson@...>
nari@ruby-lang.org wrote:
7 messages
2014/05/02
[#62307] Re: [ruby-cvs:52906] nari:r45760 (trunk): * gc.c (gc_after_sweep): suppress unnecessary expanding heap.
— SASADA Koichi <ko1@...>
2014/05/03
(2014/05/03 4:41), Eric Wong wrote:
[#62402] Re: [ruby-cvs:52906] nari:r45760 (trunk): * gc.c (gc_after_sweep): suppress unnecessary expanding heap.
— Eric Wong <normalperson@...>
2014/05/05
SASADA Koichi <ko1@atdot.net> wrote:
[#62523] [ruby-trunk - Feature #9632] [PATCH 0/2] speedup IO#close with linked-list from ccan — ko1@...
Issue #9632 has been updated by Koichi Sasada.
3 messages
2014/05/11
[#62556] doxygen (Re: Re: [ruby-trunk - Feature #9632] [PATCH 0/2] speedup IO#close with linked-list from ccan) — Tanaka Akira <akr@...>
2014-05-11 8:50 GMT+09:00 Eric Wong <normalperson@yhbt.net>:
3 messages
2014/05/13
[#62727] [RFC] vm_method.c (rb_method_entry_make): avoid freed me in m_tbl — Eric Wong <normalperson@...>
rb_unlink_method_entry may cause old_me to be swept before the new
7 messages
2014/05/24
[#63039] Re: [RFC] vm_method.c (rb_method_entry_make): avoid freed me in m_tbl
— SASADA Koichi <ko1@...>
2014/06/10
Hi,
[#63077] Re: [RFC] vm_method.c (rb_method_entry_make): avoid freed me in m_tbl
— Eric Wong <normalperson@...>
2014/06/10
SASADA Koichi <ko1@atdot.net> wrote:
[#63086] Re: [RFC] vm_method.c (rb_method_entry_make): avoid freed me in m_tbl
— SASADA Koichi <ko1@...>
2014/06/11
(2014/06/11 4:47), Eric Wong wrote:
[#63087] Re: [RFC] vm_method.c (rb_method_entry_make): avoid freed me in m_tbl
— Eric Wong <normalperson@...>
2014/06/11
SASADA Koichi <ko1@atdot.net> wrote:
[#62862] [RFC] README.EXT: document rb_gc_register_mark_object — Eric Wong <normalperson@...>
Any comment on officially supporting this as part of the C API?
5 messages
2014/05/30
[ruby-core:62314] [ruby-trunk - Bug #9794] DateTime.strptime() doesn't work correctly for '%s %z'
From:
tadf@...
Date:
2014-05-03 06:45:32 UTC
List:
ruby-core #62314
Issue #9794 has been updated by tadayoshi funaba.
言語の問題もあるんだろうけど、俺が英語に堪能でも Felipe Contreras に俺の考えを解らせるのは無理じゃないかという気がする。
誤解のないよう少し補足しておくと、strcut tm で %s や %z を表現できない、という直接的な問題でもない。
C の時刻関数群はオブジェクト指向では書かれてないけど、データや関数の集合によってどんなモノを表現しているのか
考えないと理解できない。C の時刻関数には、まず、地方時 (あるいは局所時) と世界時の区別しかなく、
基本的に地方時は与えられるもので自分では選べない。選べないという事は、strptime に与えて仮に形式的に受けつけたとしても
仕様に従えば、mktime (自明の地方時) や gmtime (世界時) ではそれを使う事ができないという事になる。
それに、%z に対応するメンバーがあっても、普通は %s に対応するものがない、
だから %s は年月日などにデコードされるが、
これも自明な地方時か世界時しか選択肢がない。時差を持っていても矛盾が生じてしまう。
これは https://bugs.ruby-lang.org/issues/7445#note-12 ですでに書いた。
そもそも %s は可搬性に乏しい (存在しない実装もあるだろうし、閏秒の挿入の課題がある)。
環境によっては、ruby の Time と DateTime でも結果に相違が出る。そういうものです。
これまでにも「オレのアプリケーションで使っている日付をサポートしろ」という要求は
何度もありました (最近はないが直接メールしてくる奴もいる)。
いくつか受け入れたものもありますが、そういうの一々受け入れていこうとはまったく思っていません。
俺は strptime が完璧だとは思ってないし、偏見の塊かもしれないと思っている。
田中さんなんかはそういう割切り方に自信があって、なおかつダメなものは諦めるしないと思っているのかもしれないけど、
俺の場合、少なくとも strptime については次善の策を用意しておいた。
_strptime は lib/time.rb に使って貰う為に用意したわけではない。
strptime でダメでも _strptime を叩いてどうにかなるかもしれない。
今回の件は明かに何とかなるでしょ。
'%s %z' はそれ自体おかしいと思うし、既に何度も述べているように、まるでお勧めできない。
その程度のものに原則を曲げて敢て対応する必要はないと思ってます。
大騒ぎすれば言う事を聞くと思ってるかもしれないけど、大間違いです。
----------------------------------------
Bug #9794: DateTime.strptime() doesn't work correctly for '%s %z'
https://bugs.ruby-lang.org/issues/9794#change-46471
* Author: Felipe Contreras
* Status: Feedback
* Priority: Low
* Assignee: tadayoshi funaba
* Category: ext
* Target version:
* ruby -v: 2.1.1p76
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
Time.strptime() works correctly:
Time.strptime('0 +0100', '%s %z').strftime('%s %z')
=> "0 +0100"
But DateTime.strptime() doesn't:
DateTime.strptime('0 +0100', '%s %z').strftime('%s %z')
=> "0 +0000"
In Rubinious it does work correctly:
DateTime.strptime('0 +0100', '%s %z').strftime('%s %z')
=> "0 +0100"
This make the RubySL date space fail:
DateTime#strptime parses seconds and timezone correctly FAILED
Expected "1970-01-01T00:00:00+00:00"
to equal "1970-01-01T01:00:00+01:00"
In addition, both C and perl preserver the offset correctly when doing '%s %z'.
So it's very clear DateTime.strptime() has to be fixed.
Patch attached.
---Files--------------------------------
0001-datetime-fix-strptime-s-z.patch (1.94 KB)
--
https://bugs.ruby-lang.org/