aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
...
* vm_method.c: check if klass is 0nobu2014-03-231-0/+5
| | | | | | | * vm_method.c (rb_method_entry_get_without_cache): me->klass is 0 for a method aliased in a module. [ruby-core:61636] [Bug #9663] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* st.c: use power-of-two sizes to avoid slow modulo opsnormal2014-03-221-0/+16
| | | | | | | | | | | | | | | | | | * st.c (hash_pos): use bitwise AND to avoid slow modulo op (new_size): power-of-two sizes for hash_pos change (st_numhash): adjust for common keys due to lack of prime modulo [Feature #9425] * hash.c (rb_any_hash): right shift for symbols * benchmark/bm_hash_aref_miss.rb: added to show improvement * benchmark/bm_hash_aref_sym_long.rb: ditto * benchmark/bm_hash_aref_str.rb: ditto * benchmark/bm_hash_aref_sym.rb: ditto * benchmark/bm_hash_ident_num.rb: added to prevent regression * benchmark/bm_hash_ident_obj.rb: ditto * benchmark/bm_hash_ident_str.rb: ditto * benchmark/bm_hash_ident_sym.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * addr2line.c (fill_lines): compare the file names of object in whichnaruse2014-03-221-0/+5
| | | | | | symbols exist. [Bug #9654] [ruby-dev:48058] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* cgi/util.rb: use aliasnobu2014-03-211-0/+8
| | | | | | | | | * lib/cgi/util.rb (escape_html, unescape_html): make synonyms aliases instead of wrapper methods. * lib/cgi/util.rb (escape_element, unescape_element): ditto. [Fixes GH-573] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix a build problem with clang and --with-opt-dir.knu2014-03-211-0/+13
| | | | | | | | | | | | | | | * configure.in: Fix a build problem with clang and --with-opt-dir. If ruby is configured with --with-opt-dir=dir when using clang as compiler, a warning `clang: warning: argument unused during compilation: '-I dir'` is emitted almost every time clang compiles a file. Unfortunately, RUBY_CHECK_PRINTF_PREFIX takes any output from the compiler as fatal error, and the check thus fails due to the warning. This is an attempt to fix the problem by adding a flag -Qunused-arguments to CFLAGS locally in the function to suppress the warning. [ruby-dev:48062] [Bug #9658] [Fixes GH-571] https://github.com/ruby/ruby/pull/571 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c: [DOC] Fix call-seq for GC.start by @jasonrclark [Fixes GH-572]zzak2014-03-211-0/+5
| | | | | | | https://github.com/ruby/ruby/pull/572 [ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/csv.rb: Fixed a broken regular expression that was causingjeg22014-03-201-0/+8
| | | | | | | | | | | CSV to miss escaping some special meaning characters when used in parsing. Reported by David Unric [ruby-core:54986] [Bug #8405] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (objspace_malloc_increase): should not invokeko12014-03-201-0/+9
| | | | | | | | | | garbage_collect_with_gvl() here on non-ruby threads. Should just ignore the malloc_increase. This issue is pointed by Eric Wong [ruby-core:61519]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * struct.c (rb_struct_alloc): use RARRAY_CONST_PTR() instead ofko12014-03-201-0/+5
| | | | | | | | RARRAY_PTR(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/intern.h (rb_obj_call_init, rb_class_new_instance):ko12014-03-201-0/+9
| | | | | | | | | | | constify a parameter (VALUE *). I believe this incompatibility doesn't break any code. However, if you have trouble, please tell us. * eval.c, object.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_method.c: fix infinite recursionnobu2014-03-201-0/+7
| | | | | | | | | * vm_method.c (rb_method_entry_get_without_cache): get rid of infinite recursion at aliases in a subclass and a superclass. return actually defined class for other than singleton class. [ruby-core:60431] [Bug #9475] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* time.c: freeze and preserve marshal-loaded time zonenormal2014-03-191-0/+6
| | | | | | | | | | | | We need to prevent vtm.zone from pointing to a GC-ed string buffer. The rb_copy_generic_ivar call misses it because get_attr deleted it. Thanks to nobu for the rb_str_new_frozen suggestion. * time.c (time_mload): freeze and preserve marshal-loaded time zone * test/ruby/test_time.rb: add test for GC on loaded object [Bug #9652] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_eval.c (eval_string_with_cref): Unify to use NIL_P.sorah2014-03-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_eval.c (eval_string_with_cref): Use file path even if scope issorah2014-03-181-0/+5
| | | | | | given. Related to [ruby-core:56099] [Bug #8662] and r42103. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2014-03-181-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * enumerator.c (enumerator_block_call): use PARRAY_CONST_PTR()ko12014-03-171-0/+13
| | | | | | | | | | | | instead of RARRAY_PTR(). * io.c (rb_io_s_popen): ditto. * numeric.c (num_step_size): ditto. * vm_eval.c (rb_apply): ditto. * vm_eval.c (rb_eval_cmd): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c: avoid memory leak on const redefinitionnormal2014-03-171-0/+6
| | | | | | | | * variable.c (rb_const_set): delete existing entry on redefinition [Bug #9645] * test/ruby/test_const.rb (test_redefinition): test for leak git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/time.rb: [DOC] Fix timezone in example of Time.parse [Bug #9521]zzak2014-03-161-0/+5
| | | | | | | Based on patch by @stomar [ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: insert a space for non-GCCnobu2014-03-161-0/+5
| | | | | | | * configure.in (DLDFLAGS): insert a space between option and its argument for non-GCC compilers. [ruby-core:61429] [Bug #9624] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (objspace_xcalloc): fix GC accountingnormal2014-03-151-0/+4
| | | | | | | | This hopefully works on all platforms with malloc_usable_size. This may also trigger bugs in places which did not expect GC, too; so maybe some existing code will need RB_GC_GUARD. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * addr2line.c (fill_lines): return address is just after callingnaruse2014-03-151-0/+6
| | | | | | | address. Therefore noreturn function with tail call's return address may be in another function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/gserver.rb: [DOC] Fixed typo in example by @stomar [Bug #9543] [ci skip]zzak2014-03-151-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/.document: remove refinement from documentable directories.ktsj2014-03-151-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: check symbol resolution optionsnobu2014-03-151-0/+5
| | | | | | | * configure.in (DLDFLAGS): check for each options to control symbol resolution. [ruby-core:61429] [Bug #9624] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * st.c (st_update): remove unnecessary assignmentnormal2014-03-141-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * addr2line.c (fill_lines): fetch symbol names from ELF binary'snaruse2014-03-141-0/+22
| | | | | | | | | | | | | | | | | | | | | | symbol table if it is built with cc -g and not stripped. Now ruby can show static symbols on Linux though glibc's backtrace_symbols(3) don't show them. * addr2line.c (rb_dump_backtrace_with_lines): use dladdr(3) to detect what object file declares the symbol because dl_iterate_phdr can't detect the main executable file and codes on the stack. NOTE: signal trampolines sometimes on the user stack. (FreeBSD) * addr2line.c (rb_dump_backtrace_with_lines): stop showing backtrace if the function's name is main. NOTE: FreeBSD's backtrace (libexecinfo) shows _start and an additional address. Why it doesn't remove them on dladdr phase is, dladdr may fail to detect the main function but detect as _start function. Therefore it must be after scanning the symbol table and getting correct name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * doc/syntax/literals.rdoc: [DOC] Single quote strings allows escapezzak2014-03-141-0/+6
| | | | | | | | of backslash as well, patch by @idupree [Fixes GH-553] [ci skip] https://github.com/ruby/ruby/pull/553 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c: relax arity checknobu2014-03-131-0/+12
| | | | | | | | | | | * vm.c (invoke_block_from_c): add splattable argument. * vm.c (vm_invoke_proc): disallow to splat when directly invoked. * vm_insnhelper.c (vm_callee_setup_arg_complex, vm_callee_setup_arg): relax arity check of yielded lambda. [ruby-core:61340] [Bug #9605] * test/ruby/test_yield.rb (TestRubyYieldGen#emu_bind_params): no longer raise ArgumentError when splatting to lambda. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/-test-/win32/dln/libdlntest.c (dlntest_ordinal): no need tousa2014-03-131-0/+6
| | | | | | | | specify export in the source file because .def file do it. get rid of warning on linking. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* revert [Bug #9605]nobu2014-03-121-6/+0
| | | | | | | * enum.c: revert r45284, r45286, r45292. it conflicts with existing behaviors. [Bug #9605] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c: disable fastpath if splatnobu2014-03-121-1/+5
| | | | | | | | * vm_insnhelper.c (vm_callee_setup_arg): disable fastpath if splat argument, since argc may differ for each calls. [ruby-core:61422] [Bug #9622] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_insnhelper.c: inline functionnobu2014-03-121-0/+5
| | | | | | | * vm_insnhelper.c (vm_callee_setup_arg): turn a macro into an inline function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* insns.def (opt_regexpmatch2): respect redefined match opnormal2014-03-111-0/+7
| | | | | | | | | * insns.def (opt_regexpmatch2): respect redefined match op Thanks to Sam Rawlins for the fix. * test/ruby/test_string.rb: test based on Tsuyoshi Sawada's report [Bug #9581] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/.document: add objspace/objspace_dump.c to document file.ktsj2014-03-111-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/objspace/test_objspace.rb (TestObjSpace#test_dump_uninitialized_file):ktsj2014-03-111-0/+5
| | | | | | remove dependency on json library. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* README.EXT{,.ja}: update ruby_options and ruby_run_nodenobu2014-03-111-0/+6
| | | | | | | | * README.EXT{,.ja} (Appendix B): update contents of `ruby_options` and replace `ruby_run` with `ruby_run_node`. based on the patch by Kaneko Yuichiro at [ruby-dev:48030] [Bug #9619]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/objspace: Check fptr before trying to dump FILE object fdcharliesome2014-03-101-0/+7
| | | | | | Patch by Scott Francis. Closes GH-562. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_dump.c (rb_vm_bugreport): show vm maps on FreeBSD.naruse2014-03-101-0/+7
| | | | | | | * vm_dump.c (procstat_vm): copied from FreeBSD. http://svnweb.freebsd.org/base/head/usr.bin/procstat/procstat_vm.c?revision=261780 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in: always check dladdr(1).naruse2014-03-101-0/+11
| | | | | | | | | | | * addr2line.c (fill_lines): show the line number in C backtrace if ruby is built without --enable-shared (PIE) on Linux. patch is originally by Shinichiro Hamaji https://twitter.com/shinh/status/441957774264504321 NOTE: ld doesn't insert __executable_start for PIE. dladdr(3)'s argument must be a function pointer. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merge GH-558nobu2014-03-101-0/+5
| | | | | | | * test/ruby/test_enumerator.rb (test_iterators): fix test for hash iterators. [Fixes GH-558] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* class.c: check for malloc failuresnormal2014-03-091-0/+8
| | | | | | | | | | | | | * class.c (rb_class_subclass_add): use xmalloc * class.c (rb_module_add_to_subclasses_list): ditto * class.c (rb_class_remove_from_super_subclasses): use xfree * class.c (rb_class_remove_from_module_subclasses): ditto [Bug #9616] xmalloc does OOM checking and helps GC accounting when used with xfree. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fiddle/function.c: fix memory leak on exceptionnobu2014-03-091-0/+5
| | | | | | | * ext/fiddle/function.c (function_call): fix memory leak when an exception occurs at argument conversion or the function call. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c (struct global_variable): shrink by 8 bytes on 64-bitnormal2014-03-081-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm.c: cleanup to use rb_method_entry_atnormal2014-03-081-0/+4
| | | | | | | * vm.c (add_opt_method): cleanup to use rb_method_entry_at Easier experiments with a non-st method entry tables. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/dl, ext/fiddle: fix memory leaknobu2014-03-081-0/+7
| | | | | | | | | * ext/dl/cptr.c (dlptr_free), ext/dl/handle.c (dlhandle_free), ext/fiddle/handle.c (fiddle_handle_free), ext/fiddle/pointer.c (fiddle_ptr_free): fix memory leak. based on the patch Heesob Park at [ruby-dev:48021] [Bug #9599]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: expand buffer on ERANGEnobu2014-03-081-0/+7
| | | | | | | | | * process.c (obj2uid, obj2gid): now getpwnam_r() and getgrnam_r() may need larger buffers than sysconf values, so retry with expanding the buffer when ERANGE is returned. [ruby-core:61325] [Bug #9600] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enum.c: yield multiple valuesnobu2014-03-071-0/+6
| | | | | | | | | * enum.c (find_i): yield multiple values instead of a packed array, so that lambda block can work. with tests by Alex Rothenberg. [ruby-core:61340] [Bug #9605] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c: use RARRAY_CONST_PTR to aid RGenGC performancenormal2014-03-071-0/+6
| | | | | | | | | | Pointed out by ko1. * vm_eval.c (vm_call0_body): use RARRAY_CONST_PTR (check_funcall_exec): ditto [ruby-core:61360] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45283 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c: fix misplaced GC guardnormal2014-03-071-0/+6
| | | | | | | * vm_eval.c (vm_call0_body): fix RB_GC_GUARD location (check_funcall_exec): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * parse.y (ENC_SINGLE): Unused macro removed.nari2014-03-071-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e