backported macros for compatiblity from trunk.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@24192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* intern.h (Init_stack): make to call ruby_init_stack.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
FIXNUM_MAX to make it possible to convert to double accurately.
It assumes FLT_RADIX is 2.
fix RubyForge bug #14102.
backported from 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Add a new exception class StopIteration, which breaks Kernel#loop
iteration when raised; backported from 1.9.
* enumerator.c (enumerator_next, enumerator_rewind): Implement
#next and #rewind using the "generator" library.
* lib/generator.rb: Implement Enumerable::Enumerator#next and
#rewind.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ext/enumerator, common.mk (OBJS, enumerator.$(OBJEXT)): Make the
enumerator module built-in,
* enumerator.c: New method: Enumerable::Enumerator#with_index.
* enum.c (enum_each_with_index): Enumerable#each_with_index now
returns an enumerator instead of raising an exception if no
block is given. Enumerable#enum_with_index, formerly defined in
the enumerator module, is kept as an alias to each_with_index
for backward compatibility.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
encoding aware globbing support in from trunk. Dir.[] and
Dir.glob() can now take many patterns in an array. Minor fixes
will follow.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
sandbox hook to save and restore sandbox state.
* eval.c (thread_no_ensure): added THREAD_NO_ENSURE thread flag.
* eval.c (rb_thread_kill_bang): Thread#kill! uses the above flag
to circumvent ensure, in order to prevent endless loops.
[ruby-core:08768]
* eval.c (rb_thread_kill): fix Thread#kill docs, which returns
the thread object in all cases.
* node.h: expose the rb_jmpbuf_t and rb_thread_t structs, along
with the thread flags. used by the sandbox extension.
* ruby.h: extern rb_eThreadError, so sandbox can swap it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
may not be defined to shut up gcc's -Wundef warnings.
[ruby-core:08447]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
from MORITA Naoyuki <mlgetter at kidou.sakura.ne.jp>.
[ruby-dev:29028]
* parse.y (then): we'd like to reserve colon here for the future.
warning added.
* ruby.h: export rb_cMethod. [ruby-talk:201259]
* ext/bigdecimal/bigdecimal.c: Allows '_' to appear within
digits. [ruby-dev:28872]
* ext/bigdecimal/lib/bigdecimal/util.rb: Bug in to_r reported by
[ruby-list:42533] fixed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
macros moved to extconf.h.
* ext/extmk.rb (extract_makefile, extmk): made RUBY_EXTCONF_H and
EXTSTATIC permanent.
* ext/{dbm,digest/*,socket,zlib}/extconf.rb: used $defs and $INCFLAGS.
* {bcc32,win32,wince}/Makefile.sub (COMPILE_C, COMPILE_CXX): added
$(INCFLAGS).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
values have VALUE type. there is an environment where sizeof(VALUE)
!= sizeof(int) like IA64. if 32bit integer (Qtrue) is passed to ANYARGS
and received by 64bit integer (VALUE), upper bits may have garbage value.
[ruby-dev:27513]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
LONG_LONG instead if SIZEOF_LONG < SIZEOF_VOIDP.
[ruby-talk:149645]
* ruby.h: use LONG_LONG to simplify the change.
[ruby-talk:149645]
* eval.c (rb_f_throw): replace all '0x%lx' by '%p'.
[ruby-talk:149553]
* missing/vsnprintf.c (BSD_vfprintf): '%p' need to handle 64bit
size pointer. [ruby-talk:149553]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to get rid of types which might not be defined yet. [ruby-dev:26165]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
remove AC_TYPE_UID_T. fixed: [ruby-core:04745]
* defines.h: Remove pid_t typedef.
* ruby.h: Define rb_pid_t, rb_gid_t and rb_uid_t in accordance with
the available system types.
* process.c: Change instances of pid_t and gid_t to their rb_*
counterparts.
* ext/pty/pty.c: Change pid_t to rb_pid_t.
* vms/config.h: Define HAVE_{P,G,U}ID_T to 1.
* win32/Makefile.sub: Remove #define for {g,u}id_t.
* win32/win32.c: Change pid_t to rb_pid_t.
* wince/Makefile.sub: Remove #define for {g,u}id_t.
* wince/sys/types.h: Remove definitions of {p,g,u}id_t.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.h: missing.h is now prerequisite to intern.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* defines.h, rubysig.h, signal.c: removed macro handling which
should be done in configure.
* configure.in (intrinsics.h): check if present.
* ruby.h: include intrinsics.h if available.
* bignum.c, marshal.c: include ieeefp.h if available.
* missing.h (isinf): define as a macro if finite() and isnan()
are available. [ruby-core:02032]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Solaris. [ruby-core:01921]
* file.c (rb_stat_inspect): adjust format specifier.
* parse.c (arg_prepend): nodetype() is for debug use.
* ruby.h (ISASCII, etc): cast to int to get rid of warning.
* ruby.h (alloca.h): include even in GCC. [ruby-core:01925]
* ext/bigdecimal/bigdecimal.c (GetVpValue): adjust format
specifier.
* ext/bigdecimal/bigdecimal.c (BigDecimal_prec, BigDecimal_coerce,
BigDecimal_divmod): use rb_assoc_new() to suppress memory usage.
* ext/bigdecimal/bigdecimal.c (BigDecimal_split): ditto.
* ext/dl/sym.c (rb_dlsym_guardcall): guard itself should be
volatile.
* ext/iconv/iconv.c (iconv_convert): ensure actual parameter with
format specifier.
* ext/pty/pty.c (MasterDevice, SlaveDevice, deviceNo): do not
define unless used.
* ext/pty/pty.c (getDevice): get rid of warning.
* ext/socket/socket.c (port_str, sock_s_getaddrinfo,
sock_s_getnameinfo): FIX2INT() now returns long.
* ext/socket/socket.c (init_inetsock_internal): uninitialized
variable.
* ext/syck/rubyext.c (syck_parser_assign_io): add prototype.
* ext/syck/rubyext.c (rb_syck_mktime, yaml_org_handler): use
ISDIGIT() instead of isdigit() to avoid warnings and for
platforms which don't support non-ascii charater.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
hton32 as well. [ruby-talk:85377]
* pack.c (swap16): swap 2 bytes no matter how big short is on the
platform. swap32() is also prepared.
* numeric.c (rb_num2int): returns long to preserve information.
rb_fix2int(), rb_num2uint(), rb_fix2uint() as well.
[ruby-talk:85377]
* numeric.c (rb_num2uint): should not check for value range if the
source value is negative.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* define is_ruby_native_thread() macro when not HAVE_NATIVETHREAD
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e