summaryrefslogtreecommitdiff
path: root/include/ruby/internal/core/rbasic.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ruby/internal/core/rbasic.h')
-rw-r--r--include/ruby/internal/core/rbasic.h172
1 files changed, 172 insertions, 0 deletions
diff --git a/include/ruby/internal/core/rbasic.h b/include/ruby/internal/core/rbasic.h
new file mode 100644
index 0000000000..63cdff8e09
--- /dev/null
+++ b/include/ruby/internal/core/rbasic.h
@@ -0,0 +1,172 @@
+#ifndef RBIMPL_RBASIC_H /*-*-C++-*-vi:se ft=cpp:*/
+#define RBIMPL_RBASIC_H
+/**
+ * @file
+ * @author Ruby developers <ruby-core@ruby-lang.org>
+ * @copyright This file is a part of the programming language Ruby.
+ * Permission is hereby granted, to either redistribute and/or
+ * modify this file, provided that the conditions mentioned in the
+ * file COPYING are met. Consult the file for details.
+ * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are
+ * implementation details. Don't take them as canon. They could
+ * rapidly appear then vanish. The name (path) of this header file
+ * is also an implementation detail. Do not expect it to persist
+ * at the place it is now. Developers are free to move it anywhere
+ * anytime at will.
+ * @note To ruby-core: remember that this header can be possibly
+ * recursively included from extension libraries written in C++.
+ * Do not expect for instance `__VA_ARGS__` is always available.
+ * We assume C99 for ruby itself but we don't assume languages of
+ * extension libraries. They could be written in C++98.
+ * @brief Defines struct ::RBasic.
+ */
+#include "ruby/internal/attr/artificial.h"
+#include "ruby/internal/attr/constexpr.h"
+#include "ruby/internal/attr/forceinline.h"
+#include "ruby/internal/attr/noalias.h"
+#include "ruby/internal/attr/pure.h"
+#include "ruby/internal/cast.h"
+#include "ruby/internal/dllexport.h"
+#include "ruby/internal/special_consts.h"
+#include "ruby/internal/value.h"
+#include "ruby/assert.h"
+
+/**
+ * Convenient casting macro.
+ *
+ * @param obj Arbitrary Ruby object.
+ * @return The passed object casted to ::RBasic.
+ */
+#define RBASIC(obj) RBIMPL_CAST((struct RBasic *)(obj))
+/** @cond INTERNAL_MACRO */
+#define RBASIC_CLASS RBASIC_CLASS
+#define RBIMPL_RVALUE_EMBED_LEN_MAX 3
+#define RVALUE_EMBED_LEN_MAX RVALUE_EMBED_LEN_MAX
+#define RBIMPL_EMBED_LEN_MAX_OF(T) \
+ RBIMPL_CAST((int)(sizeof(VALUE[RBIMPL_RVALUE_EMBED_LEN_MAX]) / (sizeof(T))))
+/** @endcond */
+
+/**
+ * This is an enum because GDB wants it (rather than a macro). People need not
+ * bother.
+ */
+enum ruby_rvalue_flags {
+ /** Max possible number of objects that can be embedded. */
+ RVALUE_EMBED_LEN_MAX = RBIMPL_RVALUE_EMBED_LEN_MAX
+};
+
+#if (SIZEOF_VALUE < SIZEOF_UINT64_T)
+#define RBASIC_SHAPE_ID_FIELD 1
+#else
+#define RBASIC_SHAPE_ID_FIELD 0
+#endif
+
+/**
+ * Ruby object's base components. All Ruby objects have them in common.
+ */
+struct
+RUBY_ALIGNAS(SIZEOF_VALUE)
+RBasic {
+
+ /**
+ * Per-object flags. Each Ruby object has its own characteristics apart
+ * from its class. For instance, whether an object is frozen or not is not
+ * controlled by its class. This is where such properties are stored.
+ *
+ * @see enum ::ruby_fl_type
+ *
+ * @note This is ::VALUE rather than an enum for alignment purposes. Back
+ * in the 1990s there were no such thing like `_Alignas` in C.
+ */
+ VALUE flags;
+
+ /**
+ * Class of an object. Every object has its class. Also, everything is an
+ * object in Ruby. This means classes are also objects. Classes have
+ * their own classes, classes of classes have their classes too, and it
+ * recursively continues forever.
+ *
+ * Also note the `const` qualifier. In Ruby, an object cannot "change" its
+ * class.
+ */
+ const VALUE klass;
+
+#if RBASIC_SHAPE_ID_FIELD
+ VALUE shape_id;
+#endif
+
+#ifdef __cplusplus
+ public:
+ RBIMPL_ATTR_CONSTEXPR(CXX11)
+ RBIMPL_ATTR_ARTIFICIAL()
+ RBIMPL_ATTR_FORCEINLINE()
+ RBIMPL_ATTR_NOALIAS()
+ /**
+ * We need to define this explicit constructor because the field `klass` is
+ * const-qualified above, which effectively defines the implicit default
+ * constructor as "deleted" (as of C++11) -- No way but to define one by
+ * ourselves.
+ */
+ RBasic() :
+ flags(RBIMPL_VALUE_NULL),
+ klass(RBIMPL_VALUE_NULL)
+#if RBASIC_SHAPE_ID_FIELD
+ , shape_id(RBIMPL_VALUE_NULL)
+#endif
+ {
+ }
+# define RBASIC_INIT RBasic()
+#else
+# define RBASIC_INIT {RBIMPL_VALUE_NULL}
+#endif
+};
+
+RBIMPL_SYMBOL_EXPORT_BEGIN()
+/**
+ * Make the object invisible from Ruby code.
+ *
+ * It is useful to let Ruby's GC manage your internal data structure -- The
+ * object keeps being managed by GC, but `ObjectSpace.each_object` never yields
+ * the object.
+ *
+ * Note that the object also lose a way to call a method on it.
+ *
+ * @param[out] obj A Ruby object.
+ * @return The passed object.
+ * @post The object is destructively modified to be invisible.
+ * @see rb_obj_reveal
+ */
+VALUE rb_obj_hide(VALUE obj);
+
+/**
+ * Make a hidden object visible again.
+ *
+ * It is the caller's responsibility to pass the right `klass` which `obj`
+ * originally used to belong to.
+ *
+ * @param[out] obj A Ruby object.
+ * @param[in] klass Class of `obj`.
+ * @return Passed `obj`.
+ * @pre `obj` was previously hidden.
+ * @post `obj`'s class is `klass`.
+ * @see rb_obj_hide
+ */
+VALUE rb_obj_reveal(VALUE obj, VALUE klass); /* do not use this API to change klass information */
+RBIMPL_SYMBOL_EXPORT_END()
+
+RBIMPL_ATTR_PURE_UNLESS_DEBUG()
+RBIMPL_ATTR_ARTIFICIAL()
+/**
+ * Queries the class of an object.
+ *
+ * @param[in] obj An object.
+ * @return Its class.
+ */
+static inline VALUE
+RBASIC_CLASS(VALUE obj)
+{
+ RBIMPL_ASSERT_OR_ASSUME(! RB_SPECIAL_CONST_P(obj));
+ return RBASIC(obj)->klass;
+}
+
+#endif /* RBIMPL_RBASIC_H */
ss='age-months' title='2025-05-14 03:11:06 +0000'>13 months v3_5_0_preview1commit d06ec25be4...Takashi Kokubun14 months v3_4_3commit d0b7e5b6a0...Takashi Kokubun14 months v3_3_8commit b200bad6cd...nagachika14 months v3_1_7commit 0a3704f218...Hiroshi SHIBATA14 months v3_2_8commit 13f495dc2c...Hiroshi SHIBATA14 months v3_4_2commit d2930f8e7a...Takashi Kokubun16 months v3_2_7commit 02ec315244...nagachika16 months v3_3_7commit be31f993d7...Takashi Kokubun17 months v3_4_1commit 48d4efcb85...NARUSE, Yui17 months v3_4_0commit f450108330...Takashi Kokubun17 months v3_4_0_rc1commit 29caae9991...Kevin Newton18 months v3_3_6commit 75015d4c1f...Takashi Kokubun19 months v3_2_6commit 63aeb018eb...nagachika19 months v3_4_0_preview2commit 32c733f57b...Misaki Shioi20 months v3_3_5commit ef084cc8f4...Takashi Kokubun21 months v3_2_5commit 31d0f1a2e7...nagachika22 months v3_3_4commit be1089c8ec...Takashi Kokubun23 months v3_3_3commit f1c7b6f435...Takashi Kokubun24 months v3_3_2commit e5a195edf6...Takashi Kokubun2 years v3_1_6commit a777087be6...Hiroshi SHIBATA2 years v3_4_0_preview1commit 9d69619623...Nobuyoshi Nakada2 years v3_0_7commit 724a071175...Hiroshi SHIBATA2 years v3_1_5commit 1945f8dc0e...Hiroshi SHIBATA2 years v3_3_1commit c56cd86388...NARUSE, Yui2 years v3_2_4commit af471c0e01...nagachika2 years v3_2_3commit 52bb2ac0a6...nagachika2 years v3_3_0commit 5124f9ac75...NARUSE, Yui2 years v3_3_0_rc1commit a49643340e...NARUSE, Yui2 years v3_3_0_preview3commit 60e19a0b5f...Nobuyoshi Nakada3 years v3_3_0_preview2commit e50fcca9a7...Nathan Froyd3 years v3_3_0_preview1commit a1b01e7701...Yuichiro Kaneko3 years v3_0_6commit 23a532679b...NAKAMURA Usaku3 years v2_7_8commit 1f4d455848...NAKAMURA Usaku3 years v3_2_2commit e51014f9c0...NARUSE, Yui3 years v3_1_4commit 957bb7cb81...Hiroshi SHIBATA3 years v3_2_1commit 31819e82c8...NARUSE, Yui3 years v3_2_0commit a528908271...NARUSE, Yui3 years v3_2_0_rc1commit 81e274c990...Lars Kanis3 years v2_7_7commit 168ec2b1e5...NAKAMURA Usaku4 years v3_0_5commit ba5cf0f7c5...Kazuki Yamaguchi4 years v3_1_3commit 1a6b16756e...nagachika4 years v3_2_0_preview3commit 28611be6ee...Hiroshi SHIBATA4 years v3_2_0_preview2commit 35cfc9a3bb...Kevin Newton4 years v2_6_10commit 7b4ea5bb73...usa4 years v3_0_4commit 3fa771dded...nagachika4 years v2_7_6commit c9c2245c0a...NAKAMURA Usaku4 years v3_1_2commit 4491bb740a...NARUSE, Yui4 years v3_2_0_preview1commit f801386f0c...Nobuyoshi Nakada4 years v3_1_1commit 53f5fc4236...NARUSE, Yui4 years v3_1_0commit fb4df44d16...NARUSE, Yui4 years v2_6_9commit 8e26731f9e...usa5 years v2_7_5commit f69aeb8314...NAKAMURA Usaku5 years v3_0_3commit 3fb7d2cadc...nagachika5 years v3_1_0_preview1commit 5a3b2e6141...Nobuyoshi Nakada5 years v2_7_4commit a21a3b7d23...Yusuke Endoh5 years v2_6_8commit 768423edc2...usa5 years v3_0_2commit 0db68f0233...nagachika5 years v2_7_3commit 6847ee089d...nagachika5 years v3_0_1commit 0fb782ee38...Nobuyoshi Nakada5 years v2_6_7commit 930143880a...usa5 years v2_5_9commit ee47403ce0...usa5 years v3_0_0commit 95aff21468...TAKANO Mitsuhiro5 years v3_0_0_rc2commit a89932799c...NARUSE, Yui5 years v3_0_0_rc1commit 8680ae9cbd...Nobuyoshi Nakada5 years v3_0_0_preview2commit d7a16670c3...Nobuyoshi Nakada5 years v2_7_2commit 5445e04352...nagachika6 years v3_0_0_preview1commit 0096d2b895...Koichi Sasada6 years v2_5_8commit 4992d9fd70...usa6 years v2_4_10commit 27f6ad737b...usa6 years v2_6_6commit 27958c2bd6...nagachika6 years v2_7_1commit a0c7c23c9c...NARUSE, Yui6 years v2_7_0commit 647ee6f091...aycabta6 years v2_7_0_rc2commit 75acbd5f00...Yusuke Endoh6 years v2_7_0_rc1commit 8a40dce0ff...git6 years v2_7_0_preview3commit b563439274...Nobuyoshi Nakada7 years v2_7_0_preview2commit 02aadf1032...Yusuke Endoh7 years v2_4_9commit 7c94ba3401...usa7 years v2_4_8commit 52f881b82a...usa7 years v2_5_7commit 1c39daae0f...usa7 years v2_6_5commit 37c2cd3fa4...nagachika7 years v2_6_4commit 6315e42c22...nagachika7 years v2_5_6commit 189a36cfab...usa7 years v2_4_7commit c914780585...usa7 years v1_0_971003commit 7ad198827b...Yukihiro Matsumoto7 years v1_0_971015commit 2a4ba10e2d...Yukihiro Matsumoto7 years v1_0_971021commit 9b01ce6954...Yukihiro Matsumoto7 years v1_0_971118commit cfd31fa21b...Yukihiro Matsumoto7 years v1_0_971125commit ab261638f5...Yukihiro Matsumoto7 years v1_0_971204commit fb0fe24512...Yukihiro Matsumoto7 years v1_0_971209commit 66541bbb36...Yukihiro Matsumoto7 years v1_0_971225commit 4207990990...Yukihiro Matsumoto7 years v0_71commit 4e65eab7ab...Yukihiro Matsumoto7 years v0_72commit 11e21a36bc...Yukihiro Matsumoto7 years v0_73commit b2420d8ffa...Yukihiro Matsumoto7 years v0_76commit 8bf1c909dc...Yukihiro Matsumoto7 years v0_95commit fca49a8a69...Yukihiro Matsumoto7 years v0_99_4_961224commit 554b989ba1...Yukihiro Matsumoto7 years v1_0_961225commit ce930d0429...Yukihiro Matsumoto7 years v1_0_971002commit 10d21745c8...Yukihiro Matsumoto7 years v0_62commit b3f9ba5a37...Yukihiro Matsumoto7 years v0_63commit bd0c733b77...Yukihiro Matsumoto7 years v0_64commit 5d828b25d4...Yukihiro Matsumoto7 years v0_65commit 897cf06695...Yukihiro Matsumoto7 years v0_66commit c080fb6d10...Yukihiro Matsumoto7 years v0_67commit 2f106ab85c...Yukihiro Matsumoto7 years v0_68commit 881c5a9c32...Yukihiro Matsumoto7 years v0_69commit d349889e77...Yukihiro Matsumoto7 years v0_50commit 6e30904136...Yukihiro Matsumoto7 years v0_51commit eed5c920dd...Yukihiro Matsumoto7 years v0_52commit 173976c97c...Yukihiro Matsumoto7 years v0_54commit 29f237a8b1...Yukihiro Matsumoto7 years v0_55commit c31025779d...Yukihiro Matsumoto7 years v0_56commit 4dfd93c72a...Yukihiro Matsumoto7 years v0_60commit 00e36aa09f...Yukihiro Matsumoto7 years v0_49commit 200e0ee2fd...Yukihiro Matsumoto7 years v2_7_0_preview1commit c55db6aa27...git7 years v2_6_3commit 257fda2518...naruse7 years v2_4_6commit 5b36edf4ca...usa7 years v2_5_5commit f11c0b253c...nagachika7 years v2_5_4commit 1a84920668...nagachika7 years v2_6_2commit 300089b723...naruse7 years v2_6_1commit e6d1c72bec...naruse7 years v2_6_0commit c1af7b1e1d...naruse7 years v2_6_0_rc2commit c54428bbd7...naruse7 years v2_6_0_rc1commit c7ee7e4205...naruse8 years v2_6_0_preview3commit 7ccad5680d...naruse8 years v2_5_3commit c4b6652223...nagachika8 years v2_4_5commit a0143aa5e4...usa8 years v2_3_8commit 8d23556886...usa8 years v2_5_2commit bf508be28b...nagachika8 years v2_6_0_preview2commit 6f59db30c1...naruse8 years v2_5_1commit 85883dc393...naruse8 years v2_3_7commit 9bfe7fc5cb...usa8 years v2_2_10commit 933bb2b8b5...usa8 years v2_4_4commit a8197e08f5...nagachika8 years v2_6_0_preview1commit ce0e3fc1b1...naruse8 years v2_5_0commit 4e0a512972...naruse8 years v2_3_6commit 2551734626...usa8 years v2_2_9commit 72113d58cd...usa8 years v2_4_3commit a5ec07c73f...nagachika8 years v2_5_0_rc1commit c6f401b6b8...naruse8 years v2_5_0_preview1commit f11fbd79fd...naruse9 years v2_2_8commit f3c3c788aa...usa9 years v2_3_5commit e07613e27e...usa9 years v2_4_2commit 595af866bb...nagachika9 years v2_3_4commit 4bd69735af...nagachika9 years v2_2_7commit 530165c294...usa9 years v2_4_1commit 820605ba3c...naruse9 years v2_4_0commit d4bb726b71...naruse9 years v2_4_0_rc1commit 55b2febff0...naruse9 years v2_3_3commit c91cb76f8d...nagachika10 years v2_2_6commit 1c091e3480...usa10 years v2_3_2commit 9d222264d5...nagachika10 years v2_4_0_preview3commit 81234c5eca...naruse10 years v2_4_0_preview2commit e11c22602a...naruse10 years v2_4_0_preview1commit 8183c05322...naruse10 years v2_2_5commit 449169fd8c...usa10 years v2_3_1commit 5827d8e887...nagachika10 years v2_1_10commit 410b031acb...usa10 years v2_1_9commit 22b2eface0...usa10 years v2_3_0commit d40ea2afa6...naruse10 years v2_0_0_648commit 03ec9ed5c9...usa10 years v2_1_8commit 4876b9a68c...usa10 years v2_2_4commit 9081c2c61a...nagachika10 years v2_3_0_preview2commit e3434401ac...naruse10 years v2_3_0_preview1commit 9993701c7d...naruse11 years v2_2_3commit b8c7ea548a...nagachika11 years v2_1_7commit 0f664738e9...usa11 years v2_0_0_647commit c60c15f371...usa11 years v2_0_0_645commit 5dfbc71593...usa11 years v2_1_6commit fe8cc13685...usa11 years v2_2_2commit a9721a2596...nagachika11 years v2_2_1commit 10bc9b85cb...naruse11 years v2_0_0_643commit 5b16662562...usa11 years v2_2_0commit 7393bf6a5c...naruse11 years v2_2_0_rc1commit 050b43acce...naruse11 years v2_2_0_preview2commit 2e968a2338...naruse12 years v2_0_0_598commit 52fda370bc...usa12 years v1_9_3_551commit a32f378924...usa12 years v2_1_5commit 02560c6a79...nagachika12 years v2_0_0_594commit 34b929aeb3...usa12 years v2_1_4commit 0026b21550...nagachika12 years v1_9_3_550commit abd7e6526f...usa12 years v2_1_3commit 63858b8d25...nagachika12 years v2_0_0_576commit f1f3fe11d9...usa12 years v2_2_0_preview1commit ac98aa3101...naruse12 years v1_9_3_547commit b75e21b2bc...usa12 years v2_0_0_481commit 3eae974b3c...usa12 years v2_1_2commit faba7187c5...nagachika12 years v2_0_0_451commit 6d64b00091...nagachika12 years v2_1_1commit 80b4d996e7...naruse12 years v1_9_3_545commit c7306a6eca...usa12 years v2_1_0commit 3603063e43...naruse12 years v2_1_0_rc1commit 9881a183bd...naruse12 years v2_1_0_preview2commit 834679d12c...naruse13 years v1_9_3_484commit 71b69b4120...usa13 years v2_0_0_353commit 609cdd3236...nagachika13 years v2_0_0_352commit e438ab420e...nagachika13 years v1_9_3_483commit e0b7e4bc22...usa13 years v2_1_0_preview1commit 928c4a92de...naruse13 years v1_8_7_374commit 83c8cd7199...shyouhei13 years v1_8_7_373commit 1c7b7da575...shyouhei13 years v1_9_3_448commit 4cf80d0c24...usa13 years v2_0_0_247commit a921f0ec57...nagachika13 years v1_9_3_429commit 5266a83418...usa13 years v1_9_3_426commit e76eb06feb...usa13 years v2_0_0_195commit e0030c175a...nagachika13 years v2_0_0_0commit 22cc613086...mame13 years v1_9_3_392commit fd5c678ff7...usa13 years v2_0_0_rc2commit 324fab490a...mame13 years v1_9_3_385commit b0104369bc...usa13 years v1_9_3_384commit 513746f662...usa13 years v1_9_3_383commit 076ff3b10c...usa13 years v1_9_3_374commit 92e872fa45...usa13 years v2_0_0_rc1commit ca6ccd436b...mame13 years v1_9_3_362commit 99fa4b0ea6...usa13 years v1_9_3_361commit 8a31db57d8...usa13 years v1_9_3_360commit 7b91c87317...usa13 years v2_0_0_preview2commit eb57022d05...mame14 years v1_9_3_327commit c49ae7ae02...usa14 years v1_9_3_326commit 40f7da0658...usa14 years v2_0_0_preview1commit 9f51be4b00...naruse14 years v1_9_3_286commit 6c55027f98...usa14 years v1_9_3_284commit 400b5d3a91...usa14 years v1_9_3_283commit 9089f9aad6...usa14 years v1_8_7_371commit 0ef2a114b5...shyouhei14 years v1_8_7_370commit 6b7998db38...shyouhei14 years v1_8_7_369commit c2086e5c29...shyouhei14 years v1_9_2_320commit ea0b32f984...naruse14 years v1_9_3_195commit 220774485f...naruse14 years v1_9_3_194commit 86f774fa1c...naruse14 years v1_9_2_318commit c2835192bf...yugui14 years v1_9_2_381commit bf72643bed...yugui14 years v1_9_3_125commit 03817dbe54...naruse14 years v1_8_7_358commit e2701232a6...shyouhei14 years v1_8_7_357commit c88cffd972...shyouhei14 years v1_9_3_0commit 7da63cd80f...yugui15 years v1_9_3_rc1commit 493f8a1ce3...yugui15 years v1_9_3_preview1commit c8c4432f1c...yugui15 years v1_9_2_290commit 866f369446...yugui15 years v1_8_7_352commit 0b9eba1365...shyouhei15 years v1_8_7_334commit 7ca6f05238...shyouhei15 years v1_9_2_180commit 6df1763876...yugui15 years v1_9_1_431commit e3e042fa3c...yugui15 years v1_9_2_136commit dc098a569e...yugui15 years v1_8_7_330commit baf67e963c...shyouhei15 years v1_8_6_420commit e17aaaf2d5...wyhaines16 years v1_9_2_0commit 02a892e48d...yugui16 years v1_8_7_302commit 6f7a49e480...shyouhei16 years v1_8_7_301commit 4b3ae77dbe...shyouhei16 years v1_9_1_430commit 3682d3e3ca...yugui16 years v1_9_2_rc2commit 0d4130f35f...yugui16 years v1_9_2_rc1commit 3ce09e0881...yugui16 years v1_9_1_429commit a10e69ed61...yugui16 years v1_8_7_299commit 54956f6bd1...shyouhei16 years v1_8_7_297commit 1327933229...shyouhei16 years v1_9_2_preview3commit fd925eb601...yugui16 years v1_8_6_399commit 9f1e7049db...wyhaines16 years v1_8_6_398commit 5fc3475fe9...wyhaines16 years v1_8_6_388commit fb05572f86...wyhaines16 years v1_9_1_378commit 7b43190d4d...yugui16 years v1_8_7_249commit f0df890559...shyouhei16 years v1_8_7_248commit a42e0e4624...shyouhei16 years v1_9_1_376commit 3fae03e87b...yugui17 years v1_9_2_preview2commit 0a39e25e55...yugui17 years v1_8_6_383commit e1a5c3a10e...wyhaines17 years v1_8_7_190commit f7488de590...shyouhei17 years v1_8_7_189commit f24c6138ac...shyouhei17 years v1_8_7_188commit 5ca4a9a370...shyouhei17 years v1_8_6_381commit 987a68fb9c...wyhaines17 years v1_8_7_187commit aa8a9a278a...shyouhei17 years v1_9_2_preview1commit f579e0909a...yugui17 years v1_9_1_243commit 3a058bd650...yugui17 years v1_8_7_185commit c694a35b16...shyouhei17 years v1_8_7_184commit 429b6a8e29...shyouhei17 years v1_8_7_183commit cd69c649ab...shyouhei17 years v1_8_7_182commit 2947f3f037...shyouhei17 years v1_8_7_181commit d5c908fecf...shyouhei17 years v1_8_7_180commit 5853ee94ec...shyouhei17 years v1_8_7_179commit af042106d4...shyouhei17 years v1_8_7_178commit bf8338ce69...shyouhei17 years v1_8_7_177commit 50fa0abfce...shyouhei17 years v1_8_7_176commit 0adaa398b0...shyouhei17 years v1_8_7_175commit 5e367f2e80...shyouhei17 years v1_8_7_174commit 9a2f2bacbf...shyouhei17 years v1_8_6_369commit dc7b7c574f...wyhaines17 years v1_8_7_173commit cb3115f107...shyouhei17 years v1_8_7_172commit ba88e96839...shyouhei17 years v1_8_7_171commit 987c28d217...shyouhei17 years v1_8_7_170commit 2292604aa9...shyouhei17 years v1_8_7_169commit 2ba13ff384...shyouhei17 years v1_8_7_168commit a0a0c2c1a5...shyouhei17 years v1_8_7_167commit 1240243343...shyouhei17 years v1_8_7_166commit 95be9d5bfe...shyouhei17 years v1_8_7_165commit c91a14b7e4...shyouhei17 years v1_8_7_164commit e8b938bb7e...shyouhei17 years v1_8_7_163commit f46fa3b74a...shyouhei17 years v1_8_7_162commit 184cd31e8c...shyouhei17 years v1_8_7_161commit 0d90b13373...shyouhei17 years v1_9_1_129commit fca64fcaf6...yugui17 years v1_9_1_128commit 97f4fb5621...yugui17 years v1_9_1_127commit 5f9594d1ee...yugui17 years v1_9_1_126commit b98b6ccdd4...yugui17 years v1_8_7_160commit e5131a6214...shyouhei17 years v1_8_7_159commit 38333d287f...shyouhei17 years v1_8_7_158commit 9689740ffe...shyouhei17 years v1_8_7_157commit 8a336dcf40...shyouhei17 years v1_8_7_156commit 4a1f00d299...shyouhei17 years v1_8_6_368commit e66ed66c6e...shyouhei17 years v1_8_7_155commit acf0a5f354...shyouhei17 years v1_8_6_367commit c42a7cfa2f...shyouhei17 years v1_8_7_154commit cc302d1390...shyouhei17 years v1_8_6_366commit d420e20325...shyouhei17 years v1_8_7_153commit bd1ccd8ed9...shyouhei17 years v1_8_6_365commit ef68a59d84...shyouhei17 years v1_8_7_152commit 17ff30ff0a...shyouhei17 years v1_8_6_364commit 8d6b44147c...shyouhei17 years v1_8_7_151commit 722fed2e1d...shyouhei17 years v1_8_6_363commit f65407a2b0...shyouhei17 years v1_8_6_362commit d162ebbb30...shyouhei17 years v1_8_7_150commit faace3e65c...shyouhei17 years v1_8_6_361commit 3590390761...shyouhei17 years v1_8_7_149commit 63611010ae...shyouhei17 years v1_8_6_360commit b74ed437f3...shyouhei17 years v1_8_7_148commit 7902e1f019...shyouhei17 years v1_8_6_359commit 26d218b2d5...shyouhei17 years v1_8_7_147commit 2a75027d49...shyouhei17 years v1_8_6_358commit 3664c070d0...shyouhei17 years v1_8_7_146commit 387cd114e0...shyouhei17 years v1_8_6_357commit ffd60c4537...shyouhei17 years v1_8_7_145commit 6373a4cbdb...shyouhei17 years v1_8_6_356commit 19e7e8d94b...shyouhei17 years v1_8_7_144commit 61aef0611f...shyouhei17 years v1_8_6_355commit 8f9980eb2b...shyouhei17 years v1_8_7_143commit b5ece882d4...shyouhei17 years v1_8_6_354commit ec9ff8bad4...shyouhei17 years v1_8_7_142commit 764da50905...shyouhei17 years v1_8_6_353commit f448fcf706...shyouhei17 years v1_8_7_141commit b158cc31c7...shyouhei17 years v1_8_6_352commit 8122d91bbd...shyouhei17 years v1_8_7_139commit d1d4d976eb...shyouhei17 years v1_8_6_351commit 697c6a0298...shyouhei17 years v1_8_7_138commit 5de05416b2...shyouhei17 years v1_8_6_350commit ee21eebecc...shyouhei17 years v1_8_7_137commit 7863eb3c47...shyouhei17 years v1_8_7_136commit e4d43793a2...shyouhei17 years v1_8_6_349commit 1d1ada0af7...shyouhei17 years v1_8_7_135commit 64b25ae93a...shyouhei17 years v1_8_6_348commit 906b5713be...shyouhei17 years v1_8_7_134commit cde6b6fa8c...shyouhei17 years v1_8_6_347commit 0d96549119...shyouhei17 years v1_8_7_133commit 25f8a9290b...shyouhei17 years v1_8_6_346commit 35ba2a8036...shyouhei17 years v1_8_7_132commit 52d0a3f30d...shyouhei17 years v1_8_6_345commit 13f0ea6b4f...shyouhei17 years v1_8_7_131commit c4ab7565f4...shyouhei17 years v1_8_6_344commit 8ab731c784...shyouhei17 years v1_8_7_130commit 845eb49f92...shyouhei17 years v1_8_6_343commit a84b51039b...shyouhei17 years v1_8_7_129commit eecd3236ab...shyouhei17 years v1_8_6_342commit c31902e5fe...shyouhei17 years v1_8_7_128commit 4e77a44287...shyouhei17 years v1_8_7_127commit c70f38ce4c...shyouhei17 years v1_8_6_341commit 2b025919df...shyouhei17 years v1_8_7_126commit 5e9e9f107a...shyouhei17 years v1_8_6_340commit ff91033c72...shyouhei17 years v1_8_7_125commit 4a49ea81e7...shyouhei17 years v1_8_6_339commit 22f1ad08bc...shyouhei17 years v1_8_7_124commit 66b8c25400...shyouhei17 years v1_8_6_338commit 1cc10bc669...shyouhei17 years v1_8_7_123commit f9564d2909...shyouhei17 years v1_8_6_337commit cc221f0301...shyouhei17 years v1_8_7_122commit a60be7b301...shyouhei17 years v1_8_6_336commit e4fa97b904...shyouhei17 years v1_8_7_121commit edca139410...shyouhei17 years v1_8_6_335commit 0d31efac19...shyouhei17 years v1_8_7_120commit 6934704aae...shyouhei17 years v1_8_6_334commit a3a759e0e2...shyouhei17 years v1_8_7_119commit 78134f174b...shyouhei17 years v1_8_6_333commit 5f548c706c...shyouhei17 years v1_3_1a_990201commit 80438705d6...eban17 years v1_8_7_118commit e7a357398a...shyouhei17 years v1_8_6_332commit 561b618f04...shyouhei17 years v1_8_7_117commit f60ff2ba54...shyouhei17 years v1_8_6_331commit 0343776845...shyouhei17 years v1_8_7_116commit 3d7a6da208...shyouhei17 years v1_8_6_330commit 332ac01624...shyouhei17 years v1_8_7_115commit 3b100d790c...shyouhei17 years v1_8_6_329commit 4c302e53f4...shyouhei17 years v1_8_7_114commit f78e320cb5...shyouhei17 years v1_8_6_328commit 454c6d04b9...shyouhei17 years v1_8_7_113commit d4291e8c97...shyouhei17 years v1_8_6_327commit 9aca470d9a...shyouhei17 years v1_8_7_112commit 17b3c88551...shyouhei17 years v1_8_6_326commit 074dcd52fb...shyouhei17 years v1_8_7_111commit 3d67b479dc...shyouhei17 years v1_8_6_325commit 699967becd...shyouhei17 years v1_8_7_110commit 783387a0eb...shyouhei17 years v1_8_6_324commit 0514ce3bdc...shyouhei17 years v1_8_7_109commit 053ab7666e...shyouhei17 years v1_8_6_323commit e664583cb0...shyouhei17 years v1_8_7_108commit b6aebfd8df...shyouhei17 years v1_8_6_322commit 8f25defb9f...shyouhei17 years v1_8_7_107commit dd31c65b1e...shyouhei17 years v1_8_6_321commit 88dc3f1294...shyouhei17 years v1_8_7_106commit a8d5b82fd5...shyouhei17 years v1_8_6_320commit 9c2ea80072...shyouhei17 years v1_8_7_105commit 3af0bf1e13...shyouhei17 years v1_8_6_319commit 8362ff6a31...shyouhei17 years v1_8_7_104commit 7ef107be59...shyouhei17 years v1_8_6_318commit 510d301e9b...shyouhei17 years v1_8_7_103commit 79ee6c3c09...shyouhei17 years v1_8_6_317commit 7d5891866a...shyouhei17 years v1_8_7_102commit 5ee0005d57...shyouhei17 years v1_8_6_316commit e376ca08ae...shyouhei17 years v1_9_1_0commit 92135776ce...yugui17 years v1_8_7_101commit 116c6abc7f...shyouhei17 years v1_8_6_315commit 9ba878828a...shyouhei17 years v1_8_7_100commit 0dd56cdaac...shyouhei17 years v1_8_6_314commit ab5f89dcc6...shyouhei17 years v1_8_7_99commit cfcf3c5676...shyouhei17 years v1_8_6_313commit 029a57d3a6...shyouhei17 years v1_8_7_98commit 40ea942030...shyouhei17 years v1_8_6_312commit 8331f47136...shyouhei17 years v1_8_7_97commit 003299109d...shyouhei17 years v1_8_6_311commit 770917a82b...shyouhei17 years v1_8_7_96commit 46b1a637c3...shyouhei17 years v1_8_6_310commit 1de9ed2552...shyouhei17 years v1_8_7_95commit 2902fc4427...shyouhei17 years v1_8_6_309commit 4ce346da03...shyouhei17 years v1_8_7_94commit f333627138...shyouhei17 years v1_8_6_308commit d245d5dd4c...shyouhei17 years v1_8_7_93commit ee6628ebfb...shyouhei17 years v1_8_6_307commit c07988413a...shyouhei17 years v1_8_7_92commit 974022422a...shyouhei17 years v1_8_6_306commit be88a6c3cc...shyouhei17 years v1_8_7_91commit bf1c8ddee6...shyouhei17 years v1_8_6_305commit efb0ade229...shyouhei17 years v1_9_1_rc2commit 77aef81497...yugui17 years v1_8_7_90commit 6a596951e4...shyouhei17 years v1_8_6_304commit fd37ffb1fe...shyouhei17 years v1_8_7_89commit 8b1ffd8754...shyouhei17 years v1_8_6_303commit b9d7fa64fa...shyouhei17 years v1_8_7_88commit 613ffdc169...shyouhei17 years v1_8_6_302commit 6b405be78c...shyouhei17 years v1_8_6_301commit dc666de99a...shyouhei17 years v1_8_7_87commit 5978f223cc...shyouhei17 years v1_8_6_300commit 142e221577...shyouhei17 years v1_8_7_86commit 423ae72229...shyouhei17 years v1_8_6_299commit 4fb91e03c1...shyouhei17 years v1_8_7_85commit ef0c3e72ae...shyouhei17 years v1_8_6_298commit dbd6e81191...shyouhei17 years v1_8_7_84commit 82dec0bfef...shyouhei17 years v1_8_6_297commit 9bf208a246...shyouhei17 years v1_8_7_83commit 69a96687cc...shyouhei17 years v1_8_6_296commit 4483acc2f3...shyouhei17 years v1_8_7_82commit 788f9b1de6...shyouhei17 years v1_8_6_295commit 8aac1c6f90...shyouhei17 years v1_8_7_81commit 4da4960087...shyouhei17 years v1_8_6_294commit 2a0ae55ab4...shyouhei17 years v1_8_7_80commit 6ab7be19a8...shyouhei17 years v1_8_6_293commit 00a7de347c...shyouhei17 years v1_8_7_79commit cbd673c2d3...shyouhei17 years v1_8_6_292commit e3ffffb4ef...shyouhei17 years v1_8_7_78commit e035b52ae7...shyouhei17 years v1_8_6_291commit 54b9129766...shyouhei17 years v1_8_7_77commit 2ebfc7740e...shyouhei17 years v1_8_6_290commit 84246df728...shyouhei17 years v1_8_7_76commit 4a5586cea7...shyouhei17 years v1_8_6_289commit 3bd5c60214...shyouhei17 years v1_8_7_75commit b9266b0e3c...shyouhei17 years v1_8_7_74commit f78b050775...shyouhei17 years v1_8_6_288commit 86b4f6a63c...shyouhei17 years v1_9_1_rc1commit 47f8bace55...yugui17 years v1_9_1_preview2commit d02a2f8d4a...yugui18 years v1_8_7_73commit 09c326b480...kazu18 years v1_9_1_preview1commit 708ff4db46...yugui18 years v1_9_0_5commit 772fec36ee...yugui18 years v1_9_0_4commit d0233291bc...yugui18 years v1_8_7_72commit 773d4e5f58...shyouhei18 years v1_8_6_287commit 8655534221...shyouhei18 years v1_8_7_71commit e6bed7daf5...shyouhei18 years v1_8_6_286commit a3e9088cec...shyouhei18 years v1_8_7_70commit f1525b44e6...shyouhei18 years v1_8_7_69commit 1950fc0f62...shyouhei18 years v1_8_6_285commit bcaa46851c...shyouhei18 years v1_8_7_68commit 892e448962...shyouhei18 years v1_8_6_284commit 8ad0cedbf4...shyouhei18 years v1_8_7_67commit e0bc9f46b0...shyouhei18 years v1_8_6_283commit 400ffcf094...shyouhei18 years v1_8_7_66commit 3b7d5a17ad...shyouhei18 years