Граф коммитов

620 Коммитов

Автор SHA1 Сообщение Дата
nobu 6060c3a4b6 * include/ruby/win32.h (rb_w32_uchdir): missing prototype.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-04 04:26:43 +00:00
usa 6c28f99d88 * merge some patches from win32-uncode-test branch.
see #1685.

* file.c, include/ruby/intern.h (rb_str_encode_ospath): new function
  to convert encoding for pathname.

* win32.c, include/ruby/win32.h (rb_w32_ulink, rb_w32_urename,
  rb_w32_ustati64, rb_w32_uopen, rb_w32_uutime, rb_w32_uchdir,
  rb_w32_umkdir, rb_w32_urmdir, rb_w32_uunlink): new functions to
  accept UTF-8 path.

* win32/win32.c (rb_w32_opendir, link, rb_w32_stati64, rb_w32_utime,
  rb_w32_unlink): use WCHAR path internally.

* file.c (rb_stat, eaccess, access_internal, rb_file_s_ftype,
  chmod_internal, rb_file_chmod, rb_file_chown, utime_internal,
  rb_file_s_link, unlink_internal, rb_file_s_rename): use UTF-8 version
  functions on Win32.

* file.c (apply2files, rb_stat, rb_file_s_lstat, rb_file_symlink_p,
  rb_file_readable_p, rb_file_writable_p, rb_file_executable_p,
  check3rdbyte, rb_file_identical_p, rb_file_chmod, rb_file_chown,
  rb_file_s_link, rb_file_s_symlink, rb_file_s_rename): call
  rb_str_encode_ospath() before passing the path to system.

* io.c (rb_sysopen): ditto.

* dir.c (dir_chdir, dir_s_mkdir, dir_s_rmdir): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-30 17:56:23 +00:00
nobu 790d6071c6 * include/ruby/ruby.h ({RSTRING,RSTRUCT,RBIGNUM}_LENINT): check long
to cast to int.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-28 07:45:00 +00:00
nobu 021e7b7f20 * include/ruby/win32.h (ftruncate): rename to get rid of conflict
with same name but non-LFS function on MinGW.  [ruby-core:24757]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-11 02:58:26 +00:00
usa 3b86c8c4ae * include/ruby/win32.h: include errno.h before defining errnos.
see [ruby-core:29314]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-08 05:25:10 +00:00
usa 727371f88a * include/ruby/win32.h: check definition existance before defining
errno macros.

* win32/win32.c (errmap): define winsock errors mappings.
  these are VC++10 support. see [ruby-core:29278]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-06 05:58:07 +00:00
usa 54da3ecbcb * include/ruby/win32.h, win32/win32.c (EWOULDBLOCK): VC10 already
defined EWOULDBLOCK.  based on a patch from Charlie Savage,
  see [ruby-core:29255]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-05 04:26:33 +00:00
naruse b919cb1d93 * include/ruby/ruby.h: replace snprintf and vsnprintf by
ruby_snprintf and ruby_vsnprintf. [ruby-dev:40909]

* configure.in: don't check snprintf(3) and vsnprintf(3).

* include/ruby/missing.h: don't delare snprintf and vsnprintf.

* include/ruby/ruby.h: include stdarg.h.

* sprintf.c: include vsnprintf.c

* vsnprintf.c: renamed from missing/vsnprintf.c.

* vsnprintf.c: remove useless ifdefs.

* win32/mkexports.rb: use ruby_snprintf and ruby_vsnprintf.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-04 01:10:53 +00:00
nobu 2f20718249 * include/ruby/ruby.h (InitVM): calls per-VM initialization in
single VM, but does nothing in MVM.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-01 20:38:38 +00:00
usa c530b9d60a * include/ruby/ruby.h (PRE_TIMET_PREFIX): define if configure doesn't
defines it.  [ruby-core:29190]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-01 03:06:07 +00:00
nobu 44e08324c7 * include/ruby/ruby.h (RUBY_{DEFAULT,NEVER}_FREE): added.
[ruby-dev:40889]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-01 00:54:37 +00:00
nobu 38af94c6ab * file.c (rb_file_dirname): split from rb_file_s_dirname.
* load.c (rb_f_require_relative): use absolute path instead of
  expanded path.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-30 09:26:09 +00:00
