[#38563] [Bug #1556] irb does not save history from 1.8.7-p83 and later — Nobuhiro IMAI <redmine@...>
Bug #1556: irb does not save history from 1.8.7-p83 and later
けいじゅ@いしつかです.
まつもと ゆきひろです
いまいです。
けいじゅ@いしつかです.
[#38571] [Bug #1582] IO.new Raises Other Errors between 1.8 and 1.9 — "ujihisa ." <redmine@...>
Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9
チケット #1582 が更新されました。 (by Motohiro KOSAKI)
なかだです。
2010年2月27日9:43 Nobuyoshi Nakada <nobu@ruby-lang.org>:
[#38602] [Feature: trunk] rb_objspace_each_objects — SASADA Koichi <ko1@...>
ささだです.
まつもと ゆきひろです
ささだです.
ささだです.
まつもと ゆきひろです
[#38607] [Feature: trunk] GC.stat — SASADA Koichi <ko1@...>
ささだです.
In article <4A349F64.5000702@atdot.net>,
ささだです.
In article <4A3612EF.1080008@atdot.net>,
ささだです。
まつもと ゆきひろです
ささだです。
2010年10月15日16:32 SASADA Koichi <ko1@atdot.net>:
[#38608] Fixnum#fdiv — Tadayoshi Funaba <tadf@...>
Bignum#fdiv には大きな数である場合の配慮があるようですが、Fixnum ではな
fdiv では2つの異る解釈が混在しているように見えます。
まつもと ゆきひろです
> えーと、設計者は「fdivは結果がfloatになるdiv」くらいしか考え
まつもと ゆきひろです
> ふむ。「中途半端」というのはfixnumとbignumで食い違うと言う意
> > ふむ。「中途半端」というのはfixnumとbignumで食い違うと言う意
まつもと ゆきひろです
> 私が気にしているのは「挙動の理解しやすさ」ですね。
まつもと ゆきひろです
> 繰り返しになりますが、「より正確な除算」とかだと独立した実装
まつもと ゆきひろです
この件を修正しようとしていますが、
[#38609] [Feature: trunk] *_memsize() — SASADA Koichi <ko1@...>
ささだです.
[#38613] [BUG: trunk] called on terminated object — SASADA Koichi <ko1@...>
ささだです.
[#38695] [feature:trunk] let irb use pretty_inspect if possible — Yusuke ENDOH <mame@...>
遠藤です。
けいじゅ@いしつかです.
遠藤です。
けいじゅ@いしつかです.
[#38698] [Bug #1674] set_trace_func with 1line block — _ wanabe <redmine@...>
Bug #1674: set_trace_func with 1line block
[#38701] [Bug #1676] only last "return" is traced by set_trace_func — _ wanabe <redmine@...>
Bug #1676: only last "return" is traced by set_trace_func
[ruby-dev:38620] [Feature: trunk] RTypedData
ささだです.
現在,RData に格納された情報は,その元になった型情報がなくなってしまい
ますが,型情報を陽に持たせた RTypedData を新設するのはどうでしょうか.型
には,従来どおり mark, free 関数が紐づけられており,さらに名前とサイズを
返す関数も付けてみました.
# サイズを返す関数を付けるのが動機なんですが.
どうでしょうか.ちょっと大きな変更で,例えばこれに対応したソースは
1.9.1 ではコンパイルできないプログラムになっちゃいますけど.
# 1.9.1 用のプログラムはコンパイルできる.
使う側は,alloc 時にちょっとインターフェースが変わるだけです.
とりあえず,ruby.h だけ,こんな感じということで.
Index: include/ruby/ruby.h
===================================================================
--- include/ruby/ruby.h (リビジョン 23689)
+++ include/ruby/ruby.h (作業コピー)
@@ -347,6 +347,7 @@ enum ruby_value_type {
RUBY_T_SYMBOL = 0x14,
RUBY_T_FIXNUM = 0x15,
+ RUBY_T_TYPEDDATA = 0x1a,
RUBY_T_UNDEF = 0x1b,
RUBY_T_NODE = 0x1c,
RUBY_T_ICLASS = 0x1d,
@@ -373,6 +374,7 @@ enum ruby_value_type {
#define T_TRUE RUBY_T_TRUE
#define T_FALSE RUBY_T_FALSE
#define T_DATA RUBY_T_DATA
+#define T_TYPEDDATA RUBY_T_TYPEDDATA
#define T_MATCH RUBY_T_MATCH
#define T_SYMBOL RUBY_T_SYMBOL
#define T_RATIONAL RUBY_T_RATIONAL
@@ -735,7 +737,25 @@ struct RData {
void *data;
};
+typedef struct rb_data_type_struct {
+ const char *name;
+ void (*dmark)(void*);
+ void (*dfree)(void*);
+ size_t (*dsize)(void *);
+ void *ary[4]; /* for extension */
+} rb_data_type_t;
+
+struct RTypedData {
+ struct RBasic basic;
+ rb_data_type_t *type;
+ VALUE dummy;
+ void *data;
+};
+
#define DATA_PTR(dta) (RDATA(dta)->data)
+#define RTYPEDDATA_TYPE(v) (RTYPEDDATA(v)->type)
+#define RTYPEDDATA_DATA(v) (RTYPEDDATA(v)->data)
/*
#define RUBY_DATA_FUNC(func) ((void (*)(void*))func)
@@ -743,6 +763,7 @@ struct RData {
typedef void (*RUBY_DATA_FUNC)(void*);
VALUE rb_data_object_alloc(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC);
+VALUE rb_data_typed_object_alloc(VALUE klass, void *datap,
rb_data_type_t *);
#define Data_Wrap_Struct(klass,mark,free,sval)\
rb_data_object_alloc(klass,sval,(RUBY_DATA_FUNC)mark,(RUBY_DATA_FUNC)free)
@@ -753,6 +774,15 @@ VALUE rb_data_object_alloc(VALUE,void*,R
Data_Wrap_Struct(klass,mark,free,sval)\
)
+#define Data_Wrap_TypedStruct(klass,data_type,sval)\
+ rb_data_typed_object_alloc(klass,sval,data_type)
+
+#define Data_Make_TypedStruct(klass, type, data_type, sval) (\
+ sval = ALLOC(type),\
+ memset(sval, 0, sizeof(type)),\
+ Data_Wrap_TypedStruct(klass,data_type,sval)\
+)
+
#define Data_Get_Struct(obj,type,sval) do {\
Check_Type(obj, T_DATA); \
sval = (type*)DATA_PTR(obj);\
@@ -826,6 +856,7 @@ struct RBignum {
#define RARRAY(obj) (R_CAST(RArray)(obj))
#define RHASH(obj) (R_CAST(RHash)(obj))
#define RDATA(obj) (R_CAST(RData)(obj))
+#define RTYPEDDATA(obj) (R_CAST(RTypedData)(obj))
#define RSTRUCT(obj) (R_CAST(RStruct)(obj))
#define RBIGNUM(obj) (R_CAST(RBignum)(obj))
#define RFILE(obj) (R_CAST(RFile)(obj))
--
// SASADA Koichi at atdot dot net