aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* * vm_trace.c, vm_core.h: simplify tracing mechanism.ko12012-08-161-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (1) add rb_hook_list_t data structure which includes hooks, events (flag) and `need_clean' flag. If the last flag is true, then clean the hooks list. In other words, deleted hooks are contained by `hooks'. Cleanup process should run before traversing the list. (2) Change check mechanism See EXEC_EVENT_HOOK() in vm_core.h. (3) Add `raw' hooks APIs Normal hooks are guarded from exception by rb_protect(). However, this protection is overhead for too simple functions which never cause exceptions. `raw' hooks are executed without protection and faster. Now, we only provide registration APIs. All `raw' hooks are kicked under protection (same as normal hooks). * include/ruby/ruby.h: remove internal data definition and macros. * internal.h (ruby_suppress_tracing), vm_trace.c: rename ruby_suppress_tracing() to rb_suppress_tracing() and remove unused function parameter. * parse.y: fix to use renamed rb_suppress_tracing(). * thread.c (thread_create_core): no need to set RUBY_VM_VM. * vm.c (mark_event_hooks): move definition to vm_trace.c. * vm.c (ruby_vm_event_flags): add a global variable. This global variable represents all of Threads and VM's event masks (T1#events | T2#events | ... | VM#events). You can check the possibility kick trace func or not with ruby_vm_event_flags. ruby_vm_event_flags is maintained by vm_trace.c. * cont.c (fiber_switch, rb_cont_call): restore tracing status. [Feature #4347] * test/ruby/test_continuation.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c: forbid uninitialized classnobu2012-08-161-0/+6
| | | | | | | | * object.c (rb_class_initialize): forbid inheriting uninitialized class. another class tree not based on BasicObject cannot exist. [ruby-core:47148][Bug #6863] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_printf.rb: need to be infectednobu2012-08-161-0/+6
| | | | | | | | | * test/-ext-/test_printf.rb (Test_SPrintf#test_{taint,untrust}): use plain object so that the results of to_s and inspect are infected. [ruby-dev:46053] [Bug #6881] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* unecessary macros and K&R style codingnobu2012-08-161-0/+7
| | | | | | | | | * strftime.c: remove unnecessary macros to check traditional C. https://github.com/ruby/ruby/pull/46 by lateau (Daehyub Kim). * vsnprintf.c: remove K&R. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Kernel#inspect: improve consistency and do not call #to_s.eregon2012-08-151-0/+24
| | | | | | | | | | | | | | | | | | | | * object.c (rb_obj_inspect): Kernel#inspect: do not call #to_s. A class can now benefit from the nice default #inspect even if it defines #to_s. Also, there is no more unexpected change in #inspect result. * NEWS: Add note about the change. * bignum.c, io.c, numeric.c, object.c, proc.c, vm.c (Init_*): Adapt internal structures (by aliasing #inspect to #to_s) so they don't rely on the removed behavior (#inspect calling overridden #to_s). * test/ruby/test_object.rb (test_inspect): add tests for Kernel#inspect. * lib/pp.rb (class PP): do not call #to_s anymore, as #inspect no more does (mame). * test/test_pp.rb (class PPInspectTest): remove related assertion (mame). [ruby-core:43238][Feature #6130] * test/drb/drbtest.rb (DRbCore#teardown, DRbAry#teardown): adapt DRb tests with the new change (shirosaki). [ruby-core:47182][Bug #6866] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/test/unit.rb (Test::Unit::Runner#failed): need to delete theusa2012-08-151-0/+5
| | | | | | | status line if the status is skipped and -q is specified. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* sprintf.c: infectnobu2012-08-151-4/+1
| | | | | | | | * sprintf.c (ruby__sfvextra): the result should be infected by the given strings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* sprintf.c: coderange fixnobu2012-08-151-0/+11
| | | | | | | | * sprintf.c (ruby__sfvwrite): set buffer length and exclude uninitialized garbage to get correct coderange. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: ID_H_TARGETnobu2012-08-151-0/+5
| | | | | | | | * common.mk (ID_H_TARGET): make timestamp file of id.h so that the header will not be remade repetitively. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_trace.c: separate trace_func related functions fromko12012-08-151-0/+11
| | | | | | | | | | | thread.c. * thread.c: ditto. * common.mk: add vm_trace.o. * inits.c: call Init_vm_trace(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r36699 and r36700. [Feature #6130]naruse2012-08-151-23/+0
| | | | | | | | | | | | | Revert "Kernel#inspect: improve consistency and do not call #to_s." Revert "update PP with recent Kernel#inspect change. Patch by Yusuke Endoh." r36699 cause test-all failure on test/drb/test_drb.rb and test/drb/test_drbssl.rb. Run test-all before commit. Moreover its ChangeLog formst is wrong: see CommitterHowto https://bugs.ruby-lang.org/projects/ruby/wiki/CommitterHowto#ChangeLog git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* update PP with recent Kernel#inspect change. Patch by Yusuke Endoh.eregon2012-08-141-0/+8
| | | | | | | | * lib/pp.rb (class PP): do not call #to_s anymore, as #inspect no more does. * test/test_pp.rb (class PPInspectTest): remove related assertion. [ruby-core:43238][Feature #6130] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Kernel#inspect: improve consistency and do not call #to_s.eregon2012-08-141-0/+15
| | | | | | | | | | | | | | | A class can now benefit from the nice default #inspect even if it defines #to_s. Also, there is no more unexpected change in #inspect result. Internal structures have been adapted so they don't rely on the removed behavior (#inspect calling overridden #to_s). * object.c (rb_obj_inspect): Kernel#inspect: do not call #to_s. * test/ruby/test_object.rb (test_inspect): add tests for Kernel#inspect. * bignum.c, io.c, numeric.c, object.c, proc.c, vm.c (Init_*): alias #inspect to #to_s where it was expected. [ruby-core:43238][Feature #6130] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/erb/test_erb.rb (test_html_escape): add assertions for theshugo2012-08-141-0/+5
| | | | | | cases where the argument is not a String. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ChangeLog: fix typo.shugo2012-08-141-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (check_valid_dir): reject "..." as directory name.usa2012-08-141-0/+5
| | | | | | | [Bug #6851] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_file_exhaustive.rbusa2012-08-141-0/+5
| | | | | | | (TestFileExhaustive#test_stat_dotted_prefix): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_file_exhaustive.rbusa2012-08-141-0/+5
| | | | | | | (TestFileExhaustive#test_stat_drive_root): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/erb.rb (ERB::Util.html_escape): fix r36687: call to_s beforenaruse2012-08-141-0/+5
| | | | | | passing it to CGI.escapeHTML. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/erb.rb (ERB::Util.html_escape): use CGI.escape to escapeshugo2012-08-131-0/+5
| | | | | | single quotes. [ruby-core:47138] [Bug #6861] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c (invoke_block_from_c): fix unintentional block passing.ktsj2012-08-121-0/+5
| | | | | | [ruby-dev:45071] [Bug #5832] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_malloc_allocated_size): RDoc does not process macros, sodrbrain2012-08-091-0/+7
| | | | | | | | | mention this method is only available when ruby is built with CALC_EXACT_MALLOC_SIZE * gc.c (gc_malloc_allocations): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typokazu2012-08-091-2/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mkrunnable.rb: build_osnobu2012-08-091-1/+4
| | | | | | | | * tool/mkrunnable.rb: see build_os instead of target arch for cross-compiling. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: use real pathnobu2012-08-091-1/+3
| | | | | | | * configure.in (MINIRUBY): use real path for include path. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fake.rb.in: remove duplicationsnobu2012-08-091-0/+5
| | | | | | | * template/fake.rb.in (builddir): remove duplications git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ChangeLog: fix a typo.nagachika2012-08-091-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Optimize winnt_statshirosaki2012-08-091-0/+15
| | | | | | | | | | | | | | | | | * test/ruby/test_file_exhaustive.rb (TestFileExhaustive#test_stat_special_file): add a test. GetFileAttributesExW fails to get attributes of special files such as pagefile.sys. * win32/win32.c (check_valid_dir): for performance, check the path by FindFirstFileW only if the path containts "..." * win32/win32.c (winnt_stat): use GetFileAttributesExW instead of FindFirstFileW since GetFileAttributesExW is faster. Based on the patch by Dusan D. Majkic. [ruby-core:47083] [Feature #6845] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c: show version only oncenobu2012-08-091-0/+6
| | | | | | | | | * ruby.c (proc_options): show version only once even if -v and --verbose are given together. http://twitter.com/d6rkaiz/status/233491797085671424 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/openssl/test_config.rb (OpenSSL#test_constants): skip thiskosaki2012-08-091-0/+5
| | | | | | test if platform is Mac OS X or Windows. [Bug #6830] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typokazu2012-08-081-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c: cref-scope hacknobu2012-08-081-0/+5
| | | | | | | | * vm_eval.c (eval_under): singletons other than special constants don't need cref-scope hack. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: id.h dependencynobu2012-08-081-0/+7
| | | | | | | | | * common.mk (.y.h): split from .y.c rule to manage dependency on parse.h. [ruby-core:46741] [Bug #6789] * common.mk (id.h): keep old file unless changed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c (ADD_INSNL): make ADD_INSNSL as alias of ADD_INSN1.ko12012-08-081-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bootstrap/test_exception.rb: fix a last committed test.ko12012-08-081-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c, insns.def (checkmatch):ko12012-08-081-0/+20
| | | | | | | | | | | | | | | | | | remove checkincludearray instruction and add new instruction checkmatch. This change is to solve [Bug #4438] "rescue args type check omitted". * iseq.c: increment ISEQ_MAJOR_VERSION because removal of checkincludearray instruction. * vm_core.h: add several definitions for the checkmatch instruction. * vm_insnhelper.c (check_match): added. * bootstraptest/test_exception.rb: add a test. * test/ruby/test_exception.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * proc.c (method_clone): Added documentation. Patch by Robin Dupret.drbrain2012-08-071-0/+5
| | | | | | | Fixes #152 on github. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/readline/readline.c (Init_readline): rl_catch_signals=0 returnsnaruse2012-08-071-0/+6
| | | | | | | back. Without this, on FreeBSD9 and readline 6.2 irb can't catch ^C. [Bug #5423] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_exec.c, insns.def (leave): solve problems onko12012-08-071-0/+13
| | | | | | | | | | | | | OPT_CALL_THREADED_CODE. Catch up finish frame structure on OPT_CALL_THREADED_CODE. * vm_core.h: add rb_thread_t#retval for temporary space on OPT_CALL_THREADED_CODE. * vm.c (th_init): clear rb_thread_t#retval as Qundef. * vm_dump.c (rb_vmdebug_debug_print_pre): fix debug print format. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_require.rb (TestRequire#test_require_twice): added.usa2012-08-071-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_method.c (rb_redefine_opt_method): use RCLASS_ORIGIN to avoidshugo2012-08-071-0/+5
| | | | | | SEGV when a module-prepended class is refined. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_file_exhaustive.rbusa2012-08-071-0/+6
| | | | | | | | (TestFileExhaustive#test_expand_path*): refactoring. split the method into some chunks of the same kind of tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* method in instance_evalnobu2012-08-061-0/+11
| | | | | | | | | | | | * class.c (rb_special_singleton_class_of): utility function. * vm_eval.c (eval_under): special deal for class variable scope with instance_eval. * vm_eval.c (rb_obj_instance_eval, rb_obj_instance_exec): allow method definition in instance_eval of special constants. [ruby-core:28324] [Bug #2788] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c: split CVAR_LOOKUPnobu2012-08-061-0/+4
| | | | | | | * variable.c (CVAR_LOOKUP): split into helper functions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/win32ole/test_win32ole_variant.rb: setting WIN32OLE.localesuke2012-08-061-0/+6
| | | | | | | | | to pass some assertion. Thanks to Hiroshi Shirosaki. [ruby-core:46873][Bug #6814] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * internal.h, class.c, eval.c, insns.def: find the appropriateshugo2012-08-061-0/+6
| | | | | | | receiver for super called in instance_eval. If such a receiver is not found, raise NoMethodError. [ruby-dev:39772] [Bug #2402] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h, eval.c, vm_insnhelper.c: fix typo.shugo2012-08-061-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c: remove dead codenobu2012-08-061-1/+4
| | | | | | | | * vm_eval.c (vm_call_super): since cfp->klass is always class or iclass, no search from method entry. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* insns.def: use klass in cfpnobu2012-08-061-0/+5
| | | | | | | | * insns.def (defined): now should use klass in the current control frame to search superclass, not me->klass. reported by naruse. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/etc/test_etc.rb (TestEtc#test_getpwuid): `s' is never set to nil.usa2012-08-061-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e