nobu c9e0df64b5 * ruby.h (rb_warning, rb_sys_warning): fixed typo in rdoc.
[ruby-core:28696]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-16 21:40:05 +00:00
nobu 43025927c6 * include/ruby/encoding.h (rb_str_conv_enc_opts): missing prototype.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-16 08:18:47 +00:00
nobu bf45c36d5f * include/ruby/encoding.h (ENC_TO_ENCINDEX): suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-16 05:06:19 +00:00
nobu b1bf026f48 * include/ruby/io.h (MakeOpenFile): finalize fptr get rid of
memory leak.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-13 03:26:18 +00:00
shugo d9fe7ef492 * load.c (rb_get_expanded_load_path): does not expand paths if all
the items in $: are absolute paths.  [ruby-core:28113]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-13 01:34:38 +00:00
nobu 1dcf1174ea * ruby.c (ruby_init_loadpath_safe, ruby_init_gems): set and remove
TMP_RUBY_PREFIX.

* variable.c (rb_mod_remove_const): new function.

* tool/compile_prelude.rb: split each preludes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-11 22:15:11 +00:00
matz db37773e13 * include/ruby/oniguruma.h: updated to follow Oniguruma 5.9.2.
* re.c (make_regexp): use onig_new() instead of onig_alloc_init().

* re.c (rb_reg_to_s): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-01 21:54:59 +00:00
muraken 5073155a17 * math.c (rb_eMathDomainError): new exception class for representing mathematical domain error instead of Errno::EDOM.
* math.c (domain_check, infinity_check): removed, no longer needed.
* math.c (math_atan2, math_acos, math_asin, math_acosh, math_atanh, math_log, math_log2, math_log10, math_sqrt, math_gamma, math_lgamma): mathematical domain errors are checked and raised before calling libm's functions.
* test/ruby/test_math.rb: updated for changes of maht.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-28 10:08:22 +00:00
akr 8c9024763f * pack.c: fix q and Q for big endian environments which have no
8 bytes integer type.
  (pack_pack): use rb_big_pack.
  (pack_unpack): use rb_big_unpack.

* include/ruby/intern.h (rb_big_pack): declared.
  (rb_big_unpack): ditto.

* bignum.c (rb_big_pack): new function.
  (rb_big_unpack): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-26 18:51:02 +00:00
nobu 27e492bec7 * marshal.c (r_object0): register regexp object before encoding
name.  [ruby-dev:40414]

* re.c (rb_reg_alloc, rb_reg_init_str): split from rb_reg_new_str.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-13 19:45:35 +00:00
nobu ccf67667b8 * version.c (RUBY_LIB, RUBY_*_LIB): moved from configures.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-25 08:36:14 +00:00
nobu 695c32a028 * include/ruby.h: removed duplication, added the macro for version.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-25 05:02:26 +00:00
nobu 23a4f81625 * configure.in: check for if struct timezone is defined.
* missing.h (struct timezone): define if not defined.

* win32/win32.h (struct timezone): defined in the newer w32api.
  [ruby-core:27515]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-12 21:54:47 +00:00
akr 853dd6cabe * prelude.rb (require_relative): use File.realpath. [ruby-dev:40040]
* include/ruby/intern.h: declare rb_dir_getwd.

* dir.c (rb_dir_getwd): copied from dir_s_getwd to export.
  (dir_s_getwd): use rb_dir_getwd.

* file.c (rb_file_s_realpath): new method File.realpath.
  (rb_file_s_realdirpath): new method File.realdirpath.

* lib/pathname.rb (Pathname#realpath): use File.realpath.
  (Pathname#realdirpath): use File.realdirpath.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-12 00:32:22 +00:00
naruse a3973ab1ba * string.c (rb_str_strlen): added. [ruby-dev:40028]
* include/ruby/intern.h (rb_str_strlen): declared.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-11 07:58:26 +00:00
yugui 295bc2fe25 removes the dtrace support. reverts r26239, r26238 and r26235.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-05 05:59:23 +00:00
yugui 72b199940d * trace.h: new file. wraps tracing mechanisms.
* defs/dtrace.d: new file. defined a dtrace provider "ruby".

* include/ruby/ruby.h (LIKELY): moved from vm.c.
  (UNLIKELY): ditto.
  (OBJSETUP): probe "object-create".
  (RUBY_EVENT_RESCUE): new event.

* vm_exec.c (DEBUG_ENTER_INSN): embeded a probe insn-entry into it.
  (DEBUG_END_INSN): insn-return.

* vm.c (LIKELY): moved into ruby.h.
  (UNLIKELY): ditto.
  (Init_BareVM): embeded a probe "raise" into it.

* variable.c (rb_class2name_without_alloc): new utility function.

* tool/rbinstall.rb (install?(:ext, :arch, :'ext-arch')): installs 
  dtrace.d if necessary.

* thread_pthread.c (add_signal_thread_list): probe "raise".
  (rb_thread_create_timer_thread): ditto.

* thread.c (rb_thread_schedule_rec): probes "thread-enter" and
  "thread-leave",
  (thread_start_func_2): ditto.
  (thread_cleanup_func): probe "thread-term"

* lib/mkmf.rb: supports dtrace postprocessor on making an extension.

* iseq.c (rb_vm_insn_name): new utility function.
  (rb_vm_insn_len): ditto.

* insns.def (hook): probes "method-etnry", "method-return", "line",
  and "rescue".

* compile.c (iseq_compile_each): adds a trace op for "rescue" probe.

* gc.c (garbage_collect): probes "gc-begin" and "gc-end".
  (obj_free): probe "object-free"
  (garbage_collect_with_gvl): probe "raise"
  (negative_size_allocation_error): ditto.
  (rb_memerror): ditto.

* eval.c (rb_rescue2): probe "rescue"
  (rb_longjmp): probe "raise"

* ext/probe/probe.c: new extension for application defined probes.

* ext/probe/extconf.rb: ditto.

* configure.in (--with-tracing-model): new option to choose a tracing
  mechanism.
  (DTRACE): new substitution. name of dtrace(1).
  (RUBY_TRACING_MODEL): new substitution.
  (DTRACE_OBJ): ditto.
  (MINIDTRACE_OBJ): ditto.
  (GOLFDTRACE_OBJ): ditto.
  (LIBRUBY_DTRACE_OBJ): ditto.
  (RUBY_DTRACE_POSTPROCESS): new macro. checks whether the dtrace on 
  the system needs postprocessing.
  (RUBY_DTRACE_BSD_BROKEN): new macro. checks whether the dtrace
  supports USDT.

* Makefile.in: 
  (DTRACE): new variable. name of dtrace(1).
  (TRACING_MODEL): new variable. name of the chosen tracing mechanism.
  (DTRACE_OBJ): same as the one in configure.in.
  (MINIDTRACE_OBJ): ditto.
  (GOLFDTRACE_OBJ): ditto.
  (LIBRUBY_DTRACE_OBJ): ditto.
  (CPPOUTFILE): new substitution. necessary for generating dtrace.d
  (trace_none.h): new target for TRACING_MODEL=none
  (RUBY_H_INCLUDES): appended a header for tracing.
  (distclean-local): also removes preprocessed version of dtrace.d
  ($(LIBRUBY_A)): needs $(LIBRUBY_DTRACE_OBJ) if dtrace needs 
  postprocessing.
  ($(PROGRAM)): ditto.
  (golf): ditto.
  (miniruby): ditto.
  ($(arch_hdrdir)/ruby/dtrace.d): new target. preprocessed verson 
  of defs/dtrace.d. generated if necessary.
  ($(arch_hdrdir)/ruby/trace_dtrace.h): new target.
  definition of probes.
  ($(LIBRUBY_DTRACE_OBJ)): new target. generated if dtrace needs 
  postprocessing.
  ($(DTRACE_OBJ)): ditto.
  ($(MINIDTRACE_OBJ)): ditto.
  ($(GOLFDTRACE_OBJ)): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-03 15:36:17 +00:00
naruse f9bef8b944 * include/ruby/ruby.h (RREGEXP_SRC_END): added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-30 10:44:10 +00:00
naruse 9db87ea5b9 * include/ruby/defines.h (INFINITY): this is float.
* include/ruby/defines.h (NAN): ditto.

* numericc.c (rb_infinity): change content as float.

* numericc.c (rb_nan): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-30 10:44:02 +00:00
naruse 7ed0640ffb Add Float::INFINITY and Float::NAN.
* numeric.c (Init_Numeric): Add Float::INFINITY and Float::NAN.
  [ruby-dev:1657] [ruby-dev:4760] [ruby-list:7023] [ruby-list:46690]
  [ruby-core:26632] [ruby-talk:41352] [ruby-talk:203333]

* include/ruby/defines.h (INFINITY): defined.

* include/ruby/defines.h (NAN): defined.

* include/ruby/util.h (ruby_div0): removed.

* numeric.c (fix_pow): use INFINITY and NAN instead of ruby_div0(1.0).

* marshal.c (r_object0): ditto.

* bignum.c (big_fdiv): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-29 07:05:39 +00:00
nobu e6a8408c2c * iseq.c (iseq_s_disasm): return nil for native methods.
[ruby-core:27226], [Bug#2499]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-23 06:22:48 +00:00
nobu 11aa6c4107 * marshal.c (w_object): dump instance variables when using
marshal_dump.   [ruby-core:24211]

* variable.c (rb_ivar_count): added.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-05 10:25:28 +00:00
akr ff9d908832 * include/ruby/ruby.h (rb_bug_errno): declared.
* include/ruby/intern.h (rb_strerrno): declaration removed.

* error.c (rb_strerrno): make it static.  return NULL for unknown
  errors.
  (rb_bug_errno): defined.

* thread_pthread.c: use rb_bug_errno.

* signal.c (ruby_signal): use rb_bug_errno.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-24 11:03:51 +00:00
nobu d7ffefb405 * error.c (rb_strerrno): constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-24 01:00:02 +00:00
akr 3302b8fff5 * include/ruby/intern.h (rb_strerrno): declared.
* template/known_errors.inc.tmpl: generate defined_error() and
  undefined_error() instead of set_syserr.

* error.c (Init_syserr): define defined_error() and undefined_error()
  to follow the above change.
  (rb_strerrno): defined.

* thread_pthread.c: show error message and errno macro name with
  rb_bug.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-24 00:26:52 +00:00
mame 9ea0bed1a3 * include/ruby/ruby.h (rb_classext_t): annotate @internal.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-15 16:59:31 +00:00
nobu 255578c7b5 * include/ruby/st.h (SIZEOF_ST_INDEX_T): moved from st.c for
Init_RandomSeed().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-04 07:06:13 +00:00
shyouhei 632aa7a0fc * include/ruby/ruby.h (NUM2CHR): prefix __extension__ for
braced-groups within expressions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-04 06:54:42 +00:00
nobu 22bd95ded4 * include/ruby/ruby.h (RSTRING_END): trivial optimization.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-29 19:47:28 +00:00
matz 0580ba0611 * array.c (rb_ary_to_ary): do not use #respond_to? to detect
to_ary.  Just call.  [ruby-core:23738]

* eval.c (rb_check_funcall): new function with method existence
  check.  returns Qundef when the method does not exist.

* enumerator.c (enumerator_rewind): just call method, using
  rb_check_funcall().  [ruby-core:23738]

* error.c (exc_equal): ditto.

* object.c (convert_type): ditto.

* error.c (rb_name_err_mesg_new): export function.

* eval.c (make_exception): ditto.

* io.c (pop_last_hash): return early when the last argument is nil.

* io.c (rb_io_puts): treat T_STRING specially for small
  optimization. 

* vm_eval.c (raise_method_missing): skip method call if possible
  using rb_method_basic_definition_p().

* vm_eval.c (method_missing): ditto.

* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_debug): test
  suites changed to ignore exceptions caused by just-call policy.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-29 04:55:10 +00:00
matz ba3bfda7a2 * hash.c (rb_hash_set_default_proc): checks arity of defalt_proc
of a Hash.  [ruby-core:26087]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-24 16:53:11 +00:00
usa a07dbf0ee9 * include/ruby/win32.h (finite, scalb): inline'ed non-standard
identifier macros.  [ruby-core:2234]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-20 07:43:17 +00:00
nobu 2503de61fc * include/ruby/ruby.h (RB_GC_GUARD_PTR): workaround for gcc
optimization.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-11 00:04:10 +00:00
nobu eac0bd9714 * include/ruby/ruby.h (ruby_exec_node): declared.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-10 23:48:15 +00:00
akr f65dbbd24a * ext/curses/curses.c: use rb_thread_blocking_region to avoid
rb_read_check.  This makes other threads runnable in getstr and
  wgetstr.
  (getch_func): extracted from curses_getch.
  (curses_getch): use rb_thread_blocking_region with getch_func.
  (getstr_func): extracted from curses_getstr.
  (curses_getstr): use rb_thread_blocking_region with getstr_func.
  (wgetch_func): extracted from window_getch.
  (window_getch): use rb_thread_blocking_region with wgetch_func.
  (wgetstr_func): extracted from window_getstr.
  (window_getstr): use rb_thread_blocking_region with wgetstr_func.

* include/ruby/io.h (rb_read_check): deprecated because it access
  internal of stdio.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-10 10:49:47 +00:00
nobu f87132b45f * include/ruby/intern.h (Init_jump): removed
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-10 07:28:15 +00:00
nobu d167cfd196 * include/ruby/ruby.h (rb_long2int): evalates the argument only
once.

* struct.c (rb_struct_alloc): check array length overflow.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-07 07:06:32 +00:00
usa 4e389756ec * win32/{setup.mak,Makefile.sub,win32.c},include/ruby/win32.h (RT_VER):
split compiler specification and runtime library specification.

* win32/Makefile.sub (LD_SHARED*, config.status): no need to embbed
  manifest if not exist.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-01 05:19:19 +00:00
akr 18a07e9d4b * include/ruby/intern.h (rb_struct_iv_get): deprecated because it is
not used and access internal structure.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-29 13:25:54 +00:00
naruse f7554133b2 * encoding.c (rb_enc_unicode_p): defined.
Returns 1 when the encoding is Unicode series
  other than UTF-7 else 0.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25142 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-29 00:34:00 +00:00
naruse e0af046ad0 * hash.c (rb_f_getenv): use rb_filesystem_str_new_cstr
instead of rb_str_new2.
  ENV['PATH'].encoding should be Filesystem Encoding
  because its content is related to filesystem.
  see [ruby-dev:39393]

* hash.c (env_fetch): ditto.

* string.c (rb_filesystem_str_new): defined.

* string.c (rb_filesystem_str_new_cstr): ditto.

* include/ruby/intern.h (rb_filesystem_str_new): added.

* include/ruby/intern.h (rb_filesystem_str_new_cstr): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-28 19:24:18 +00:00
naruse ff504d3cc9 * include/ruby/st.h: include inttypes.h and stdint.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-28 19:24:10 +00:00
duerst 9d7e47114c include/ruby/st.h: aligned prototype of st_hash_uint32 with function
definition (fixing compiling problem on cygwin)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-28 10:08:46 +00:00
nobu f2103ee4a9 * st.c: moved murmur hash from string.c. [ruby-dev:39376]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-26 14:29:13 +00:00
nobu f23486592a * include/ruby/intern.h (rb_hash_{start,uint32,uint,end}): fixed
prototypes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-26 07:26:46 +00:00
usa d70e9a5568 * win32/win32.c, include/ruby/win32.h (rb_w32_access): new function to
replace MSVCRT's access().
  [ruby-core:25761]

* file.c (eaccess): workaround for recent MSVCRT is no longer needed.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-25 07:04:25 +00:00
nobu 21367ae077 * include/ruby/ruby.h (rb_type): forward declaration to suppress a
warning.  a patch from Naohisa Goto at [ruby-dev:39350]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-18 15:02:21 +00:00
nobu d36c76dc71 * common.mk (eval.o): needs vm.h.
* eval.c (ruby_cleanup): destruct current VM before exit.

* gc.c (rb_objspace_free): free object space.

* vm.c (ruby_vm_destruct): destruct and free VM struct.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-18 07:29:17 +00:00
marcandre 1796522f10 * thread.c (rb_exec_recursive_outer, rb_exec_recursive): Added method to short-circuit to the outermost level in case of recursion
* test/ruby/test_thread.rb (test_recursive_outer): Test for above

* hash.c (rb_hash_hash): Return a sensible hash for in case of recursion [ruby-core:24648]

* range.c (rb_range_hash): ditto

* struct.c (rb_struct_hash): ditto

* array.c (rb_array_hash): ditto

* test/ruby/test_array.rb (test_hash2): test for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-15 21:30:50 +00:00
nobu 4f041dafbe * debug.c, parse.y: fixed types.
* node.h (nd_line): limit to int.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-14 07:39:16 +00:00
nobu e4259b7cc5 * include/ruby/ruby.h (RB_TYPE_P): should not use BUILTIN_TYPE for
special constants.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-14 01:44:48 +00:00
usa d8e8849e35 * include/ruby/ruby.h (NUM2INT, NUM2LL, INT2NUM, UINT2NUM),
(LONG2NUM, ULONG2NUM, NUM2CHR): get rid of backward references of
  macros.  the code couldn't compile by VC.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-14 01:01:19 +00:00
nobu 231fdd86ae * configure.in (XLDFLAGS): link startup code with ObjC support.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-13 09:48:45 +00:00
nobu df3ae4e2b5 * include/ruby/ruby.h (rb_special_const_p): fixed typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-13 03:10:24 +00:00
nobu 8d0bcdb016 * include/ruby/ruby.h (SYM2ID): needs parens.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-13 03:07:51 +00:00
nobu 73b86a9be9 * include/ruby/ruby.h (NUM2INT, NUM2LL, INT2NUM, UINT2NUM),
(LONG2NUM, ULONG2NUM, NUM2CHR, rb_type_p, rb_special_const_p):
  GCC specific optimization.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-13 03:04:53 +00:00
nobu 9ad26a3d24 * include/ruby/win32.h (fstat): override if large file support is
enabled.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-11 04:57:40 +00:00
ko1 e519c9d960 * include/ruby/ruby.h (rb_data_type_t): Add comments.
And add a member variable "data", a multi-purpose storage
  area for rb_data_type.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-10 20:02:11 +00:00
takano32 bc664b878c Wed Sep 9 15:24:32 2009 TAKANO Mitsuhiro (takano32) <tak@no32.tk>
* include/ruby/st.h : revert previous commit.
	* ext/objspace/objspace.c : remove st_memsize declare.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09 06:27:35 +00:00
takano32 103b471075 Wed Sep 9 14:07:19 2009 TAKANO Mitsuhiro (takano32) <tak@no32.tk>
* include/ruby/st.h : fix duplicate st_memsize declare.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09 05:08:45 +00:00
nobu 78ab4258ff * st.c (st_free_table): constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09 04:10:42 +00:00
nobu b46cd0e400 * include/ruby/ruby.h (rb_data_type_struct): constified dsize.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09 02:11:35 +00:00
nobu e6dd856d73 * st.c (st_init_*table_with_size): use st_index_t.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-08 13:18:13 +00:00
nobu 31b7ae00c0 * include/ruby/st.h (st_hash_func): use st_index_t.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-08 13:10:04 +00:00
nobu 84255e0485 * vm_method.c (rb_remove_method_id): exported.
* numeric.c (num_sadded): fix for non-ascii method name.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-27 09:31:11 +00:00
nobu 9676023607 * random.c (random_rand): unified random_int and random_float.
[ruby-dev:39158].  and fixes [ruby-core:24655], [ruby-core:24677],
  [ruby-core:24679].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-26 10:20:30 +00:00
usa 9096abd36a * include/ruby/missing.h (vsnprintf): rollback a part of r24179, because
it's meaningless.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-24 10:00:18 +00:00
naruse 7fa7345609 Rename FMODE_STRIP_BOM to FMODE_SETENC_BY_BOM.
* include/ruby/io.h, io.c (FMODE_SETENC_BY_BOM):
  renamed from FMODE_STRIP_BOM.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-21 06:17:06 +00:00
naruse 249697855e \d, \s and \w are now non Unicode class. [ruby-dev:39026]
* include/ruby/oniguruma.h
  (ONIGENC_CTYPE_SPECIAL_MASK): added.
  (ONIGENC_CTYPE_D): ditto.
  (ONIGENC_CTYPE_S): ditto.
  (ONIGENC_CTYPE_W): ditto.

* regparse.c: \d, \s and \w are now non Unicode class.
  [ruby-dev:39026]
  (fetch_token_in_cc): use ONIGENC_CTYPE_[DSW] for \d/\s/\w.
  (fetch_token): ditto.
  (add_ctype_to_cc): add routines for ONIGENC_CTYPE_[DSW].
  (parse_exp): ditto.

* test/ruby/test_regexp.rb (TestRegexp#test_char_class):
  add tests for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-15 16:01:33 +00:00
nobu 19b24f499b * include/ruby/ruby.h (rb_check_safe_str): deprecated.
* ext/openssl/ossl_x509store.c (ossl_x509store_add_{file,path}):
  replaced deprecated funtion.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-14 11:03:22 +00:00
nobu 31f4a82942 * class.c (rb_define_class_id_under, rb_define_module_id_under):
new functions to define a nested class/module with non-ascii
  name.

* struct.c (make_struct): use name with encoding.

* struct.c (inspect_struct): ditto.  [ruby-core:24849]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-12 06:32:21 +00:00
nobu 60d1320326 * include/ruby/intern.h (rb_path2class): no deprecation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-10 12:45:33 +00:00
nari de5f15bbe4 * gc.c: reject unused longlife gc.
* debug.c: ditto.

* include/ruby/intern.h: ditto.

* include/ruby/ruby.h: ditto.

* iseq.c: ditto.

* node.h: ditto.

* vm_insnhelper.c: ditto.

* vm_insnhelper.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-10 02:40:34 +00:00
nobu 3ece383660 * marshal.c (class2path, w_unique, w_extended, w_class, w_uclass):
deal with non-ascii class path.  [ruby-core:24790]

* marshal.c (r_unique, path2class, path2module, obj_alloc_by_path),
  (r_object0): ditto.

* variable.c (rb_path_to_class): new encoding-aware function to
  get a class from its name.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-09 21:55:55 +00:00
naruse 60ab77a16a Warn duplicated characters in character class of regexp. [ruby-core:24593]
* include/ruby/oniguruma.h (ONIG_SYN_WARN_CC_DUP): defined.
* regparse.h (ScanEnv): add warnings_flag.
* regparse.c (CC_DUP_WARN): defined for warn duplicated characters in
  character class of regexp. [ruby-core:24593]
  (add_code_range_to_buf): add CC_DUP_WARN.
  (next_state_val): add CC_DUP_WARN.
  (OnigSyntaxRuby): add ONIG_SYN_WARN_CC_DUP.
  (SET_ALL_MULTI_BYTE_RANGE): add env to arguments.
  (add_code_range): ditto.
  (add_code_range_to_buf): ditto.
  (not_code_range_buf): ditto.
  (or_code_range_buf): ditto.
  (and_code_range1): ditto.
  (and_code_range_buf): ditto.
  (and_cclass): ditto.
  (or_cclass): ditto.
  (add_ctype_to_cc_by_range): ditto.
  (add_ctype_to_cc): ditto.
  (parse_char_class): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-04 04:14:38 +00:00
nobu b8b083dbd5 * insns.def (defineclass): preserve encoding of class/module
names.  [ruby-core:24600]

* variable.c (rb_set_class_path_string): set class path with a
  string value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-30 07:45:42 +00:00
nobu 2b2a9a23d0 * include/ruby/intern.h (rb_*str_new_cstr, rb_str_buf_new_cstr),
(rb_str_buf_cat2, rb_str_cat2, rb_exc_new2): suppress warnings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-27 10:03:12 +00:00
azav 6c4e4f9a4b * include/ruby/defines.h [__SYMBIAN32__]: defined TRUE and FALSE to match changes in bignum.c and array.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-25 15:19:26 +00:00
usa 9dd0d27156 * win32/win32.[ch] (recvmsg, sendmsg): new functions to support recvmsg/
sendmsg like UNIX. these functions are experimental and not tested
	  well. bug reports are welcome.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-21 04:38:20 +00:00
nobu b3b7cd5f0e * include/ruby/defines.h (TRUE, FALSE): for internal use.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-18 07:03:15 +00:00
nobu f3d022543e * random.c (rb_random_{int32,real,bytes,int}): added functions for
extension libraries.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-18 00:16:25 +00:00
usa 436b2f887a * include/ruby/win32.h: include winsock headers in extern "C++" for
C++ extension libraries.

	* include/ruby/missing.h (vsnprintf): workaround for VC++.
	  [ruby-core:23096]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-17 21:33:05 +00:00
nobu 5e65d8f433 * bignum.c (rb_big_new, rb_bigzero_p), range.c (rb_range_values):
added for random.c.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-16 06:52:29 +00:00
ko1 c330876d7c * method.h, vm_core.h: add rb_method_entry_t. Remove nodes around
method management.  This change affect some VM control stack structure.
* vm.c, vm_insnhelper.c, vm_method.c, vm_eval.c: ditto.  and make some
  refactoring.
* insns.def, class.c, eval.c, proc.c, vm_dump.c : ditto.
* vm_core.h, compile.c (iseq_specialized_instruction): remove
  VM_CALL_SEND_BIT.  use another optimization tech for Kernel#send.
* node.h: remove unused node types.
* ext/objspace/objspace.c (count_nodes): ditto.
* gc.c: add mark/free functions for method entry.
* include/ruby/intern.h: remove decl of
  rb_define_notimplement_method_id().  nobody can use it
  because noex is not opend.
* iseq.c (iseq_mark): fix to check ic_method is available.
* iseq.c (rb_iseq_disasm): fix to use rb_method_get_iseq().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-15 14:59:41 +00:00
nobu 5cc13fcb22 * include/ruby/ruby.h (rb_obj_{untrust,untrusted,trust}): added
prototypes.  [ruby-dev:38756]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-10 02:41:44 +00:00
naruse 634cfdc6e6 Set encoding and strip bom when modeenc string is "r:foo-bom" [ruby-dev:37236]
* include/ruby/io.h (FMODE_STRIP_BOM): new constant.

* io.c (io_encname_bom_p): judge whether the encoding name
  is *-bom or not.
  (parse_mode_enc): drop "-bom".
  (rb_io_modestr_fmode): set FMODE_STRIP_BOM if needed.
  (rb_io_extract_modeenc): ditto.
  (io_strip_bom): strip bom if exists.
  (io_set_encoding_by_bom): set encoding if there is bom.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-09 14:47:48 +00:00
ko1 9e60743008 * include/ruby/ruby.h:
rename
  "...TypeStruct" and "typed_struct" to
  "TypedData..." and "typeddata", respectively.
  rename
  rb_data_type_t#name to
  rb_data_type_t#wrap_struct_name.
* error.c, gc.c, iseq.c, vm.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-07 20:28:27 +00:00
nobu ac3c2866c7 * error.c (rb_typed_struct_is_kind_of): new function to see if the
given typed struct.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-07 07:54:28 +00:00