21db43bfe70b597bda21fc6f65c7933087f8aa18
|
2006-12-20 |
|
a3e1b1ce7ed7e7ffac23015fc2fde56511b30681
|
2006-12-31 |
|
939357f0d846c0b50cdd8db5258b42c90504cbd4
|
2006-12-31 |
|
e7a993656c84c166278d9f6e77babd4aa6fd31c9
|
2006-12-31 |
|
a7911f55a4fc59d8d460b15b5e19cc17f0d725d5
|
2007-01-04 |
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e |
784dedc5f06db04b1fd51d30c126508061e05a50
|
2007-01-04 |
|
26608663cd480f265ada34856aaebdcae133a222
|
2007-01-04 |
* common.mk : restore changes |
424eec36a63bfc3b35297f54bc3c3b5d671edae3
|
2007-01-04 |
* thread_pthread.ci : fix last changes around PTHREAD_STACK_MIN. |
a7028afec0bc880372b7e6b307cbf05b2be6a540
|
2007-01-04 |
* yarv_version.h : removed. * common.mk : remove yarv_version.h from rules * yarvcore.h (Init_yarvcore) : remove useless constants |
31d815aacf57d5d61d9e04683c6c4b9a36a4fbee
|
2007-01-04 |
* common.mk : fix to use test.rb script in build directory. ($(srcdir)/test.rb -> test.rb) |
3e5b3dac1f3b847161fa914f3e4cb3e85198c4a4
|
2007-01-04 |
* common.mk : rename yarv-test-[all/each] to compare-test[/-each]. purpose of "compare-test" rule is to compare ruby (trunk) and matzruby (branches/matzruby) binary in miniruby level. MATZRUBY parameter means an path to miniruby of matzruby binary. to do this comparison test, you should build matzruby branch. * yarvtest/yarvtest.rb : fix to use command line option as command names to be compared. * yarvtest/runner.rb : remove a debug output. |
c5bd0c8e3bf602e082cfd8f95bc28b06aeea2694
|
2007-01-05 |
* compile.c (iseq_compile_each, set_block_local_tbl) : support NODE_LAMBDA (partly). * sample/test.rb : restore test of NODE_LAMBDA * test/ruby/test_lambda.rb : ditto |
d880d4382ffca5a9deb083ba0acc69dfa5f5d306
|
2007-01-05 |
* eval_method.h (rb_add_method) : fix to check old_node |
20f8b25d1df4bfe1e7e23fbf3458f9742394b728
|
2007-01-05 |
* eval_method.h (rb_alias) : fix to check search result |
716b91a5f72102483a56af9a3694531a30f9fd37
|
2007-01-05 |
* common.mk : add .SUFFIXES rule |
91a0e26a5234cf5f98aacc802c8910279d9a8195
|
2007-01-05 |
|
21e39197e6351aa786a555f7304cbb5b98b599ef
|
2007-01-05 |
* benchmark/run_rite.rb : fix to use readlines instead of read(...).lines (because 1.8 doesn't have String#lines). |
ed9d4087f6bcccf82f08de670942cf51c4a0a54c
|
2007-01-05 |
* compile.c, compile.h : add ADD_CALL_RECEIVER() macro. * insns.def (send) : use GET_SELF() direct if FCALL. * eval.c (rb_f_send) : check method dispatch type to permit nvoking private method when dispatch type is FCALL/VCALL * insns.def (opt_ltlt) : remove useless statement. * vm.h : remove unused macros. |
c5a0c3be2e604e64ffa9cb77d758ac10eedecce9
|
2007-01-05 |
* yarvtest/yarvtest.rb : fix to compare results |
d22d3b5a7a37bc2ff723fa5acc4ce2d85539d189
|
2007-01-05 |
* benchmark/bm_app_pentomino.rb : use Array#dup instead of Array#clone * benchmark/bmx_temp.rb : removed * benchmark/run.rb : use run.rb instead of run_rite.rb * common.mk : ditto * benchmark/run_rite.rb : removed * common.mk : use $(srcdir)/test.rb to run a test program with "make run" * benchmark/bmx_temp.rb : removed and set svn:ignore (bmx_*.rb) to benchmark/ * test.rb : set svn:ignore |
384cfd3871c1839d0f167f9f4bf39ef3dcd42069
|
2007-01-05 |
* benchmark/run.rb : change option format * common.mk : ditto |
ce55b4c0e0062cd59eb3d5e05ffc5d75bdcde85a
|
2007-01-06 |
* insns.def : support direct method dispatch with "send" or "funcall". This means that "obj.send :m" skips "BasicObject#send" invocation (method frame creation, etc) and "obj.m" invokes directly. If you make backtrace, there are no enties of "send" method. * compile.c (iseq_specialized_instruction) : fix to support above * eval.c : ditto (remove "static" from rb_f_send and rb_f_funcall * yarvcore.c : ditto (add a external IDs for compiler) * yarvcore.h : ditto (add a VM_CALL_SEND_BIT macro) * yarvtest/test_method.rb : add tests for above changes * eval.c : remove unused "Kernel#send" declaration |
52296cdee134593ec3a18c3420c7c6b7251c24f9
|
2007-01-06 |
* common.mk : add PHONY dependency to some rules |
ad4213d6feaa3f8c79b4c3de6753b11ae2d46a84
|
2007-01-06 |
* insns.def (send) : fix to optimize send() with Symbol. * yarvtest/test_method.rb : add another test. |
4e4eec7016037f051a6d1173bb5829de9c4840c3
|
2007-01-07 |
* common.mk: add a "compare" rule and fix MATZRUBY variable |
84f8da11579b8b655505dc8abffc31c715784794
|
2007-01-07 |
* thread.c (rb_thread_stop_timer_thread(), rb_thread_reset_timer_thread(), rb_thread_start_timer_thread()): added. * thread_pthread.ci: add a native_thread_join() and move rb_thread_reset_timer_thread() definition to thread.c. * thread_win32.ci: ditto * process.c: fix before_exec(), after_exec() to stop timer thread (and restart timer thread if exec failed). and fix to reset timer thread information when forked child process starts (to fix [ruby-core:09822]). |
7eb928624f84135634075ea575d6f10d759f2263
|
2007-01-16 |
* eval_proc.c (rb_proc_new): added. * string.c (sym_to_proc): supported. * vm.c (invoke_block, th_invoke_yield, th_invoke_proc): fix to support rb_proc_new. * yarvcore.c: add a test code. |
c22416a87fe3d4979ba698ba2d14a1cb4a98cdee
|
2007-01-16 |
* env.h: removed |
63315f63054890397a19a1cbefe10166cb1768c8
|
2007-01-16 |
* vm.c (invoke_block): fix to specify self. |
5078c85782efc2d1245377d9a49c71eedd40c170
|
2007-01-16 |
* common.mk: fix ruby script path. |
ca46eab09073c2d91bb21939b32aa6d767dafa36
|
2007-01-16 |
* vm.c (eval_search_super_klass): rename to search_super_klass() and use it by th_call_super(). * insns.def: ditto. |
dbee678630736a5d873cde1f262bf2cfc87e8dfe
|
2007-01-17 |
* some refactoring around yarvcore and proc. * eval_proc.c: renamed to proc.c. * common.mk: ditto. * yarvcore.h, yarvcore.c: rename or remove some global variables removed: mYarvCore, mYarvInsns renamed: cYarvISeq -> rb_cISeq, cYarvProc -> rb_cProc, cYarvBinding -> rb_cBinding ::YarvCore module is removed and ::YarvCore::VM class becomes ::VM. And change/remove some functions which added with YARV. * compile.c: ditto. * eval.c: ditto. * iseq.c: ditto. * vm.c: ditto. * inits.c: rename Init_yarvcore to Init_vm. * yarvcore.c, proc.c: move some functions and initialization from yarvcore.c to proc.c. * intern.h, proc.c: add global function rb_binding_new(void). |
025cfde57d14b12504595130cb1b222372881143
|
2007-02-05 |
* eval_thread.c, common.mk: remove eval_thread.c. * yarvcore.c: rename cYarvThread to rb_cThread. * gc.c: remove YARV_* prefix. * gc.h: add an include guard and prototype of rb_gc_set_stack_end(). * inits.c: fix to ANSI prototype style and reorder Init_*(). * io.c (pipe_finalize): TODO: comment out last_status. * process.c, yarvcore.h: fix to use yarv_vm_t#last_status instead of rb_last_status and make last_status_get() to access $?. * yarvcore.c (vm_mark): mark yarv_vm_t#last_status. * ruby.h: add declarations of rb_cISeq and rb_cVM. * thread.c: move eval_thread.c codes to thread.c and remove yarv_* function prefix. * thread.c (thread_start_func_2): use yarv_thread_t#first_func if it is not null. * vm.c: fix copyright year. * yarvcore.c (Init_vm): rename to Init_VM(). |
48002b881e49ff76f869e0f383fd5419cbca9af3
|
2007-02-05 |
* ruby.h: add a prototype of rb_id2str(). |
27172b8e6fcd14f07fa5ea5be803cb04bde04559
|
2007-02-05 |
* intern.h: prepare rb_last_status_get() and rb_last_status_set(). Use these functions instead of rb_last_status ([ruby-dev:30264]). * process.c: define above functions. * ext/pty/pty.c: use above functins. * io.c (pipe_finalize): ditto. * process.c: ditto. |
0d70d8864359e6d8c410dd2727de618ba7cc3dc7
|
2007-02-05 |
* proc.c: refactoring (remove K&R style, move Binding stuffs from Init_Proc() to Init_Binding()). |
a4a81019653287291f88563964d482798da6221f
|
2007-02-05 |
* proc.c: support Binding#eval. * yarvtest/test_eval.rb: add a test for above change. |
46cceb5a741148766eadf60f57139123d396f6d6
|
2007-02-06 |
* complement last commit. * common.mk (*.inc): use VPATH. * vm_opts.h: renamed from vm_opts.h.base. |
42ce75cdff741d69927e407ac57b68dd58408111
|
2007-02-06 |
* compile.c, insns.def: remove (get|set)instancevariable2 and add a operand is_local to (get|set)instancevariable. * yarvtest/test_class.rb: add a test for class local instance variable. * parse.y (rb_decompose_ivar2): remove unused variable oid. * tool/insns2vm.rb: remove needless require. |
c27ef66dd7dc00fa22dce416dd2080f5da501a47
|
2007-02-06 |
* compile.c (iseq_compile_each): fix setting is_local flag. * yarvtest/test_class.rb: add a test for class local isntance variable. |
87861402065ac2f5f0578c897f28b4cb4409d75b
|
2007-02-06 |
* vm_opts.h: set properties: svn:keywords: Author Date Id Revision svn:eol-style: native |
8ee7d0767f7940baeae60ffa95afde93f3378c93
|
2007-02-06 |
* blockinlining.c, compile.c, compile.h, error.c, eval.c, eval_intern.h, eval_jump.h, eval_load.c, eval_method.h, eval_safe.h, gc.c, insnhelper.h, insns.def, iseq.c, proc.c, process.c, signal.c, thread.c, thread_pthread.ci, thread_win32.ci, vm.c, vm.h, vm_dump.c, vm_evalbody.ci, vm_macro.def, yarv.h, yarvcore.h, yarvcore.c: change type and macro names: * yarv_*_t -> rb_*_t * yarv_*_struct -> rb_*_struct * yarv_tag -> rb_vm_tag * YARV_* -> RUBY_VM_* * proc.c, vm.c: move functions about env object creation from proc.c to vm.c. * proc.c, yarvcore.c: fix rb_cVM initialization place. * inits.c: change Init_ISeq() order (after Init_VM). * ruby.h, proc.c: change declaration place of rb_cEnv from proc.c to ruby.c. |
44aef0b53f3e73ec987a668a3284d5e28bdb8121
|
2007-02-07 |
* this commit is a result of refactoring. only renaming functions, moving definitions place, add/remove prototypes, deleting unused variables and removing yarv.h. This commit doesn't change any behavior of ruby/vm. * yarv.h, common.mk: remove yarv.h (contents are moved to yarvcore.h). * error.c, eval_intern.h: include yarvcore.h instead yarv.h * rename some functions: * debug.[ch]: debug_*() -> ruby_debug_*() * iseq.c: iseq_*() -> rb_iseq_*(), ruby_iseq_disasm() * iseq.c: node_name() -> ruby_node_name() * vm.c: yarv_check_redefinition_opt_method() -> rb_vm_check_redefinition_opt_method() * some refactoring with checking -Wall. * array.c: remove rb_ary_ptr() (unused) and remove unused local variables. * object.c: add a prototype of rb_mod_module_exec(). * eval_intern.h (ruby_cref): set it inline. * eval_load.c (rb_load), yarvcore.c: yarv_load() -> rb_load_internal(). * parse.y: add a prototype of rb_parse_in_eval() (in eval.c). * process.c: add a prototype of rb_thread_stop_timer_thread() (in thread.c). * thread.c: remove raw_gets() function (unused) and fix some format mismatch (format mismatchs have remained yet. this is todo). * thread.c (rb_thread_wait_fd_rw): fix typo on label name. * thread_pthread.ci: comment out codes with USE_THREAD_CACHE. * vm.c (rb_svar, rb_backref_get, rb_backref_get, rb_lastline_get, rb_lastline_set) : moved from yarvcore.c. * vm.c (yarv_init_redefined_flag): add a prototype and rename yarv_opt_method_table to vm_opt_method_table. * vm.c (rb_thread_eval): moved from yarvcore.c. * yarvcore.c: remove unused global variables and fix to use nsdr(). |
4042176a9920b384d99152883fe6b7aed20d5827
|
2007-02-07 |
* eval.c: fixed to use ANSI function style. |
0b91bd56c2246f4a6dc313e0972a28074c68ecee
|
2007-02-07 |
* eval_intern.h, yarvcore.h: remove unused macro definition. |
0eaefd202a7072aea6a17993c19c8704366ed9f7
|
2007-02-07 |
* eval_intern.h: remove UNSUPPORTED() macro. * thread.c: fix to define Continuation methods (they only do rb_notimplement()). |
9c574383a430c815406fb343e9adba18e348b5a3
|
2007-02-08 |
* blockinlining.c, error.c, eval.c, eval_error.h, eval_intern.h, eval_jump.h, eval_load.c, eval_safe.h, gc.c, proc.c, signal.c, thread.c, thread_pthread.ci, thread_win32.ci, vm.c, vm.h, vm_dump.c, vm_evalbody.ci, yarvcore.c, yarvcore.h: fix typo (rb_thead_t -> rb_thread_t). |
ea2dd2e805fbaf1f5ee491397db9a16eb1d4dbe3
|
2007-02-08 |
* process.c: fix to use rb_status_line_set/get/clear(). * eval_intern.h: fix line break. |
93b2cfbc4a5572f8f00cfda931fff543ab598c4a
|
2007-02-08 |
* common.mk: fix to use RUNRUBY instead of BASERUBY if possible. * common.mk ($(INSNS) rule): remove $(PROGRAM) first. |
ae317b518c4dcbcbf0ed02bb9e6cd7513f0a34fe
|
2007-02-08 |
* yarvcore.h, thread.c: fix to use pthread on cygwin. * yarvcore.h, thread.c: move GVL_UNLOCK_BEGIN() and GVL_UNLOCK_END() from yarvcore.h to thread.c. * thread.c: change GVL_UNLOCK_RANGE() arguments (adding ubf as 2nd argument). * thread.c: fix to use polling in select on cygwin and mswin32. * thread.c, thread_pthread.ci, thread_win32.ci, yarvcore.h: rename: * rb_thread_t#interrupt_function -> unblock_function * rb_interrupt_function_t -> rb_unblock_function * some interrupt function name -> ubf_* * yarv_* -> * |
eb64061a384db53ca69dfdb1ab184a3b88d68f2d
|
2007-02-08 |
* thread.c (GVL_UNLOCK_RANGE): rename to BLOCKING_REGION(). * thread.c (rb_thread_run_parallel): rename to rb_thread_blocking_region(). |
86846f0ee50d4cd2a8783bc414a6e7904a6ece4f
|
2007-02-08 |
* test/ruby/marshaltestlib.rb: eval(sym) -> eval(sym.to_s) |
cff97cc9f0adbc40df8a05b5d3ce795f318bd489
|
2007-02-08 |
* test/ruby/test_module.rb: fix to use Symbol instead of String |
a0abd3c4b14f1387986fc87d273a305bb4bb16fa
|
2007-02-08 |
* test/ruby/test_string.rb: ("foo" == :foo) and ("foo" === :foo) should be false. * ChangeLog: fix last messages. |
9e249508162c80974a815504cf96c78e240e3a42
|
2007-02-08 |
* test/ruby/test_clone.rb: fix to current spec (Module should not be occur many times in ancestors). |
eb6153b37d480222b034dd24dfe7212e46644078
|
2007-02-08 |
* yarvtest/yarvtest.rb: check target command names. |
a9026242f2292cc7df06628652f4254c55c37e22
|
2007-02-08 |
* thread.c, thread_pthread.ci, thread_win32.ci (thread_start_func_1): move cleanup function to thread_start_func_2(). * thread.c, thread_pthread.ci, thread_win32.ci: add more destruct functions. (native_thread_destroy() and native_mutex_destroy()) * thread_pthread.ci, thread_pthread.h: make native_mutex_* functions (check error, etc), it's not macro any more. * thread_win32.ci (thread_start_func_1): store some values before running thread (to release these after running thread). * thread_win32.ci (native_thread_create): fix spaces. |
5ab816f7f7588f605299df7c545efb4545704a13
|
2007-02-09 |
* test/ruby/test_readpartial.rb: tests are working on mswin32/cygwin. |
a5abb1cb2199081dab0e8517ff6962517e389da0
|
2007-02-09 |
* thread_win32.ci (w32_show_error_message): renamed to w32_error. this function do rb_bug(). |
9895ce9f7706f1c941bee73ada4cb6ef2bd204b7
|
2007-02-14 |
* eval_load.c, yarvcore.h: use rb_vm_t#loaded_features instead of rb_features (global variable). * yarvcore.c: mark rb_vm_t#loaded_features. |
da06c63c66cd9901be498ab4a970332fbbeeceeb
|
2007-02-14 |
* thread.c (set_unblock_function): fix function interface. |
f2586498f3bb38310f039e7532c034011e2aef82
|
2007-02-14 |
* thread.c (do_select): fix to iterate select(). on cygwin/mswin32, iterate in unblocking region. * thread.c (rb_thread_select): don't iterate on this function. (iterate in do_select). |
b1c1f4957f820b6599a074e9fdc4bc3cb28bbee3
|
2007-02-14 |
* thread_pthread.ci (native_thread_create): adjust 4KB (page size) alignment. * thread_pthread.ci (CHECK_ERR): call rb_bug() instead of printf() and exit(). |
b9084ef40826d53bfd3a09c926b6d1c0eaf1645e
|
2007-02-14 |
* thread_pthread.ci (native_thread_create): adjust 4KB (page size) alignment. (missed at last commit) |
bee3de05ad672461623a0feef8c53dab2e4a5652
|
2007-02-14 |
* configure.in: change stack limit to 2MB from 32MB. * win32/Makefile.sub: ditto. |
970df0d1385ea23c453f4779050a31c4379d6d11
|
2007-02-14 |
* lib/delegate.rb: catch up with class local variable (@_v) spec. * lib/singleton.rb: ditto. |
a8d47615da58b73423cf638f57b694d6ab463b9b
|
2007-02-14 |
* test/fileutils/test_fileutils.rb (check_singleton): fix to use symbole instead of string. * test/io/nonblock/test_flush.rb: enable tests. * test/xmlrpc/test_webrick_server.rb: ditto. |
5e4e71a34852ccc8e871e384de19dccad347100c
|
2007-02-14 |
* vm.(c|h), yarvcore.(c|h) (yarvGlobalStateVersion): rename to ruby_vm_global_state_version. |
b13c74bf82d7d919de5cc85cc2b1992b128ba559
|
2007-02-16 |
* intern.h: add a prototype of rb_sym_to_s(). |
353cd251706d07ae4ffd66994a72acae06e98057
|
2007-02-16 |
* object.c (rb_obj_ivar_set/get/defined): fix to check :@_v/C id. * test/testunit/test_testcase.rb: fix to use instance_variable_get() to access @_result. |
661955cc39db3a96f9adc731e3df7c2fef9882ef
|
2007-02-20 |
* thread.c (do_select, rb_thread_wait_fd_rw): raise sys error if errno is not 0 and EBADF. |
db95cb49af50b005c26bdab8a80257f070f78fbe
|
2007-02-20 |
* test/io/nonblock/test_flush.rb: YARV doesn't raise any errors if another thread close IO object which current thread is blocking with. |
90a192865a9a57e8acecfdfd653386b4f335787b
|
2007-02-20 |
* eval.c, vm.c, yarvcore.h: move definition of rb_call_super() to vm.c from eval.c. change th_call_super() to static function. |
287aa3324af51a31acaf27c47ff73c9f76b8345e
|
2007-02-24 |
* common.mk: change vm_macro.def -> vm_macro.inc rule. |
e3155f4200b3567b323d788c15031004ccc71b7d
|
2007-02-24 |
fix ChangeLog. |
c5148e038316b3351b4c831773b83e08c11c20fb
|
2007-02-24 |
* test/testunit/test_testcase.rb: catch up with current instance variable spec. |
0fe72040e4c278bfafe232dc44551de2dfac85e2
|
2007-02-24 |
* parse.y, node.h, compile.c: change node tree structure. a purpose of this change is to unify argument structure of method and block. this change prohibits duplicate block parameter name. new argument infromation: NODE_ARGS [m: int, o: NODE_OPT_ARG, ->] NODE_ARGS_AUX [r: ID, b: ID, ->] NODE_ARGS_AUX [Pst: id, Plen: int, init: NODE*] optarg information: NODE_OPT_ARGS [idx, expr, ->] * vm_macro.def: ditto. * gc.c: ditto. * iseq.c: ditto. * compile.h: fix debug function name. * test/ripper/test_scanner_events.rb: |_,_,foo| -> |_1,_2,foo| * test/ruby/test_lambda.rb: disalbe test temporarily. |
61d521117a4b37865ca779f50901138aafc8334d
|
2007-02-24 |
* lib/soap/mapping/factory.rb: catch up with spec changes (return Symbols instead of Strings). * lib/soap/mapping/mapping.rb: ditto. |
71986ef6bc232455deca67017873fff0c3cbd860
|
2007-02-25 |
* yarvcore.h: rename: rb_iseq_t#file_name -> filename rb_iseq_t#local_tbl -> local_table add: rb_iseq_t#local_table_size * compile.c: separate local_table_size and local_size (local variable size) * blockinlining.c: apply above rename. * compile.h: ditto. * eval.c: ditto. * iseq.c: ditto. * proc.c: ditto. * vm.c: ditto. * vm_dump.c: ditto. |
571317ee309515494bcec3093b88b0c689a3bf0e
|
2007-02-25 |
* thread.c (rb_thread_run): fix to ANSI style. |
757ed3ccf1047480729f848552dd360d827843d3
|
2007-02-25 |
* ruby.h: define RUBY_VM macro and remove NATIVETHREAD* macros. * intern.h: ditto. * signal.c (posix_signal): remove unused function posix_nativethread_signal(). |
fd6f1f0a7174a412007f24d669790624927fb965
|
2007-02-25 |
* win32/Makefile.sub: enable -Zi (debug) option. |
e98f7e1eaa18c33d211e6a0cf245eaf4b175c3c7
|
2007-02-25 |
* common.mk: change "gdb" rule. You can debug miniruby with $(srcdir)/test.rb on gdb by this rule (type "make gdb"). If you write break points to "breakpoints.gdb" on $srcdir, gdb runs with this file. |
9987d53e519cf84fe47ffbbd4f48be0bc40938c7
|
2007-02-25 |
* yarvcore.h: add rb_thread_t#top_wrapper, top_self. * eval_load.c (rb_load): support eval in wrapper module (load(file, true)). * eval.c: ditto. * eval_jump.h: ditto. * iseq.c: ditto. * vm.c: ditto. * yarvcore.c: ditto. * insns.def: add a empty line. |
8a1b1c2b41b475cc40a8013623b5b6fe5381d6da
|
2007-02-26 |
* yarvcore.h, vm.h: rename th_invoke_yield() to th_yield(). * blockinlining.c: ditto. * eval.c: ditto. * vm.c, insns.def: rename th_invoke_yield_cfunc() to th_yield_with_cfunc(). * yarvcore.h, yarvcore.c: rename theYarvVM to ruby_current_vm and yarvCurrentThread to ruby_current_thread. remove yarvVMArray. |
bb7a2d40ff6190f819feb3d9eef0caaffec1a3f9
|
2007-03-21 |
* compile.c, parse.y, eval.c, intern.h, iseq.c, lex.c, node.h, proc.c, vm.c, vm_macro.def, vm_macro.def, yarvcore.c, yarvcore.h, debug.c, debug.h: merge half-baked-1.9 changes. The biggest change is to change node structure around NODE_SCOPE, NODE_ARGS. Every scope (method/class/block) has own NODE_SCOPE node and NODE_ARGS represents more details of arguments information. I'll write a document about detail of node structure. |
baeb828c03e96b1f78c296fe4e12602e57497401
|
2007-04-12 |
* compile.c (iseq_compile_each): check node->nd_state == 1, not !0. |
cc3871f9dcd8f89d6e554f59ff02c67dde42fc37
|
2007-04-12 |
* eval.c (rb_protect): restore cfp ([ruby-dev:30671]). |
e0943c481ab3fc3a5a35e3f7a71d97ad93f7036f
|
2007-04-12 |
* eval.c (rb_rescue2): restore cfp ([ruby-dev:30582]). |
0089455e53628edf94060b56203279ad59c32553
|
2007-04-12 |
* thread.c (mutex_try_lock): check and set owner thread. * thread_pthread.ci: fix to show error code in error message. |
2dd91facca2337ff611489f1ccd84441d8fc9bf2
|
2007-04-19 |
* lib/optparse.rb: fix to override conv proc. |
a73894337a830cdd32a913964f3150bc35269975
|
2007-04-19 |
* eval.c, node.h, thread.c, yarvcore.[ch], eval_intern.h: support set_trace_func (incomplete. id and klass don't be passed). And support Thread#set_trace_func which hook only specified thread and Thread#add_trace_func which add new trace func instead of replace old one. C level API was modified. See thread.c (logic) and yarvcore.h (data structures). * vm.c, vm_macro.def: add hook points. * compile.c, insns.def: fix "trace" instruction. * iseq.c, vm_macro.h: add compile option "trace_instruction". * test/ruby/test_settracefunc.rb: hook "c-return" of set_trace_func. |
52ecaf65b0ff40492c5a85cdd9f5cd34201b4a0e
|
2007-04-20 |
* eval_intern.h: add prototypes of rb_sourceline() and rb_sourcefile(). |
abcbd7ea38f64f942a934ba065aabf9da81a21bc
|
2007-04-25 |
* yarvcore.h: remove rb_control_frame_t#callee_id. * vm_macro.def: ditto. * eval_intern.h (exec_event_hooks): fix to check event flags * eval_intern.h (EXEC_EVENT_HOOK): fix to re-check event flags. * ext/probeprofiler : added. this profiler is sampling based profiler. * vm.c: add rb_thread_current_status() API for probeprofiler. * thread.c (rb_thread_execute_interrupts): add comments. |
ec4a7ccf86c6be8d54934dd70c8e69fed328a612
|
2007-04-25 |
* ext/probeprofiler/probeprofiler.c: fix function name and return value. |
9d89855052b008c4f366164e36ab88ed49c21e52
|
2007-04-26 |
* compile.c: support multiple splat (e.g, [a, *b, *c, e, *f]). |
75d28f887089c8582b63a64cf5df1d0270f15cc1
|
2007-05-01 |
* yarvcore.h, compile.c (set_arguments): support post arguments. * test/ruby/test_method.rb: add tests for above. * test/ruby/test_proc.rb: ditto. * proc.c: fix an arity bug ([ruby-core:11029]). * vm.c, vm.h, insns.def, vm_dump.h: fix bmethod process. * vm.c: support block argument on block parameter. |
f80841275d23122872e528f75f975270cb7b1624
|
2007-05-01 |
* proc.c (proc_arity): fix an arity bug ([ruby-core:11060]). |
9ca1fec41b62d40d9cf3b6034e6364290592a7ee
|
2007-05-01 |
* sample/test.rb: import matzruby's sample/test.rb. |
f53a94c83124ce44a53e4262cdd30ffa53016f1a
|
2007-05-02 |
* compile.c: use Qtrue instead of 2. * vm.c, insns.def: support "lambda" calling convention. |
1db71b2ecae2d35c700de5a4d8257c3617a093ae
|
2007-05-02 |
* eval_method.h: add redefine checks ([ruby-dev:30751]). |
fba2420be4f16a74ed867098ef256c3702ffb5d4
|
2007-05-02 |
* vm.c, yarvcore.h, yarvcore.c, insns.def: fix to mark VM stack in correct range. |
84fbcb9694b01e47c9adbbcb4dbd4f46241940bb
|
2007-05-17 |
* debug.c (ruby_debug_node): fix to show node line. |
82068396594c85a3686cb73a52a57cb60745b394
|
2007-05-17 |
* iseq.c (ruby_iseq_disasm): fix to show post arg info. |
ebaec402a7b3ee6c88aaaaa7fa3dfb103f614a40
|
2007-05-17 |
* parse.y, compile.c (set_arguments): fix to support in-paren parameter (ex: def foo((a, b))). |
affa7430b70336b53cd496496d889c2544d41322
|
2007-05-21 |
* compile.c, vm_macro.def: support tail call optimization (on default, this feature is not enabled). * iseq.c, compile.c, vm_opts.h: add "tailcall_optimization" option. * sample/test.rb (test_ok): fix to adjust tailcall stack layout. * insns.def, vm.c, compile.c, yarvcore.c, yarvcore.h: add opt_gt, opt_le instructions. |
7c4ff2d3322753479b3974105e5100b6f4e43001
|
2007-05-23 |
* cont.c: support callcc which everyone love. incomplete. please give me bug reports. * common.mk, inits.c, thread.c: ditto. * yarvcore.c: export thread_mark(). * yarvcore.h: disable value cache option. * eval_intern.h: set th_get_ruby_level_cfp to inline. |
7d200b94f946f0caffa3ea3a72783855e421df32
|
2007-05-24 |
* gc.c, yarvcore.c: fix to mark VM structure on startup. * yarvcore.h: disable USE_CACHED_VALUE. |
e4aa7208e5b8b5aff35af4b262291ab2c39e66d9
|
2007-05-24 |
* cont.c: check across trap violation. * eval.c, yarvcore.h: ditto. |
57062d91b9bfb1688151cd2393011504fd26f0d8
|
2007-05-27 |
* cont.c: support Fiber. Check test/ruby/test_fiber.rb for detail. Fiber is known as "Micro Thread", "Coroutine", and other terms. At this time, only Fiber#pass is supported to change context. I want to know more suitable method name/API for Fiber (... do you know more suitable class name instead of Fiber?) as "suspend/resume", "call", "yield", "start/kick/stop/restart", .... * eval.c, eval_intern.h, thread.c, yarvcore.c, yarvcore.h: ditto. |
d64609463fb755d94922e0d205283416542d9ea2
|
2007-05-29 |
* cont.c: fix bug around Continuation and Fiber. * test/ruby/test_continuation.rb: add tests for Continuation. |
284565992f487937080230d3ae2b5afae4c8ac3f
|
2007-05-30 |
* cont.c (cont_capture): store all local variables in heap ([ruby-dev:30832]). * vm.c (th_stack_to_heap): added. * test/ruby/test_continuation.rb: add a test for above. * eval_intern.h (th_get_ruby_level_cfp): fix to clean code. |
66d4a354a874fb8539e0e421a684c34d8890ad22
|
2007-06-02 |
* proc.c (Init_Proc): remove a line break. |
6b3ef2249cc6d03b9e153a1bbfb24eb12d4032a5
|
2007-06-02 |
* cont.c (Fiber#pass): rename to Fiber#yield. Block parameter of fiber body receive first yield values. e.g.: Fiber.new{|x| p x}.yield(:ok) #=> :ok * cont.c: rename rb_context_t#retval to rb_context_t#value. * test/ruby/test_fiber.rb: ditto. |
203286673d0c66fdcaf6e65acfa267aaebdc3400
|
2007-06-05 |
* insns.def (invokeblock): check block is created by lambda or Proc.new. * vm.c (block_proc_is_lambda): added. |
78029f00d5e330ea7bb594d1abef54e490effc2d
|
2007-06-05 |
* parse.y (new_yield), compile.c (iseq_compile_each): fix passing parameter. * eval.c, eval_jump.h: simplify rb_yield*. * proc.c (proc_mark): fix to mark proc->block.proc. * proc.c (Init_Proc): add Proc#lambda? * test/ruby/test_lambda.rb: add some tests. * vm.c (invoke_block): fix to check lambda block or not. * vm.c (th_yield_setup_args): fix to check arguments size when lambda block. |
64ffdb44402f365198ba45c84fa15e449f3411e6
|
2007-06-05 |
* cont.c (rb_fiber_start): clear th->tag and check error to fix [ruby-dev:30888] and [ruby-dev:30889]. * eval_intern.h: fix rb_fiber_start() prototype. * test/ruby/test_fiber.rb: add tests for above. |
9a524fad38693240a0ac9c8dbfcb956516475861
|
2007-06-06 |
* compile.c (iseq_compile_each): fix around yield arguments (with NODE_ARGSCAT). |
15b31b0d80dd9959873d1db0a76e269a556790ac
|
2007-06-06 |
* cont.c (rb_cont_call): forbid calling dead fiber with Cotinuation#call. |
9c0b2b8b65dc27d27bcd2d417a116e7a343399a2
|
2007-06-06 |
* test/ruby/test_continuation.rb: add a test for last commit. |
bf544c05d26ec4cb151cd322e69a495a58924a0d
|
2007-06-06 |
* eval.c (rb_yield): fix to check Qundef. |
6c5a50ff3357c7ca913f9772a8f98a7edcecfcfd
|
2007-06-06 |
* insns.def (invokeblock): fix of splat argument. (splat same as normal method dispatch) |
ed8897523701745467cf831ff19ec3268856cf6e
|
2007-06-06 |
* eval_intern.h, eval.c (ruby_init): remove POP_TAG_INIT(). * cont.c (rb_fiber_start): remove zero-clearing tag. |
d80e7373cfb0ca1558bdeb79643c53db5f9ce4d8
|
2007-06-06 |
* cont.c (cont_new): add debug message. * cont.c (cont_restore_1): copy stack information from fiber. * cont.c (rb_fiber_s_new): fix to mark created fiber. * test/ruby/test_fiber.rb: add some tests around Thread and Fiber. * yarvcore.c (thread_free): fix to skip freeing stack if root fiber is available. |
6d2dee14f3d5d4224effd0ec2d8fbc07dc54cbac
|
2007-06-06 |
* test_fiber.rb: add a test (Continuation and Fiber). |
8620de6b042f2c069a25d7fdbf5b1d5a3ffd87a9
|
2007-06-07 |
* cont.c (cont_restore_1): fix to check root fiber [ruby-dev:30911]. * test/ruby/test_fiber.rb: add a test. |
d7d85f9ecdfb34b80a9d44f24462e0bdc1542b7a
|
2007-06-07 |
* iseq.c (prepare_iseq_build): freeze filename and name string. * variable.c: freeze class name string. |
72734ac15451af26a7eac789cfaa3ed61bd002f8
|
2007-06-07 |
* thread.c (rb_thread_execute_interrupts): invoke ensure when main thread exits. |
3a6860058ef4990c519dd21ba67e422010cbcbe1
|
2007-06-08 |
* eval_jump.h: th->errinfo should clear with nil. |
f84c8cb19079cbfe2b5433a7b3e1eca4eae3ef22
|
2007-06-15 |
* sample/test.rb: fix to show line information whether test succeeds. |
31ac946975a8e20157e1f47d23546ae237484024
|
2007-06-15 |
* cont.c (rb_cont_call): forbid cross fiber continuation call. * test/ruby/test_fiber.rb: ditto. |
70df6311af85b7f53b5c730502d4b9a94fa23cc9
|
2007-06-15 |
* eval.c (ruby_finalize_1): rb_thread_t#errinfo should be clear with Qnil. |
7567fbf080552e04df4b5d2af9d601cf1d345b11
|
2007-06-15 |
* vm.c (th_yield_setup_args): |v| should work as |v,|. ex) def m;yield 1, 2; end; m{|v| p v} #=> 1 * parse.y: apply above change for "for" statement. * test/ruby/test_assignment.rb: ditto * test/ruby/test_basicinstructions.rb: ditto. * test/ruby/test_iterator.rb: ditto. * test/ruby/test_yield.rb: ditto. * compile.c (iseq_compile_each): fix debug. |
7307d38c4fb5c6943bab8859e178d2d28769a64c
|
2007-06-15 |
* test/ruby/test_iterator.rb: remove debug code (GC.stress=true). |
afb1901848f9b6998f320423474e830a1e95d780
|
2007-06-15 |
* hash.c: exchange semantics of Hash#each and Hash#each_pair. pointed out by [ruby-dev:30997]. * test/ruby/test_iterator.rb: ditto. * test/ruby/test_yield.rb: ditto. |
5cbefb96b998480208b26ea260658c985bf7b861
|
2007-06-15 |
* insns.def(setconstant, toregexp): fix to mark object correctly. |
4471bf2356b86683c8490de12d2d199eea461e3a
|
2007-06-17 |
* signal.c (sigsegv): clear gc_stress flag on SEGV. |
d220634bb7d1e3b13e12fe444de709c4ab9df458
|
2007-06-17 |
* vm_dump.c (vm_stack_dump_raw): hide VM stack trace. |
8adc4541ff4fa7caa2fbd3c006465305e21e336a
|
2007-06-17 |
* vm.c (env_mark): fix to mark block.proc. * vm.c (th_make_proc_from_block): set created proc to block->proc. |
3aa45744ab0d100934dcefcc90fdf157f259c7f4
|
2007-06-24 |
* bootstraptest/runner.rb: set default directory to '/tmp/bootstraptest.tmpwd' and add --dir option. fix to output driver and target information. * common.mk: fix to run btest on BASERUBY and add OPTS to pass option ("make btest OPTS=..."). |
68e02f2c2cc98e6ab736b3122aafe7a2398642f6
|
2007-06-24 |
* vm.c (callee_setup_arg): added. support correct post arg. * vm_macro.def (macro_eval_invoke_func): fix to use callee_setup_arg. * compile.c (set_arguments): adjust for above changes. * compile.c (iseq_compile_each): ditto. * iseq.c (ruby_iseq_disasm): ditto. * yarvcore.h: add rb_iseq_t#post_arg_start and arg_size. * bootstraptest/test_method.rb: add post arg tests. |
adc677eb5cd3aed1986c3316d5b98ed942f544d5
|
2007-06-24 |
* insnhelper.h: change CHECK_STACK_OVERFLOW() to throw exception. * vm.c (caller_setup_arg), vm_macro.def: remove macro_eval_setup_send_arguments and add caller_setup_arg(). * insns.def: ditto. * bootstraptest/test_method.rb: add splat arg tests. |
f2074245b4c4d712cb74716c680d876eda9b8789
|
2007-06-24 |
* insns.def, vm.c: add/fix stack overflow check. |
1757fc9927fe25b761fca9f2391d1982e7a781c3
|
2007-06-24 |
* vm.c, vm_macro.def : remove macro_eval_invoke_cfunc() and add vm_call_cfunc(). |
59202b7ab8147f3947900a919fcf82bc5f3e74e7
|
2007-06-24 |
* insnhelper.h (RESTORE_REGS): add do/while(0) around macro. * vm.c, vm_macro.def: remove macro_eval_invoke_func() and add vm_setup_method(). use it instead. |
904b9e5d547f4f9a9f3236d2633f0cb6d7aae14c
|
2007-06-24 |
* vm_macro.def: removed. * insn_send.ci: added. this file includes send instruction body. * common.mk: ditto. * insns.def: ditto. * tool/insns2vm.rb: ditto. * vm.c: ditto. |
62deb7dbbda5104c352abd723053bd1b18e50dbf
|
2007-06-24 |
* insn_send.ci: removed. * common.mk: ditto. * vm.c (vm_call_bmethod), isnsn.def: added. fix to use this function instead of using goto. * vm.c (vm_call_bmethod): renamed from th_invoke_bmethod(). * vm.c (vm_method_missing): renamed from eval_methdo_missing(). * vm_evalbody.ci: remove tmp_* variables. * insnhelper.h: add some macros. * insns.def: forbid zsuper from method defined by define_method(). * test/ruby/test_super.rb: ditto. |
a5c2d584284e2b137b1d4d06574470a971c9087e
|
2007-06-24 |
* eval_method.h (rb_add_method): fix to check 0. |
97ba019c9410ccb5ec76f6b54fd2e140b7583038
|
2007-06-24 |
* vm.c: some refactoring. * rename th_* to vm_*. * remove unused variables functions. * add prototypes. * blockinlining.c, compile.c, cont.c, eval.c, eval_intern.h, eval_jump.h, eval_load.c, inits.c, insns.def, iseq.c, parse.y, proc.c, process.c, signal.c, thread.c, vm.c, vm_dump.c, vm_evalbody.ci, yarvcore.c, yarvcore.h: ditto. |
61fa3576222f7bee1ecc8486075baee62936c840
|
2007-06-24 |
* insns.def (invokesuper): fix error message. |
7980e653e57ae5b539533dee1d0b1a00fc16ea5d
|
2007-06-24 |
* call_cfunc.ci: removed. * insnhelper.ci: added. this function includes all functions that vm insns need. * common.mk: ditto. * insnhelper.h, vm.h, vm.c: move some declaration. * gc.h: remove GC_CHECK() macro because GC.stress is more useful. * compile.c, iseq.c, vm_dump: ditto. * gc.h, thread.c: move a prototype decalaration. * debug.c, debug.h: rename some functions. * compile.h: ditto. |
144ff322c7adcc600139da1cfacf0e98010c1bce
|
2007-06-24 |
* insnhelper.ci (caller_setup_args): add need_block_check option. * insns.def: ditto. * yarvcore.h: add GetCoreDataFromValue(). |
6bd0345627f383f1d1b041edba2a255ea4cdfb9b
|
2007-06-24 |
* eval_*.h: rename to eval_*.ci. * common.mk: ditto. * eval_error.ci: remove ruby_set_current_source(). * error.c, eval.c, ruby.c: ditto. * eval_safe.c, proc.c: remove unused macros. |
f58eb1e276a2db3ff2062c80a7acf97860aca8ca
|
2007-06-24 |
* eval.c: remove ruby_current_node and change eval() prototype. fix to use rb_sourcefile/line() instead of ruby_sourcefile/line. * error.c, eval_error.ci, eval_load.c, eval_safe.ci, gc.c, include/ruby/intern.h, parse.y, process.c, ruby.c: ditto. * vm.c: fix spaces. |
4bdb5ced9a06532d33e6aa0dd6be49e863b31d22
|
2007-06-25 |
* gc.h: add RUBY_ prefix to debug macros. * cont.c, proc.c, yarvcore.c, * gc.c: define ruby_gc_debug_indent variable to debug mark/free. * vm.c, insnhelper.ci: rename some functions to vm_* or rb_vm_*. move some functions, definitions, declarations to suitable files. * eval.c, yarvcore.h, eval_error.ci, insnhelper.ci: ditto. |
ed4e57690c9cc782ab8675c4bf48153ce0a36896
|
2007-06-25 |
* insnhelper.ci, vm.c: complete block parameter support. post arguments, optional arguments, block argument. * compile.c, parse.y: fix {|a|} parameter. * insnshelper.ci, insns.def: revert caller_setup_args() option (need_block_check) parameter. |
762a7ec12e1cd6cd59129eeb1ed42035157ded2a
|
2007-06-25 |
* compile.c (setup_arg): support kind of "m(*ary, x)" method call. ([ruby-dev:31048]). |
0043929b5f564ef6c9377d8321a4e4a4b7ec6e14
|
2007-06-25 |
* compile.c: rename setup_arg() to setup_args(). fix to use setup_args() at processing NODE_YIELD. |
702e431f1b3741ac3e88d05e450f32b745207f5c
|
2007-06-25 |
* cont.c (rb_fiber_s_new), yarvcore.c (th_init2): fix to clear VM stack ([ruby-dev:31046]). |
1a49d91fddf47bd791836a20505558c724fa491b
|
2007-06-25 |
* cont.c (rb_fiber_s_new): fix to clear rb_thread_t#tag. |
8bfcdf323f1843237140e9f119496b93557eaefd
|
2007-06-25 |
* insnhelper.ci (vm_yield_with_cfunc), proc.c: fix Method#to_proc to return lamba Proc ([ruby-dev:31021], [ruby-dev:31037]). |
931574010102b4bd9db6cfb17b840e28b26030e6
|
2007-06-26 |
* cont.c (rb_fiber_s_new): revert initializing VM stack. * yarvcore.c (th_init2): ditto. * vm.c, vm.h: fix to stop using Qundef on VM stack. According to this change, VM stack should not include Qundef value. * insns.def (putundef): removed. * compile.c (iseq_compile_each): ditto. * eval.c (eval): fix spacing. |
02ae0a3e76dab85cfe7a363bf23d00d3af9e2455
|
2007-06-26 |
* iseq.c (ruby_node_name): update node names. |
ab7c645fee1f3776951da9928c57f774c80e55ce
|
2007-06-26 |
* thread.c (rb_thread_wait_fd_rw): terminate fdset. |
30ab3f75f9a8399c300359ea84e25f9a93df73ae
|
2007-06-26 |
* compile.c (compile_massign), insns.def (expandarray): support postarg with massign (a, *b, c = ...). * bootstraptest/test_massign.rb: add tests for above. * compile.h: fix debug macro names. |
35ecb83d413f5d7143dd269b2d591cb742526a90
|
2007-06-26 |
* compile.c (iseq_compile_each): fix type error. |
c44e2cdd58efbe13ed3b57cd56f98fc81ea64c2e
|
2007-06-27 |
* vm_evalbody.ci: support OPT_CALL_THREADED_CODE. * insns.def, vm.c, vm.h: ditto. * vm.h: add VM_CFP_CNT() and VM_SP_CNT(). |
41e9245e853c6d1f02a60f431afa87aeb7749787
|
2007-06-27 |
* compile.c (iseq_translate_direct_threaded_code): fix prototype function name. * vm.h: add correct cast. |
4a7d47e41a771bda537ce92139500fb441ad6fd3
|
2007-06-27 |
* compile.c (iseq_compile_each): fix popped backref and others. ([ruby-dev:31068]). * compile.c (iseq_compile_each): remove needless statements. |
fd78c2193e7032389a2a3ff9154654fa231ac8f0
|
2007-06-27 |
* include/ruby/node.h, parse.y, gc.c, iseq.c: remove NODE_CREF. |
caa535286d7442ddcbc1caf9fb2778efd435c56d
|
2007-06-27 |
* bootstraptest/runner.rb: fix to show file name. * bootstraptest/test_*.rb: add bootstarp tests. |
c1ac175af5d819d319e4410602be9a9e64e37566
|
2007-06-27 |
* compile.c (setup_args): change parameter type. |
c1849cf09476181825ab5f59f819245d3559bfa2
|
2007-06-27 |
* bootstraptest/runner.rb: fix to untouch $:. |
fd58a0836f2c4d0cf1c03be97011691a29a035ba
|
2007-06-27 |
* common.mk (run.gdb): fix to load $(srcdir)/.gdbinit * vm.c (rb_vm_set_finish_env): add a cast. * vm.h: support __fastcall for MSVC. |
b73d7a44aa97a422f9a6781b87fb9a0f12b9b56b
|
2007-06-28 |
* compile.c: fix to remove -Wall warnings on gcc. * compile.c (make_name_with_str): removed. use rb_sprintf() instead. |
480c602bdc9ad15c40e093bd1acf9776e3ade5de
|
2007-06-28 |
* win32/Makefile.sub: define FUNC_FASTCALL macro. * vm.h: fix to use FUNC_FASTCALL macro. TODO: add FUNC_FASTCALL macro by configure. |
ca9b486294fa860c5fbe9a3b29e1cde7b4935b7c
|
2007-06-29 |
* tool/insns2vm.rb, lib/vm/instruction.rb: move process body to lib/vm/instruction.rb. * common.mk: fix aotc rule. experimental. bin/ruby2cext is not added yet. |
3d04e2e40f1bbcf2ad56e4a19f72178d33dbf596
|
2007-06-29 |
* configure.in: add fastcall attribute check. |
6aacb0ede41385bf1bb6328931a5c071de7345d3
|
2007-06-29 |
* proc.c (proc_new): fix to return a proc object which block is contained. |
6c635566c08f8c44ff98dbcd8f19f518109d549f
|
2007-06-29 |
add a Mainling list pointer. |
e648fc492344f07744ad3c32d9fbe405c9dd8a43
|
2007-06-29 |
add a Mailing list pointer. |
0d7e74a6bebf02a289f77c13c34dc5c8d4934478
|
2007-06-29 |
* parse.y: fix to show line number of blank block. [ruby-dev:31093] |
eb9aaa4c4fdaee9225e1843a71b5cdefaf179db6
|
2007-06-30 |
* vm.h: rename insn_func_type to rb_insn_func_type. * vm_evalbody.ci: ditt. * insns.def: add opt_call_native_compiled instruction instead of opt_call_native_compiled. |
6a69ad4df1719516a2da8b95872d3a44deae026c
|
2007-06-30 |
* yarvcore.h: some refactoring on rb_iseq_t. rename some variable names, add comments, etc. * compile.c, iseq.c, proc.c, vm.c: ditto. |
061cce6d6f98021d5c5d1b7912d4fcf1955f5240
|
2007-06-30 |
* insnhelper.h, vm.h: some refactoring. remove useless comments, etc. |
27013e71e4ca0417ad8a694bb743de5457ed3ff7
|
2007-07-01 |
* yarvcore.h, compile.c, insnhelper.ci, iseq.c, vm.c: rename structure names and field names. * insnhelper.h, insns.def: add GET_CONST_INLINE_CACHE(). * iseq.c: add rb_iseq_build_for_ruby2cext(). * yarvcore.h, vm.h: move declaration of rb_insn_func_t to yarvcore.h. |
1ccf555a707324facc28f8a8f075c5e23a0a359d
|
2007-07-01 |
* compile.c, iseq.c: fix iseq some of load/store process. |
9c708baa2de1db5eb3541459385967c9b6a8dbd4
|
2007-07-01 |
* eval_intern.h, yarvcore.h: move declaration of sysstack_error to yarvcore.h. * iseq.c: fix symbol name (:toplevel -> :top). * lib/vm/instruction.rb, template/vm.inc.tmpl: replacable current file name. |
ee457d92c2d99d85f61346ccd7dd3a6c21b294b6
|
2007-07-02 |
* compile.c: rename iseq_translate_direct_threaded_code() to iseq_translate_threaded_code(). * eval_intern.h, yarvcore.h: mv EXEC_EVENT_HOOK() and exec_event_hooks() to yarvcore.h. * insnhelper.ci, vm.c: mv yarv_finish_insn_seq to vm.c. * insns.def (opt_call_c_function): fix to use RESTORE_REGS(). * iseq.c (rb_iseq_build_for_ruby2cext): fix to allocate iseq. |
0e5360b2e406fd0f182e62bc5cb38be4d43a9afc
|
2007-07-03 |
* cont.c (cont_save_machine_stack): clear saved_thread.machine_stack*. |
d82f3e7d5cf98f484cd1b3ed397e45d2fd7cf806
|
2007-07-03 |
* compile.c (compile_massign): fix massign compilation (example: a, *v, (*x) = ...). [ruby-dev:31107] * bootstraptest/test_massign.rb: add tests for above. |
1d8ce92a37df9e8c1f9a68de82fee8c9b3e66af6
|
2007-07-03 |
* compile.c (iseq_compile_each): support v[&b]= type method call. [ruby-dev:31094] * bootstraptest/test_method.rb: add a test for above. |
590609f255378694c085b5ee20a6a083d4eab0c3
|
2007-07-03 |
* compile.h: fix debug print level. |
43bbe2841daf838111aa3f2687c23506191e76e7
|
2007-07-03 |
* compile.c (compile_array): ignore NODE_ZARRAY. [ruby-dev:31110] * bootstraptest/test_method.rb: add a test for above. |
04e9a81b8e969dd4827219572880c05e5fbac2f8
|
2007-07-03 |
* compile.c (compile_array, iseq_compile_each): fix about array generation in void context. [ruby-dev:31102] * bootstraptest/test_literal.rb: add a test for above. |
21b644e8123d357df653b65689273be51617bae3
|
2007-07-03 |
* insnhelper.ci (caller_setup_args): fix to show correct class on an error message (ex: m(&1)). [ruby-dev:31101] |
e96cd603e5f5da7a887cff4feded62ff05d02d0d
|
2007-07-03 |
* iseq.c (set_relation): added. |
0bb4c2b3db16c7e1c23877f1f1efc216c601f3d0
|
2007-07-05 |
* compile.c (iseq_compile_each): add break catch point. * insns.def (throw): support correct "break" and "return". this commit achieve that "make test" passes all tests. * vm.c: ditto. |
6a858e554c646c52f05f38b876e97322302c5c3d
|
2007-07-05 |
* test/ruby/test_basicinstructions.rb: remove an assertion using unsupported hash literal (such as {1, 2}). * test/ruby/test_hash.rb: ditto. |
0d0ef6eccc50ed95d8babcf5381426c70c4d4b30
|
2007-07-05 |
* yarvcore.h: rename rb_control_frame_t#magic to flag. * vm.h: add VM_FRAME_TYPE() and VM_FRAME_FLAG(). * cont.c, insnhelper.ci, insns.def, vm.c, vm_dump.c, vm_evalbody.ci, yarvcore.c: apply above changes. |
b9171a73c4f0d212b723e0160859ab69b89b3339
|
2007-07-05 |
* insns.def: fix to invoke nil.to_splat on NODE_ARGSCAT. [ruby-dev:31138]. * bootstraptest/test_literal.rb: add tests for above. |
976bfae03be67236543367aef7b8a22df02cd37b
|
2007-07-05 |
* insns.def: remove unused code. * compile.c (compile_massign): fix to invoke to_splat on splat rhs (example: *a = *nil). [ruby-dev:31136] * bootstraptest/test_massign.rb: add tests for above. * compile.c (iseq_compile_each): disable excess optimization. [ruby-dev:31126] |
9aa9c07c077d918a2a70c7e60402d1e475c6686a
|
2007-07-06 |
* test/ruby/test_iterator.rb: fix test to 1.9 spec. |
616f4d33856a539e89aadfbf75ebb17acc7781da
|
2007-07-06 |
* bootstraptest/runner.rb: fix load path. * common.mk: fix "test" rule to run with "btest". * rubytest.rb, sample/test.rb: fix to show tests progress. |
0afe6cb08f97a2fdbfb945f8b5685a5fe79fa184
|
2007-07-07 |
* insnhelper.ci (vm_yield_setup_args), vm.c, insns.def: fix to pass nil as block parameter to yielded block. [ruby-dev:31147] * bootstraptest/test_block.rb: add a test for above. |
0ec2b20d2f1339ab1e4d41567f9b37d733802968
|
2007-07-07 |
* parse.y: fix node construction (around f_margs). [ruby-dev:31143] * bootstraptest/test_block.rb: add a test for above. * insnhelper.ci: fix indent. |
079976cac25cdc31805479a66c21c7fec1f9c2d2
|
2007-07-07 |
* compile.c: use rb_bug() instead of rb_compile_error(). |
a6e3d19f3ac344613da68dff705fb411d9120d63
|
2007-07-10 |
* vm.c, insnhelper.ci: fix svar interface. * compile.c (iseq_compile_each), yarvcore.h: fix to use new svar interface for flip flop. * eval.c: ditto. * insns.def: ditto. * include/ruby/intern.h: remove "rb_svar()" declaration. |
3ead5dcfb461a1ae8d7f48cbee408e1478783153
|
2007-07-10 |
* eval.c (exec_under): add proper casts. |
bc1e2ab306ada94a7169d5812dd8252743553102
|
2007-07-10 |
* eval.c, insnhelper.ci, vm.c: change cref index (-1 -> 2). |
302c311199c80ac9094dfa2b9781e6240f6a3092
|
2007-07-10 |
* hash.c (rb_hash_lookup): added. this function is similar to rb_hash_aref(), but doesn't call Hash#default when no entry exists. * include/ruby/intern.h: ditto. * insnhelper.ci (lfp_svar_get): use rb_hash_lookup(). |
6b6bf4dd481f744faf54b5efcda5f32e4565bd7d
|
2007-07-12 |
* blockinlining.c: remove "yarv" prefix. * array.c, numeric.c: ditto. * insnhelper.ci, insns.def, vm_evalbody.ci: ditto. * yarvcore.c: removed. * yarvcore.h: renamed to core.h. * cont.c, debug.c, error.c, process.c, signal.c : ditto. * ext/probeprofiler/probeprofiler.c: ditto. * id.c, id.h: added. * inits.c: ditto. * compile.c: rename internal functions. * compile.h: fix debug flag. * eval.c, object.c, vm.c: remove ruby_top_self. use rb_vm_top_self() instead. * eval_intern.h, eval_load: ditto. * gc.c: rename yarv_machine_stack_mark() to rb_gc_mark_machine_stack(). * insnhelper.h: remove unused macros. * iseq.c: add iseq_compile() to create iseq object from source string. * proc.c: rename a internal function. * template/insns.inc.tmpl: remove YARV prefix. * thread.c: * vm.c (rb_iseq_eval): added. * vm.c: move some functions from yarvcore.c. * vm_dump.c: fix to remove compiler warning. |
aebce0bb76fb68bb734ec4fc081ae0ece183990e
|
2007-07-13 |
fill ChangeLog entry. |
b626539e9b5cead657348e93d9f36d95d533b1eb
|
2007-07-13 |
* include/ruby/intern.h: remove unused function declarations. * include/ruby/ruby.h: ditto. |
2829c72cce152f5d0d198e47b9ea0c00ab44cc1e
|
2007-08-06 |
* bootstraptest/runner.rb (assert_equal): add additional message parameter. |
1a300415363ed3b87a7210aaed79623510e1fc9e
|
2007-08-06 |
* parse.y: fix a f_marg rule. [ruby-dev:31160] |
1951ef76cec33f2e6abcdb1a017972d53c032cfb
|
2007-08-06 |
* parse.y (value_expr_gen): fix to cause "void value expression" when jump expression such as "next" are shown on value_expr(). [ruby-dev:31119] * bootstraptest/test_syntax.rb: fix to above change. |
18c81c3d3ef53c6548c5fa0cad90efe2b3ae93cf
|
2007-08-06 |
* sample/test.rb: fix to output file name if it contains invalid syntax. |
fe0f6734bf0ee31f17b29e2e1c90d2ce8fb58e3f
|
2007-08-06 |
* lib/vm/instruction.rb (make_header_analysys): add to separate header addition process. |
7e2b837a3939b0c7473728c12579dd8930c3cfaf
|
2007-08-06 |
* lib/vm/instruction.rb (make_header_analysys): fix last commit. |
ae421c43dfda6e9a1e9af1edaa649a3de17ff07a
|
2007-08-06 |
* insnhelper.ci, insns.def: move some statements to functions. * vm.c, vm.h, vm_evalbody.ci: fix include/typedef places. |
99b51f6020e847826d60a5bae0fca451cf2e7994
|
2007-08-12 |
* template/yasmdata.rb.tmpl: fix type and name. |
b1c5d848f89dc4bc7a25909fed26b4d8dcebb074
|
2007-08-12 |
* vm_dump.c (debug_print_pre): fix to show control frame count. * insns.def (opt_call_c_function): fix operand type. * lib/vm/instruction.rb: ditto. * insnhelper.ci (vm_push_frame, vm_pop_frame): fix to show control stack status on if VMDEBUG == 2. * vm.h: add a comment about VMDEBUG. * iseq.c (find_prev_line_no): fix to skip bug report if line is not found. * lib/vm/instruction.rb: fix to use build_string() on source code generators. |
fc234a916a18f27b47005358c8ae3f7e4205415a
|
2007-08-12 |
insnhelper.ci: missed at last commit. |
161b2e264fcfc0ecb046b35245139e02847bbdb0
|
2007-08-12 |
* compile.c (iseq_peephole_optimize): fix peephole optimization bug. [ruby-dev:31360] * bootstraptest/test_syntax.rb: add a test for above. |
d7a19d03334075e29e14e0e2065d29b73e5d5350
|
2007-08-12 |
* thread.c (rb_thread_raise): check if target thread is thrown by another thread or not. [ruby-dev:31371] * bootstraptest/test_thread.rb: add a test for above. |
9cdeae9dad9f8ac8fe50b6b6f01ecd76f21f5e6b
|
2007-08-14 |
* common.mk: change test order (test -> btest). |
14c3aa52aeff4fed170b3dbe8666aaa851b654d2
|
2007-08-14 |
* proc.c (Init_Proc), eval.c (Init_eval), eval_intern.h: move init place of exception_error. * inits.c: ditto. * eval.c (Init_eval): set exception_error#throwed_state as TAG_FATAL. [ruby-dev:31407] * bootstraptest/test_exception.rb: add a test for above. |
686535d403395587995082e5436f3131e80a04d7
|
2007-08-15 |
* process.c (proc_geteuid): fix strange cast. [ruby-dev:31417] |
fe898043ccc99f3e127c63e0c18f4d2233bfa555
|
2007-08-15 |
* parse.y: fix rules around f_margs. "make test" passes all tests. * bootstraptest/test_block.rb: add some tests for above. |
fc5885aa7a6be99bf19a827a42d1de157a1f4a94
|
2007-08-15 |
* parse.y: remove "//" type comment. |
0aecfb04393982d79907539dcd202c71c28c7f53
|
2007-08-15 |
* inits.c (rb_call_inits): change initializing order. [ruby-dev:31420] |
f13e9b734cbdec6f93796aa68feb95f0b123a040
|
2007-08-15 |
* gc.c (os_live_obj): fix to skip T_VALUES. * sample/test.rb: add an ObjectSpace test. |
3efcb087a37b73f2c3095dcfbf44bfd7b43ae4d1
|
2007-08-15 |
* cont.c (rb_fiber_m_yield): added. use this function for Fiber#yield instead of rb_fiber_yield. |
571f22f5fe3fd3e265512c0e9ee4720482443301
|
2007-08-16 |
* compile.c (iseq_compile_each): fix next/redo stack consistency. [ruby-dev:31373] * bootstraptest/test_syntax.rb: add tests for above. * sample/test.rb: fix to use __FILE__ instead of $0 to know basedir. |
e7c3478261c30c64092a0f9532cb8b714911e1e8
|
2007-08-16 |
* insns.def (throw): insert a RUBY_VM_CHECK_INTS(). [ruby-dev:31361] |
4657257b75ff1d88e2653e4c408b0d98e7fbdc9a
|
2007-08-16 |
* iseq.c (ruby_iseq_disasm): fix to show arg_simple value. |
fc466622fd220b1d907d86cdbc3f74acc11a58ca
|
2007-08-16 |
* compile.c (iseq_set_arguments), insnhelper.ci (vm_callee_setup_arg, vm_yield_setup_args): fix block parameter problems. [ruby-dev:31437], [ruby-dev:31440] * bootstraptest/test_block.rb: add a test of [ruby-dev:31440]. |
04176dc21fb74c26a12895319a86eb2c3b138f90
|
2007-08-16 |
* compile.c (iseq_compile_each): fix thorw insn option of next. |
e5d5f5a61a484c5d3993cee2c02c4f501a6f74f8
|
2007-08-17 |
* thread.c (rb_thread_terminate_all): fix to ignore exceptions. * thread.c (thread_start_func_2): fix abort_on_exception process. [ruby-dev:31394] |
b982cff67c1e7e879b4532f496c40d9ebd3b1c0d
|
2007-08-17 |
* eval.c (rb_call), eval_method.ci (rb_add_method, rb_alias), insnhelper.ci (vm_call_method): fix to save safelevel for method node. * include/ruby/node.h: ditto. * bootstraptest/test_method.rb: add a test for above. |
ad272173cdeb8233757088d765ed16444dc7d17a
|
2007-08-17 |
* test/ruby/test_basicinstructions.rb: fix old tests. class variables should be inherited. |
2c5463fe99df8868e53817af834f1ecec9875515
|
2007-08-17 |
* compile.c (iseq_compile_each): massign should return rvalue(s). |
4d3a58bc693dc589293426c0115cbc6897e0a45e
|
2007-08-18 |
* compile.c (iseq_set_arguments), insnhelper.ci (vm_callee_setup_arg, vm_yield_setup_args): * bootstraptest/test_block.rb: add tests for above. |
77cc5f203126933569bb28ec77f8d3fb9df78019
|
2007-08-18 |
add ChangeLog entry. |
f72409043cb0e9cdea665ee7248ec98a9e523016
|
2007-08-18 |
* bootstraptest/test_exception.rb: add escape character ("\") for editors. |
2e83c555d83d379f65f8e6af79ce7bda36a7ba2c
|
2007-08-18 |
* insnhelper.ci (vm_callee_setup_arg): fix to check arguments correctly. [ruby-dev:31472] |
42cf6ee7530e312288ff78236f552e1b6d5ca341
|
2007-08-18 |
* eval.c: $! should not be writable. * eval.c (rb_rubylevel_errinfo): added. rb_errinfo() returns rb_threa_t#errinfo. rb_rubylevel_errinfo() returns $! value. |
0c031468fe31537bad55ce558e22a6c5da527d7d
|
2007-08-18 |
* compile.c (iseq_compile_each): fix to allow self.x= if x= is private. * bootstraptest/test_method.rb: add a test for above. |
2c5ae0eebad1397653f5dac5982cd5eba14ff35d
|
2007-08-18 |
* insnhelper.ci (vm_call_bmethod), vm.c (vm_invoke_proc_core): fix to do not restore $SAFE when proc invoked by bmethod. * vm_core.h: ditto. |
98e7aa679a65fc0ec8e476c52b7254d4d6d2350d
|
2007-08-19 |
* insnhelper.ci (vm_callee_setup_arg): fix to mark enough VM stack. [ruby-dev:31492] |
cd30220afff0d5473022bfb5749716364ebc05a8
|
2007-08-19 |
* insnhelper.ci (vm_call_bmethod): fix to propagate information that this proc is "from Method". [ruby-dev:31490] * proc.c (method_proc, rb_mod_define_method): ditto. * vm.c (vm_invoke_proc_core): removed. * vm_core.h: ditto. |
0a02ad5e2e2cdd7e3dcb33f40eae056a8dfdc639
|
2007-08-19 |
* compile.c (iseq_compile_each/NODE_RESBODY): fix to add additional nop to prevent tailcall optimization. * vm_opts.h: clean up comments. |
ad56f8c6110bd8233a4f2224ccdd1cc7ef645dc1
|
2007-08-20 |
* enumerator.c (next_i): fix to return with Fiber#yield at the end of each block. [ruby-dev:31470] * enumerator.c (enumerator_next_p): call init_next if not initialized. [ruby-dev:31514] * test/ruby/test_enumerator.rb: add tests for Enumerator. |
2d3724e05833f79e19f729195fdf0f01f081c5a6
|
2007-08-20 |
* test_enumerator.rb (enum_test): fix to return sorted array (for Hash test). |
3fffbe1e82d974a3bb6cdba58733086a369d4b06
|
2007-08-20 |
* test/ruby/test_enumerator.rb: fix last commit. |
c629aecbc810e8014a88943a2b3ddcb716aa6ffb
|
2007-08-20 |
* benchmark/bm_vm2_case.rb: add a new benchmark. YARV optimize case/when syntax. If every conditions are literal (such as Symbol, Fixnum, String), dispatch calc order will be O(1). |
c5e4cd063838033dff617f360a5b670b9eedaece
|
2007-08-21 |
* cont.c: add Fiber#resume and Fiber.yield. and Fiber::Core class to realize Coroutine. * include/ruby/intern.h: declare rb_fiber_yield(), rb_fiber_resume(), * enumerator.c: use above api. * test/ruby/test_fiber.rb: fix and add tests for above changes. |
e9a2d02fec6e3d662ed536f5b38bcbcedb549fa0
|
2007-08-22 |
* bootstraptest/test_knwonbug.rb: added. This file will contain test cases which point out known bug. If bug is fixed, tests should move to the suitable place. * bootstraptest/test_massign.rb: move a test which show known bug to test_knownbug.rb. |
95f37b477e09e2cfd2b75640ec805e1e6b7dd853
|
2007-08-22 |
* bootstraptest/test_knownbug.rb: fix typo of filename (test_knwonbug.rb). |
e39eb9dab50eaa681467e51145b37cdc11667830
|
2007-08-23 |
* compile.c, insns.def, parse.y: fix massign order. This change causes performance problem. Try vm1_swap benchmark. [ruby-dev:31522] * insns.def, insnhelper.ci: move process body of expandarray insn to vm_expandarray(). * bootstraptest/test_knownbug.rb, bootstraptest/test_massign.rb: move a solved test. |
ac150ad226ce961dd8b0563cb2cd52ca07beb71e
|
2007-08-23 |
* compile.c: optimize simple massign. |
b285d26a16c90f8e2d491592e793c3b40545aaf1
|
2007-08-24 |
* compile.c (compile_massign_opt): fix to skip massign optimization with global variables. * bootstraptest/test_massign.rb: add some tests for above. |
6bf7d3d8c08dbd96ec485bb856cb739139e720bc
|
2007-08-24 |
* prelude.rb: added. run this script on startup. * tool/compile_prelude.rb: compile prelude.rb to C string. (prelude.rb -> prelude.c) * common.mk: fix to build with prelude.c. * inits.c (rb_call_inits): ditto. * thread.c (Init_Thread): move definition of Mutex#synchronize to prelude.rb. |
487a7da22df69432d471a80982c446ec2e7db649
|
2007-08-24 |
* benchmark/bm_loop_generator.rb: added. |
85e3b4703208af36a0b15ecaf12c17f658138d8c
|
2007-08-24 |
* prelude.rb: fix Mutex#synchronize definition. |
2f17991bd12e45ba5e4ca4ae973ba0af3887b5d6
|
2007-08-24 |
* tool/compile_prelude.rb: fix to include "vm_core.h". |
d866a4202518df17b0acd02a601a56a4b44e252e
|
2007-08-24 |
* id.h, id.c: remove idFuncall. * compile.c (iseq_specialized_instruction): ditto. |
c289cf3a1ffa71217e597df051d945ff24126379
|
2007-08-25 |
* prelude.rb: add Thread.exclusive. This class method is different from 1.8's. Thread.exclusive only does synchronize with VM global mutex. |
977d66ec993b0f1892fb3e4cd8ac1c41716daf85
|
2007-08-25 |
* cont.c: separate Continuation and Fiber from core. * ext/continuation/*, ext/fiber/*: ditto. * include/ruby/ruby.h: remove rb_cFiber. * include/ruby/intern.h: add the rb_fiber_new() declaration. * enumerator.c (next_init): fix to use rb_fiber_new(). * test/ruby/test_enumerator.rb: remove next? tests. * test/ruby/test_continuation.rb: add a require 'continuation'. * test/ruby/test_fiber.rb: add a require 'fiber'. |
c2a734ea9946f88109b5ffc4507af66eed7f8cc8
|
2007-08-25 |
* cont.c: rename FIBER_STACK_SIZE to FIBER_VM_STACK_SIZE. |
5ba27573a0d179d0a39d9997cfde000b20cd0b87
|
2007-08-25 |
* string.c, include/ruby/intern.h: export rb_str_length(). * insns.def: use rb_str_lengt() in opt_length. |
cf16f0de0f01cbabec98e6efe8bcaaef2edeefe1
|
2007-08-25 |
* test/ruby/test_fiber.rb: fix to require 'continuation'. |
343c363d5b1374f3aca6f9ba6d755a156d03f3f5
|
2007-08-25 |
* insnhelper.ci (vm_call_method): fix to relaxant safe level check ($SAFE > 2). [ruby-core:11998] * bootstraptest/test_method.rb: add tests for above. |
2ca7ad139f651baa6b8093f0f51fc0358e47b2c9
|
2007-08-25 |
* insnhelper.ci (vm_setup_method): reorder code for branch prediction. |
d55c0f53825546c309dc613e34a96b2b13d61170
|
2007-08-26 |
* cont.c: fix to remove Fiber.new until fiber.so is not loaded. * test/ruby/test_continuation.rb: fix to use resume. |
6244e502cc12a7b8c5698740d3b5b355c1695e37
|
2007-08-27 |
* thread.c: fix Mutex to be interruptable lock. * thread_win32.ci, thread_win32.h, thread_pthread.ci, thread_pthread.h: prepare native_cond_*() which are based on pthread_cond_*() spec. * prelude.rb: fix Mutex#synchronize method. * vm_core.h, include/ruby/intern.h: change unblock function interface (to pass some user data). * file.c, process.c: ditto. * benchmark/bm_vm2_mutex.rb: add a benchmark for mutex. * benchmark/bm_vm3_thread_mutex.rb: add a benchmark for mutex with contension. * benchmark/run.rb: fix to remove ENV['RUBYLIB'] for matzruby. * test/ruby/test_thread.rb: add a test. * common.mk: fix benchmark options. |
88f13dfc7276ac7fbc4f010de9848ed8652c369c
|
2007-08-27 |
remove conflict sign. |
a22a489cdeafc3a92db2bd1dead932fac6cb3a4f
|
2007-09-06 |
* common.mk: fix typo. |
8b92f5df326ed21d1afeb8e7a6f46587846c9a1f
|
2007-09-14 |
* insnhelper.ci (vm_expandarray): should be volatile value for GC. |
d5e687b724f067fbd83652ed8f6aa037395861c0
|
2007-09-14 |
* vm.h, eval_intern.h: move some macros to eval_intern.h. * eval_jump.ci (rb_f_throw): fix to use NEW_THROW_OBJECT(). * eval.c (rb_f_loop): remove additional macro. |
34530b1ad317cb522233c72cb4dc0895a0f9cf6f
|
2007-09-14 |
* bootstraptest/runner.rb: add a stress test (-s). |
3e3953cd66b2204c12b779b73192d7f025019cb5
|
2007-09-14 |
* insnhelper.ci (vm_expandarray): assignment should be placed after creating new array. |
64221159aa3e9aa183d6083b04cca50de8009f93
|
2007-09-14 |
* test/ruby/test_io.rb: tests which cause SEGV should not be added. * bootstraptest/test_knownbug.rb: add above test to known bug. |
e826eec433728676af1bde2f6dde74a6f7126693
|
2007-09-26 |
* cont.c: Fiber as SemiCoroutine on default. [ruby-core:12146] * ext/fiber/fiber.c: enable Fiber#transfer. |
94331261e94b15fe06df26ec78668480c17537f5
|
2007-09-26 |
* insnhelper.ci (vm_throw): fix to move increment point. [ruby-dev:31840] |
67aa07f44d40e5e67081c6e8fef5af49caee1525
|
2007-09-26 |
* eval.c (eval): fix to check stack overflow. * eval_intern.h, vm.h: move CHECK_STACK_OVERFLOW() macro. |
f902e0946044222e4214ddde0e63ba64a435d7bb
|
2007-09-26 |
add ML number. |
ff2af1ed9843ac3bb7cddc014b58b5dcde225ebd
|
2007-09-26 |
* bootstraptest/test_knownbug.rb: move fixed tests. * bootstraptest/test_method.rb: ditto. * test/ruby/test_io.rb: ditto. |
55f7f3dd3c9569a33589e481cae8d727cafa60e5
|
2007-09-26 |
* bootstraptest/test_knownbug.rb: remove a fixed test. |
29538dbb0ed5dda03ecd6348b33ab29d174fcb58
|
2007-09-27 |
* ext/fiber/fiber.c: modify prototype declaration. [ruby-core:12247] |
87375866a629e64a646c1b32d0e50926a729ca11
|
2007-09-27 |
* benchmark/driver.rb: added. * common.mk: fix to use above driver. * benchmark/prepare_so_count_words.rb: added. * benchmark/bm_so_count_words.rb: fix benchmark process. |
2fe11b75d631ea10a3dd3acbdb25ce40cb40a411
|
2007-09-27 |
* benchmark/driver.rb: fix to output some helpful messages. |
6698dd81e6d05b76baddf76703308c5d20f2a492
|
2007-09-28 |
* benchmark/driver.rb: fix file selection algorithm. |
225e95fe830494bf929a09f96ac518534e8b67fd
|
2007-09-28 |
* benchmark/bm_app_erb.rb: added. * benchmark/bm_io_file_(create|read|write).rb: added. |
8aa618d8e27e9728b6d102bf69e3294d7e9283e6
|
2007-09-28 |
* benchmark/driver.rb: fix to output benchmark results to file "bmlog-#{Time.now.strftime('%Y%m%d-%H%M%S')}.#{$$}". * benchmark/bm_io_file_create.rb: remove useless codes. * benchmark/bm_vm2_eval.rb: added. |
30b2cb380e0a8f777a2fc2d736c2ccddf3362fcd
|
2007-09-28 |
* benchmark/driver.rb: fix notations. * benchmark/bm_loop_whileloop.rb: ditto. * benchmark/bm_loop_whileloop2.rb: ditto. * benchmark/bm_app_uri.rb: added. * benchmark/bm_vm1_ivar_set.rb: ditto. * benchmark/bm_so_binary_trees.rb: added from Computer Language Benchmarks Game (http://shootout.alioth.debian.org/). * benchmark/bm_so_fannkuch.rb: ditto. * benchmark/bm_so_mandelbrot.rb: ditto. * benchmark/bm_so_meteor_contest.rb: ditto. * benchmark/bm_so_nbody.rb: ditto. * benchmark/bm_so_nsieve.rb: ditto. * benchmark/bm_so_nsieve_bits.rb: ditto. * benchmark/bm_so_partial_sums.rb: ditto. * benchmark/bm_so_pidigits.rb: ditto. * benchmark/bm_so_spectralnorm.rb: ditto. |
fbebfdf23db958e3bb06dc0d4ccadca48d748dff
|
2007-09-28 |
* benchmark/bm_so_fasta.rb: added. * benchmark/bm_so_k_nucleotide.rb: added. * benchmark/bm_so_reverse_complement.rb: added. * benchmark/make_fasta_output.rb: added. * benchmark/prepare_so_k_nucleotide.rb: added. * benchmark/prepare_so_reverse_complement.rb: added. |
534d057e58e68c5a65509e718366f2dab5e69e84
|
2007-09-28 |
* cont.c: Thread local storage should be fiber local. * bootstraptest/test_knownbug.rb, test/ruby/test_fiber.rb: move a fixed test. |
88f570d9ae5984decc313f10b54d259ff54fa525
|
2007-10-01 |
* proc.c (proc_dup): proc->block.proc should be self. * bootstraptest/test_knownbug.rb, test_method.rb: move a fixed test. |
c5f2bbaf829d35c65ccab8ef8d209646b552c4da
|
2007-10-03 |
* benchmark/driver.rb: enable specify label to executable. (-e "ruby1::/path/to/ruby1; ruby2::/path/to/ruby2; ...") |
68bcdf4c7ee41b73d165c78fe320c7a22d778a19
|
2007-10-06 |
* cont.c (cont_free): check Fiber or Continuation. * bootstraptest/test_knownbug.rb: remove a fixed test. |
3c78d621e60a2cae073b5e6ef7b7ac8b6d884a7e
|
2007-10-07 |
* insns.def (opt_eq): fix to use rb_str_equal(). |
0303c1d42b0dc8c8dfe96b885adb7f7ab9098e85
|
2007-11-09 |
* ruby.c (set_arg0): fix breaking environ bugs. |
9f6de20f5879ea8460e74e2b7bf1e989cc6573cb
|
2007-11-09 |
* cont.c: add rb_context_t#type. |
9a0e440b810a10efa5db716a5df36dd9d9229567
|
2007-11-09 |
* marshal.c (w_object): should be SPECIAL_CONST_P() instead of IMMEDIATE_P(). |
28c0aec1d889cfb3447c708a790b0acb95607e2f
|
2007-11-09 |
* eval.c (eval): should be volatile value for GC. |
65cb92fca34538ce3cb39ac91f9421674c57dfc5
|
2007-11-13 |
* compile.c (iseq_specialized_instruction): check argc. |
25c0cb981af8fda9860ec6e365b9ea7a9e3f498f
|
2007-11-13 |
* include/ruby/ruby.h: introduce 2 macros: RFLOAT_VALUE(v), DOUBLE2NUM(dbl). Rename RFloat#value -> RFloat#double_value. Do not touch RFloat#double_value directly. * bignum.c, insns.def, marshal.c, math.c, numeric.c, object.c, pack.c, parse.y, process.c, random.c, sprintf.c, string.c, time.c: apply above changes. * ext/dl/mkcallback.rb, ext/json/ext/generator/generator.c: ditto. |
3688c7a1eeda83b3da39cf03bbd0b8ae09df94b9
|
2007-11-13 |
* tool/makedocs.rb, template/insnstbl.html: removed. |
d907cbc81d6aa67502695df21a6f31c55325db0c
|
2007-11-13 |
* blockinlining.c, compile.c, compile.h, debug.c, debug.h, id.c, insnhelper.h, insns.def, thread.c, thread_pthread.ci, thread_pthread.h, thread_win32.ci, thread_win32.h, vm.h, vm_dump.c, vm_evalbody.ci, vm_opts.h: fix comments and copyright year. |
3453b2bd0e186788bb81deff5d723cf48e10881f
|
2007-11-20 |
* gc.h, vm_core.h: decl of rb_gc_save_machine_context() should be at vm_core.h. * include/ruby/ruby.h, intern.h: remove type rb_thread_t. * include/ruby/intern.h: change rb_unblock_function_t, rb_unblock_function_t. * file.c, process.c: apply above changes. * thread.c, thread_pthread.ci, thread_win32.ci: ditto. * io.c: support blocking open (2). [ruby-core:13614] |
01dacec2b4f7ec733ebea7b0427fc123542be21e
|
2007-11-20 |
* include/ruby/ruby.h: rename RFloat#double_value -> float_value. * numeric.c, parse.y: ditto. |
53b3bf961cd4f4de0388d56c7d8b5059eba1c3c0
|
2007-11-21 |
* array.c (rb_ary_permutation): add gc guard codes. |
58b1f91b469fddbe52e280bc044d7c0594bca6d0
|
2007-11-21 |
* benchmark/driver.rb: add path to trunk/lib if driver runner is in build directory. |
c79ab68d378cd2ebde4013e2204e0d365fce0b3e
|
2007-11-21 |
* vm.c: fix to recycle thread data (VM stack). * thread.c: ditto. * benchmark/bm_vm3_thread_create_join.rb: add loop count. |
1e4278c98dbb8481d460483146cf18f0ff108c37
|
2007-11-23 |
* bootstraptest/test_knownbug.rb: move solved tests. * bootstraptest/test_io.rb, test_marshal.rb, test_objectspace.rb: ditto. * test/ruby/test_integer.rb, test_regexp.rb: ditto. |
2a2e4bbbc3d43ad37fdef17f3d6942eb10db96b7
|
2007-11-23 |
* vm.c: fix comment. |
c4c151bed8dc3ffacf28a7f58cb23bcd82bcc5ae
|
2007-11-23 |
* io.c: add rb_read_internal() as blocking function. |
329484693ae6d9dab6e01675faf7b535c2783a83
|
2007-11-27 |
* insns.def, compile.c: fix to allow dsym for alias/undef. [ruby-dev:32355] * bootstraptest/test_method.rb: add tests for above. |
9c7aab17a54996b7320e7bc34230a1aab7f7a115
|
2007-11-27 |
* eval.c (rb_method_missing): fix stack trace. * bootstraptest/test_knownbug.rb: move solved tests. * bootstraptest/test_method.rb, test/ruby/test_regexp.rb: ditto. |
db2b0037fd2e8eb61d59d4e9a2420cabbba4cd78
|
2007-11-27 |
* test_beginendblock.rb: add loop to wait signal. [ruby-dev:32332] |
1152eef81de3897b3ff823aa84d515058b796109
|
2007-11-27 |
* insns.def: fix typo. |
b0986a8f827cc97d7cf19b15c38fbdab794e34b9
|
2007-11-27 |
* compile.c, insns.def: change return value of "defined?" for $&, $1, ... . If such variables are defined, return "global-variable". * test/ruby/test_defined.rb: add tests. * bootstraptest/test_syntax.rb: fix a test. |
1bed0ccca83a56dac3a30ecf25a0dd0b3fe66118
|
2007-11-27 |
* compile.c (iseq_compile_each): "a[*b] += 1" dumps core. a patch from Yusuke ENDOH <mame AT tsg.ne.jp>. [ruby-dev:32354] * bootstraptest/test_syntax.rb: add a test for above. |
0cdd3bced5e42557ed4ee3c7f3cd35f7f56cbcf0
|
2007-11-27 |
* compile.c (iseq_compile_each): "when *[],1" dumps core. a patch from Yusuke ENDOH <mame AT tsg.ne.jp>. [ruby-dev:32350] * bootstraptest/test_syntax.rb: add a test for above. |
c2aef47c846e1ff2ddcc2059c36b494859d740f6
|
2007-11-28 |
* insnhelper.ci (vm_invoke_block): should splat args. [ruby-dev:32392] * test/ruby/test_yield.rb: add tests for above. |
6fafbfd63e9f56350e06910bbac70bf7ff0d5df0
|
2007-12-01 |
* insnhelper.ci (vm_yield_with_cfunc): fix to passing argc on third parameter of IFUNC. [ruby-dev:32329] * enumerator.c: fix to pass exact number of argument. * eval.c (rb_yield_values2): added. * include/ruby/ruby.h: ditto. * bootstraptest/test_knownbug.rb: move a fixed test. * bootstraptest/test_block.rb: ditto. |
0d4761fb1a122e012a355107b6cb2fbedaa7a124
|
2007-12-01 |
* bootstraptest/test_knownbug.rb: move fixed bugs. * test/ruby/test_sprintf.rb: ditto. * test/yaml/test_yaml.rb: ditto. |
f3e3ce4c8241e1c6aa2afca5468d7fb69b93c47b
|
2007-12-02 |
* insnhelper.ci (vm_callee_setup_arg): fix error message. [ruby-dev:32430] |
9c1e3d00d51e28fa8ffedd56dc326fdc0ffbc6db
|
2007-12-05 |
* compile.c (iseq_compile_each): fix typo. |
3923d7f420d1cbcad2b7fd781ffeb389d3151d07
|
2007-12-09 |
* vm.c (rb_thread_mark): use rb_gc_mark_maybe() for VM stack specified by mark_stack_len. * insnhelper.ci: clear vm stack extended by opt value. |
a44f38ff52e3d828173e0719bc27ef7a5f381cf4
|
2007-12-09 |
* eval_intern.h (CHECK_STACK_OVERFLOW): reserve frame size. [ruby-dev:32485] |
3db5e76e50f1acd979c0f40cd139e224f0ac6af3
|
2007-12-10 |
* benchmark/bm_vm1_neq.rb, bm_vm1_not.rb: added. |
b7090e3673897708b50ee82d4247ca3f5f3dce20
|
2007-12-10 |
* benchmark/bm_vm1_neq.rb, bm_vm1_not.rb: prop set. |
1f75a4e700883da8d15048fc3da6528ba53ec1e4
|
2007-12-18 |
* bootstraptest/test_knownbug.rb: add issues. |
cd843108646b999e13cfbf04e51eca30b68850b3
|
2007-12-18 |
* compile.c, insnhelper.ci, insns.def, object.c, vm.c, vm.h: optimize !@, != method invocation. * id.c, id.h: ditto. * bootstraptest/test_syntax.rb: add tests for above. |
8394de7bfcb053019f96f7171c4f2f4ebbdfbe50
|
2007-12-18 |
* vm.c (invoke_block): merge 2 stack overflow checks. |
192ec21adf718e324fbe499b38997fa5bea98375
|
2007-12-18 |
* insnhelper.ci, vm.c: rewrite sp manipulation around method/block invocation. [ruby-dev:32547] |
9bd91ea3b00d896c65b94c44e4ed523353a81000
|
2007-12-19 |
* eval.c (errinfo_place): skip if error is Fixnum. [ruby-dev:32608] * bootstraptest/test_exception.rb, test_known_bug.rb: move fixed bug. |
def4a99af2081b428b91e8d00c74dd36caa230ca
|
2007-12-19 |
* bootstraptest/test_knownbug.rb, test_block.rb: move fixed bug. * bootstraptest/test_m17n.rb: added. |
860b40fd631f280fbc9164abdc36409dcfac7e27
|
2007-12-19 |
* compile.c (iseq_compile_each): remove "retry" in block. ("iter{retry}" cause syntax error) Currently, "begin; ...; rescue; iter{retry}; end" cause syntax error too. * bootstraptest/test_jump.rb: ditto. * lib/drb/invokemethod.rb: ditto. * sample/drb/darrayc.rb: ditto. * sample/test.rb: ditto. * test/drb/drbtest.rb: ditto. * test/ruby/test_iterator.rb: ditto. * sample/test.rb: add a 'test' directory on the SYSTEM test. |
10b933295ac8fed13ecf87fee1e304f426d78db9
|
2007-12-19 |
* compile.c (iseq_compile_each): remove unused retry entry. |
5485df3e105aadfd6b61854180a8c4a803fe993f
|
2007-12-19 |
* compile.c (iseq_compile_each): add pop after throw as return. * bootstraptest/test_knownbug.rb, test_syntax.rb: move resolved test. * vm_core.h, iseq.c, compile.h: add debug output code. |
f5e7602c330110f28163708afac91f6de69999a7
|
2007-12-20 |
* compile.c (iseq_compile_each/NODE_RETURN): fix stack consistency. |
bc162c69ea86378d6c0f649f2fecbf1a38bdddfb
|
2007-12-20 |
* bootstraptest/test_syntax.rb: add a test. |
e0dcf23cd5973c9f1fdb7218cf3eac7774f1f0c2
|
2007-12-20 |
* insnhelper.ci (vm_expandarray): fix sp increase place. a patch from Yusuke ENDOH <mame AT tsg.ne.jp> in [ruby-dev:32581]. * bootstraptest/test_massign.rb: add a test for above. * bootstraptest/test_syntax.rb: fix last committed test. |
314bef7ef149d7ce87c57fa0c95e30fc8fb9b27f
|
2007-12-20 |
* insnhelper.ci, vm.c, vm_core.h: change interface of vm_invoke_block() to specify block ptr. [ruby-talk:266422] * cont.c, eval_jump.ci, insns.def, proc.c, signal.c, thread.c: apply above change. * bootstraptest/test_knownbug.rb: move fixed bug. * bootstraptest/test_block.rb: ditto. and add a test. |
be137f3601610491d4265a4f9c87bf52fef28d66
|
2007-12-20 |
* iseq.c (find_line_no): return 0 if not found. |
40d8543fbdec5485a638a2cb1008089d106b978d
|
2007-12-20 |
* proc.c: support Proc#binding. * sample/test.rb: add a test. |
c334a09f7ad58c692ec86e1d55c561e86806260b
|
2007-12-20 |
* common.mk, *.ci: renamed to *.c. * eval_laod.c: renamed to load.c. |
ff3e1957465fa7c790077d93e250a8c9545e6af2
|
2007-12-20 |
* configure.in: add libthr for FreeBSD. |
cb7e82a94aa8405ac650e12abdf52b8560e559bf
|
2007-12-20 |
* thread_pthread.c (native_thread_apply_priority): check _POSIX_PRIORITY_SCHEDULING for OpenBSD. |
5c04ed459bde261deff75a9d6f4fffee7d12dd58
|
2007-12-20 |
|
2a564dfb94eaa293461a0439cbe714f923a6993d
|
2007-12-21 |
* vm.c, vm_dump.c: fix typo. |
685cc0f7c4c85877ccbb2804bdbb15280b049445
|
2007-12-21 |
add reported. |
e613c7cf5fed9bca9ccf98b045c45596508bd4e0
|
2007-12-21 |
* compile.c: remove "illegal". |
5c00dd28c5e16c85ed2ada37cae3b8be3a08ef3e
|
2007-12-21 |
* gc.h: extern variable should not be initialized. * thread_pthread.c: add a parameter. |
6cbc9ac208b5bbaf5d43cdd47268f41d6a98970b
|
2007-12-21 |
* thread.c (rb_thread_atfork): fix to mark thread object. [ruby-dev:32404] * bootstraptest/test_knownbug.rb, test_fork.rb: move a fixed test. |
f40a94a9cd2807296c89eff3240436b3065b4827
|
2007-12-21 |
* bootstraptest/featurebug.rb: added. * bootstraptest/test_knownbug.rb: move a feature bug. |
f12cc82e0fced3708807df2db748fa86483a21ac
|
2007-12-21 |
* bootstraptest/pending.rb: renamed from featurebug.rb. This file contains bugs which is known but will not be fixed in days. |
91c6c2c170698577b4618139181f57f3874f5a9c
|
2007-12-21 |
* io.c: write() should be in blocking region. * bootstraptest/test_io.rb, test_knownbug.rb: move a fixed test. |
5a1cf1c5cb2dd1007389a5c3f2ef5bcecc74a6ac
|
2007-12-21 |
* bootstraptest/test_fork.rb: skip if fork is not unsupported. * bootstraptest/test_io.rb: skip if require failed. |
c375b2f4206906618e437aa645523b8f5dca0983
|
2007-12-22 |
* tool/insns2vm.rb: moved from lib/vm/instruction.rb. |
85143195da6d07b7a50ae4ab73e461414293d47c
|
2007-12-22 |
* eval.c (rb_obj_instance_eval): use class of immediate objects. * test/ruby/test_eval.rb: fix a test. |
dd6ab4f3d5ba92c57d999f0ab4cbcb8c401af3d6
|
2007-12-22 |
* array.c (rb_ary_permutation): add volatile to avoid GC problem. |
e6f67598e9466a5cb95fc0a8ed487b04c764f361
|
2007-12-22 |
* bootstraptest/test_objectspace.rb: skip flozen string. |
34ff55e82a5b8cca1ecf43118926fc66c7223e9d
|
2007-12-22 |
* test/ruby/test_float.rb, test_sprintf.rb: fix test place. |
de1dbf48294c9d83049e8a398375001fd512bf81
|
2007-12-22 |
* process.c (rb_f_fork): Unsupport Kernel.fork() on NetBSD. |
fc5c62bef79c1d09606ba0e012d7a66e64d14270
|
2007-12-22 |
* ext/probeprofiler/: removed. |
020fd204f8063816301f31260dc00d8e91103d97
|
2007-12-22 |
* bootstraptest/test_objectspace.rb: fix condition. |
f03abbce93f27abc129b20a8fce015f6880e3985
|
2007-12-23 |
* common.mk: remove additional "-". |
9f34b73009e9454e885378483d503b9466bac231
|
2007-12-23 |
* cont.c, vm.h: fix to support sparc machine. a patch from Yusuke ENDOH <mame AT tsg.ne.jp> |
835c8d9d48683192784a00a811fdb8fd39bce02d
|
2007-12-24 |
* tool/compile.rb, getrev.rb, runruby.rb: remove unused tools. |
8fd40444465a6165f08490269f8e0b142edc2824
|
2007-12-24 |
* mkconfig.rb: add teeny to CONFIG['ruby_version']. |
e2e23e688fd655c55112872b10a7bd6840314653
|
2007-12-24 |
* iseq.c (Init_ISeq): disable ISeq.load() because there is no verifier. * iseq.c, proc.c: add ISeq.disasm(method). |
d12d33f0e50673b21b0c87dd05ed91b85458d3d0
|
2007-12-24 |
* instruby.rb: fix rdoc install dir. |
0bdcb32cd3c75a01f40d46ccca3f665d47c09172
|
2007-12-24 |
* test/rinda/test_rinda.rb: enable rinda test. |
7d6d35394bfb06309e2f58c2e73df38021ddd61e
|
2007-12-24 |
* test/rinda/test_rinda.rb: revert last commit because this test seems to have timing problem to halt all tests. |
9c09689301fd6bddbb5a9397a6854fef35a224ae
|
2007-12-24 |
* test/io/nonblock/test_flush.rb: fix test for 1.9. |
105e00bdd797fa6699919e3d34edf57428be3c6e
|
2007-12-24 |
* compile.c (iseq_compile_each): add a "pop" insn after break to fix stack consistency error. [ruby-core:14385] * bootstraptest/test_syntax.rb: add tests for above. * bootstraptest/test_knownbug.rb: remove fixed bug. |
e885517639c2bc1eacedfffe68679c4882b2fa5f
|
2007-12-24 |
* compile.c (iseq_compile_each): fix stack consistency bug. a patch from Yusuke ENDOH <mame AT tsg.ne.jp> |
95ca3f72a8a72126ab412f5c58fd2c8f6e03bbed
|
2007-12-24 |
* compile.c (iseq_compile): clear local table if node == 0. a patch from Yusuke ENDOH <mame AT tsg.ne.jp> * vm.c: clear VM stack. |
479568e5c14c6e62e09286fdd7e10f54f9bdbd14
|
2007-12-24 |
add a ML ref. |
a79ce52e085e3c61250ee817ba8b2d1df81e779b
|
2007-12-24 |
* vm.c: add dummy toplevel frame. |
7ad94af99b237460eb86e0de5828ed9f45f561b2
|
2007-12-24 |
* bootstraptest/test_knownbug.rb, test_literal.rb: move fixed test. |
b40dbc304efe8297d7dbe10d6781c7608a651934
|
2007-12-25 |
* vm.c: check frame is FINAL when creating env. [ruby-core:14395] * bootstraptest/test_block.rb: add a test for above. |
bfc19ade2e824dd549868d601b2c688f6ad928c5
|
2007-12-25 |
* iseq.c, vm_core.h: comment out unused fields. |
1af43d329fe797e4ac74feeff95c742eb7953338
|
2007-12-25 |
* compile.c (iseq_compile_each): fix stack consistency error. a patch from Yusuke ENDOH <mame AT tsg.ne.jp> [ruby-dev:32720] * bootstraptest/test_syntax.rb: add 2 tests for above. |
b90e7414ceb911bc714389294164418528ab90b9
|
2007-12-25 |
* vm.c (Init_VM): remove unused code. |
94c942ed34e328f23c3d3316b4bf66ecfda8bf8a
|
2007-12-25 |
add ML ref. |
5f0b8afb97d7830de8f04a7d6a39cde660020c69
|
2007-12-25 |
* vm_core.h, thread.c, cont.c: add RUBY_VM_SET_INTERRUPT(), RUBY_VM_SET_TIMER_INTERRUPT(), RUBY_VM_INTERRUPTED(). * thread.c, thread_pthread.c, thread_win32.c: fix to ignore time slice event until sleep. * bootstraptest/test_thread.rb: add a test for time limited join test. |
42f0b52f771570adebbea518fa2464bd227bca99
|
2007-12-25 |
* thread_pthread.c, thread_pthread.h, thread_win32.c, thread_win32.c: make some functions static functions. a patch from Tadashi Saito <shiba AT mail2.accsnet.ne.jp> in [ruby-core:14407] |
884f1eed2c4cebe4c0658b71ecef7a3ce3ae60d1
|
2007-12-25 |
* thread.c (rb_thread_wait_fd_rw): should check EBADF on select(). |
b79c8682960eef9d78a9c6e9c34dc966951bf45e
|
2007-12-25 |
* include/ruby/ruby.h, thread.c: rename is_ruby_native_thread() to ruby_native_thread_p(). * ext/tk/tcltklib.c: apply it. |
36df55c6e4dff444d92eb5c44d2ecb65567427e6
|
2007-12-25 |
* iseq.c: all methods need $SAFE < 1. vm.c: comment out debug functions. |
633df8de16203da72dff1a010740fdf92f9f7f5c
|
2007-12-25 |
* compile.c (iseq_compile_each): fix stack consistency error (break is compiled to throw instead of jump insn). these problems are reported by Yusuke ENDOH <mame AT tsg.ne.jp> * bootstraptest/test_knownbug.rb, test_syntax.rb: move fixed test. |
e037d72514d18deb383dffc8fc45e2fc681cfa75
|
2007-12-25 |
* thread.c: remove Thread.critical(=). |
96b9744b3dab5bb9bbe5f53e2cb861a984b3e50e
|
2007-12-25 |
* bootstraptest/pending.rb: add pending issue. |
dccf2b925597832f3534f3fdea707c7faf4d2bb9
|
2007-12-25 |
* insns2vm.rb: add encoding option to shbang. |
1421b85ea242c64272a3bed9974d834d305926b6
|
2008-01-03 |
* bootstraptest/test_eval.rb, test_knownbug.rb: move a fixed test. |
a0350e5964c1edba90bf6cf4bd7e2d5b64eaa386
|
2008-01-03 |
* eval_jump.c (rb_f_catch): Resotre cfp if catched thrown object. |
2004a2b536bde0bff385821c1b570dc9d1f52a5d
|
2008-01-14 |
* vm.h: remove dangerous assembler sentence. |
0c801d657a963290c0cd269166bdbf79586b47ec
|
2008-01-14 |
* bootstraptest/runner.rb: add "flunk" method. * bootstraptest/test_knownbug.rb: fix to use flunk. |
5360e77db8aa0e40c7c79cee74f91634eefa8576
|
2008-01-14 |
* thread.c: clear thread structure. (TODO: survey that child process should clear mutex or not). * bootstraptest/test_knownbug.rb, test_thread.rb: move a fixed test. |
13b5b22ae63cb35adc7e73f8f3d248a6ffd46ad1
|
2008-01-25 |
* compile.c, compile.h: fix stack pointer issues. calculate correct stack depth at compile time. * insns.def (emptstack): remove it and add a new insn "adjuststack". * bootstraptest/test_knownbug.rb: move/remove fixed test. * bootstraptest/test_syntax.rb: ditto. |
3b1c663ed942c3125c8ff93243b3af77da7cdac4
|
2008-01-26 |
* compile.c, compile.h: fix to calculate correct stack depth at each instruction. |
51ea2cf4e431d2265a255cb3bfedc91461acf8d4
|
2008-01-26 |
* compile.c (iseq_compile_each): validate argument expr of "next" statement. * bootstraptest/test_syntax.rb: add a test. |
3f3fdb4869350554bffcabcac7bf59ab866a8ddf
|
2008-04-07 |
* bootstraptest/test_knownbug.rb: add a known-bug. |
9d0a5d8e96644394bbd0c344fb5d26098b7919c4
|
2008-04-26 |
* include/ruby/ruby.h, gc.c: remove T_BLOCK. * include/ruby/ruby.h: re-number T_xxx. |
3de80833a23b6aa07f698bf20fffbba25d6fe79d
|
2008-04-27 |
* gc.c (gc_count): add a GC.count method. This method returns a GC invoking count. |
5e4edb43a2a3183931b3d891b1c4bd6031b73560
|
2008-05-14 |
* insns.def: add a "putcbase" instruction. * compile.c, insns.def: fix to use putcbase instruction for class search. Qundef should not be used. |
a6bec144712bb5ae9168eb336147f71bcdd5f4a8
|
2008-05-14 |
* iseq.c (insn_operand_intern): remove Qundef related code. |
385f0e8af657b1334e477e6837b0846cc14fa00d
|
2008-05-19 |
* vm.c, insns.def, eval.c, vm_insnhelper.c: fix CREF handling. VM value stack frame of block contains cref information. (dfp[-1] points CREF) * compile.c, eval_intern.h, eval_method.c, load.c, proc.c, vm_dump.h, vm_core.h: ditto. * include/ruby/ruby.h, gc.c: remove T_VALUES because of above changes. * bootstraptest/test_eval.rb, test_knownbug.rb: move solved test. |
39fcd1cdf295d310c1bfd220324fef5b2f725230
|
2008-05-19 |
* bootstraptest/test_knownbug.rb: move solved tests. * bootstraptest/test_eval.rb, test_literal.rb, test_syntax.rb, test_thread.rb: ditto. * test/ruby/test_m17n.rb, test_proc.rb, test_sprintf.rb, test_string.rb, test/ruby/test_struct.rb: ditto. |
950ee3e0a6f716b12c18d993c2d8b086eda1ba6e
|
2008-05-19 |
* version.h: fix strange change by version.h update tool. |
67d0fbd03f46edcc0a6fb2a65409ebfa6be25534
|
2008-05-19 |
* thread_pthread.c (native_thread_apply_priority): fix argument range check. [ruby-dev:33124] |
b001dbad6e57919560caf5066f6be6524a970440
|
2008-05-19 |
* vm.c (invoke_block_from_c): fix call flow. |
e07663ec1fa3f03031fd6e074446857490767983
|
2008-05-19 |
* bootstraptest/test_knownbug.rb: fix a test. "block_given?" returns true if "yield" can be used. |
d457fdad2dbcba31eee20f491deae3120db11dec
|
2008-05-19 |
* eval.c, vm_insnhelper.c: fix cref in instance_eval and cvar_base search protocol. * bootstraptest/test_knownbug.rb, test_eval.rb: move soleved test and add new tests. * test/ruby/test_eval.rb: fix tests for spec. |
a16e394bbf85c4e3a1920a7f4ddf46f9561c4a77
|
2008-05-21 |
* bootstraptest/test_eval.rb: fix syntax. |
4c094940aa8544e3ee149dee57ec294a47f3099d
|
2008-05-21 |
* insns.def, vm_insnhelper.c: specify "const". |
559d021d200a2e5457fa89a8ddbaf15ab1aeecb9
|
2008-05-22 |
* eval.c, vm.c, vm_core.h, vm_insnhelper.c: specify "const". * vm_opts.h: add a OPT_TOKEN_THREADED_CODE macro. |
a45cd8a01ce1d51cd124f0f87d9d56b6d3d60da8
|
2008-05-22 |
* eval.c, eval_intern.h, include/ruby/intern.h, include/ruby/ruby.h, vm.c, vm_core.h, vm_insnhelper.c: remove pointless "const". |
9832ab36631b1f241eb646c936e801c0ff4d0cb9
|
2008-05-22 |
* insns.def (opt_gt|ge|lt|le): use values directly to compare. |
59c061235f7bb39d6a33b7e2b7fb4e3db57305db
|
2008-05-24 |
* eval_method.c: renamed from vm_method.c. "vm_method.c" is included by "vm.c". * vm_eval.c: added. Some codes are moved from "eval.c" * common.mk: fix for above changes. * compile.c: make a vm_eval(0) * eval.c, eval_error.c, eval_intern.h, eval_jump.c, proc.c, vm.c, id.c, id.h, vm_core.h, vm_dump.c, vm_evalbody.c, vm_insnhelper.c, blockinlining.c: fix for above changes. and do some refactoring. this changes improve rb_yield() performance. |
ed68367f9e583e01d8bb89a4b668b62c83e80cda
|
2008-05-24 |
* vm_eval.c: added. Some codes are moved from "eval.c" |
9eec758a1e574edbee84797463a00b832c5fcbea
|
2008-06-04 |
* string.c (hash): should be "static". |
bf4626ed723a122c43a9edf73d68873ed4ca56d5
|
2008-06-06 |
* vm_insnhelper.c (vm_callee_setup_arg): check simple flag before calling setup_arg function(). this change reduce function call. |
72ba13aa8e86eb7f12bd17737a689ad2ec214036
|
2008-06-08 |
* array.c, bignum.c, cont.c, dir.c, dln.c, encoding.c, enumerator.c, enumerator.c (enumerator_allocate), eval_jump.c, file.c, hash.c, io.c, load.c, pack.c, proc.c, random.c, re.c, ruby.c, st.c, string.c, thread.c, thread_pthread.c, time.c, util.c, variable.c, vm.c, gc.c: allocated memory objects by xmalloc (ruby_xmalloc) should be freed by xfree (ruby_xfree). * ext/curses/curses.c, ext/dbm/dbm.c, ext/digest/digest.c, ext/gdbm/gdbm.c, ext/json/ext/parser/parser.c, ext/json/ext/parser/unicode.c, ext/openssl/ossl_cipher.c, ext/openssl/ossl_hmac.c, ext/openssl/ossl_pkey_ec.c, ext/sdbm/init.c, ext/strscan/strscan.c, ext/zlib/zlib.c: ditto. |
a99140631cefb87bd2c443573f4e0de116072080
|
2008-06-08 |
* gc.c: add a build option "CALC_EXACT_MALLOC_SIZE". This option enables to calculate exact size of current allocated size by malloc(). You can access these information with GC.malloc_allocated_size and GC.malloc_allocations. This option consume additional memory as a header of each memory object. This option also helps to find out xmalloc()/xfree() consistency. If you get trouble with this option, some extension using "free()" instead of "xfree()". This options is disabled by default. |
7e6c9db4e22fd949e8a19ac1711f345529e9ebaa
|
2008-06-08 |
* bootstraptest/pending.rb: move/remove solved issues. * bootstraptest/test_class.rb: ditto. |
fe54190f68fa3326ea933bacc100f88878031797
|
2008-06-09 |
* bootstraptest/test_knownbug.rb -> ./test_knownbug.rb: moved. * common.mk: add a rule "test-knownbug". |
e2958af0b78c2431b6127e8bc7f4397cf0b123b3
|
2008-06-09 |
* test_knownbug.rb -> KNOWNBUGS.rb: renamed. * common.mk: apply above change. |
ed4139e39bb3ceda2985b2ea2ebd9a91479d25da
|
2008-06-10 |
* include/ruby/intern.h, proc.c: revert rb_proc_call() and create rb_proc_call_with_block() instaed. * include/ruby/ruby.h, eval_jump.c, thread.c, vm_insnhelper.c: rb_blockptr should not be exposed. |
9e324fdd3ef0b858f6c5dfea1d0055d77979a3a2
|
2008-06-10 |
* vm.c, eval_intern.h (PASS_PASSED_BLOCK): set a VM_FRAME_FLAG_PASSED flag to skip this frame when searching ruby-level-cfp. * eval.c, eval_intern.h, proc.c: fix to check cfp. if there is no valid ruby-level-cfp, cause RuntimeError exception. [ruby-dev:34128] * vm_core.h, vm_evalbody.c, vm.c, vm_dump.c, vm_insnhelper.c, insns.def: rename FRAME_MAGIC_* to VM_FRAME_MAGIC_*. * KNOWNBUGS.rb, bootstraptest/test*.rb: move solved bugs. |
9ead0d771ba70c87f434748bf6309f839a4a3f90
|
2008-06-15 |
* vm_core.h, thread.c: rename global_interpreter_lock to global_vm_lock. |
1c4f7a4c642f539f0bfc6db4234dde99d19c2b16
|
2008-06-15 |
* vm_dump.c (vm_stack_dump_raw): disable verbose debug output. |
faa93e847da75c0b8f5bae70f8362f22865388a6
|
2008-06-15 |
* eval.c (rb_f_block_given_p): fix to skip class frame. [ruby-core:14813] * KNOWNBUGS.rb, bootstraptest/test_method.rb: move solved test. |
00e4fd42f36fa23de04cccb9cea3c3e5d14c9ae9
|
2008-06-17 |
* vm.c, vm_insnhelper.c: fix escape process with "braek" and "return" syntax in "lambda". [ ruby-Bugs-19304 ], [ruby-core:17164] * KNOWNBUGS.rb, bootstraptest/test_proc.rb: add/move solved test. |
f98e6b91dec68ddd010ccb3bad651a18e7dca338
|
2008-06-17 |
* KNOWNBUGS.rb, bootstraptest/pending.rb: move pending bug. |
c3e619c83dcd3223cb6d17d5a1884039b5d0cc4f
|
2008-06-19 |
* vm_insnhelper.c (vm_throw): fix "return" process from "lambda". * bootstraptest/test_proc.rb: add a test. * bootstraptest/pending.rb: add a pending bug. |
1bc6479a8830f26c821003de1818f4750ab5cc26
|
2008-06-19 |
* test/ruby/test_enumerator.rb: fix to skip "with_memo" test. |
af94c81302cd778d5e62ddae714e52c891f69d38
|
2008-06-19 |
* thread_win32.c (native_sleep): fix to decrement sleeper count. |
e7dac48a9190169a241865cd706566b52e07b3b7
|
2008-06-19 |
* proc.c (proc_new): fix to return Proc object if block is already in heap. [ruby-core:15711] * bootstraptest/test_proc.rb: add a test. |
e929f49e564dab959e6df43bb7e3621d74e8c3c5
|
2008-06-19 |
* KNOWNBUGS.rb, bootstraptest/pending.rb: move a bug (?) to pending. |
d4cddaaa4ce60dd5d35e85da4436236a287a622b
|
2008-06-26 |
* vm_eval.c (vm_call_super): fix to call method_missing. [ruby-core:15719], [ruby-core:17340] |
285066dd0bc256fc6b197ac6e55c51b39a574924
|
2008-06-26 |
* configure.in: need a ",". * process.c (rb_fork): check CANNOT_FORK_WITH_PTHREAD macro. |
002fb8f747933409b05b805a9903dcbc7a72abbd
|
2008-06-29 |
* process.c (Init_process): fix to avoid a warning. |
9ebf6473ebfd76e64c33904bb555b5fc8435dc66
|
2008-06-29 |
* vm.c, vm_core.h,vm_core.h, vm_dump.c, iseq.c: rename class name VM -> RubyVM, and rename rb_cVM -> rb_cRubyVM. "VM" is too short name for class. * test/ruby/test_method.rb, test/ruby/test_settracefunc.rb: ditto. * include/ruby/ruby.h: rb_cRubyVM, rb_cEnv, rb_cISeq should not be exposed. |
eb33f91cb7a763331e210bc10fbdefa037366496
|
2008-07-01 |
* compile.c, insns.def, vm.c, vm_core.h: remove some insns (undef, alias, definemethod). Call RubyVM::FrozenCore's singleton method instead. Add "putiseq" and "putspecialobject" instructions. * id.c, id.h: add ids for above. * tool/parse.rb: "VM" no longer exists. Use RubyVM instead. |
a056546f0dfa9af3d358c70e2e66bbaf5b4fef8f
|
2008-07-01 |
* tool/instruction.rb: RubyVM is not module. |
807fbd69403bcae4bc38138a8f8a4bba5914dcda
|
2008-07-01 |
* compile.c, vm.c, insns.def: call FrozenCore.set_postexe method instead to use "postexe" insn. * id.c, id.h: add a prepared id for above. |
ab109c36f19aeaef088e975fa1de3ca6e6cce6f0
|
2008-07-01 |
* proc.c, vm.c: fix to refer next ruby level cfp to make binding. |
9a61579c1658502a87f62c857ec29cd831d5db41
|
2008-07-01 |
* compile.h, insns.def: reduce insn operand of "trace". * include/ruby/ruby.h: add RUBY_EVENT_COVERAGE event. |
8b3969f8b3c069a5b7fc0eccf65fe8e919fa4c70
|
2008-07-08 |
* compile.h: fix to skip inserting a trace insn. |
f1d967c6ee0560eee1d728a70903534992adb6cd
|
2008-07-08 |
* lib/debug.rb, lib/profile.rb: fix to use RubyVM. * lib/rdoc/parsers/parse_c.rb: ditto. |
7e16f9e7777781a4969537b5d9f659b1356b2786
|
2008-07-08 |
* lib/debug.rb, lib/profile.rb: fix to use RubyVM. * lib/rdoc/parsers/parse_c.rb: ditto. |
df91d39c943333ea39be83cdcc0efb5ee1fb943d
|
2008-07-10 |
* thread.c (thread_create_core): fix GC problem. [ruby-core:17669] |
7c8ad088f5ca528fd47138bb8f6fed19201dca59
|
2008-07-25 |
* vm.c (vm_invoke_proc): skip setting safe_level if it from bmethod. This change makes test/ruby/test_proc.rb pass. |
60be3dc560d1bd61344c328ee6a939ec9cffa537
|
2008-07-27 |
* include/ruby/ruby.h: add a type T_DEFERRED. * gc.c: fix deferred finalizer system. finalize processes of T_DATA and T_FILE are executed after gc process. And fix to use BUILTIN_TYPE() instead of seeing flag. * thread.c, vm_core.h: add RUBY_VM_SET_FINALIZER_INTERRUPT() and check intterupt_flag at rb_thread_execute_interrupts(). * thread.c (mutex_mark): fix to mark next_mutex. * vm.c (rb_thread_mark): fix to mark keeping_mutexes. |
845e5766dcf9f47b440ba522fc81f1c10c9a24fc
|
2008-07-27 |
* gc.c (gc_mark_children, obj_free): T_DEFERRED should not be appear. * gc.c (gc_sweep, finalize_list): fix to decrement heap_slot#limit after executing finalizer. |
596eecd76d28ad02039462b3d090615ed7fb01e2
|
2008-08-12 |
* vm.c, vm_insnhelper.c (vm_define_method): move function place. |
cc77f676f4a386479b6457e11993b9933412022c
|
2008-08-13 |
* vm.c: rewind cfp to show proper backtrace. [ruby-dev:35820] |
16612b360b376d0cb3f50f966e2e671cf80fdc25
|
2008-08-13 |
* thread.c, vm_core.h: add manual priority support using time slice. if you enable USE_NATIVE_THREAD_PRIORITY macro, this mechanism is ignored. [ruby-dev:33124] * thread_pthread.c, thread_win32.c: ditto. * test/ruby/test_thread.rb: fix test parameter. |
8f1e7a37e520fd1b105bec102cb05d2b49acf4a2
|
2008-08-13 |
* thread.c (rb_thread_check_ints): added. please note that this function may cause ruby's thread switching. * include/ruby/intern.h: ditto. * regint.h: use rb_thread_check_ints() instead of RUBY_CHECK_INTS() directly. |
96af71a288ef97800b658b4d0cda7ce83f3f95be
|
2008-08-13 |
* gc.c: count only freed object as freelist size. |
abfd87c2305a0a07bd5958be2282fcc2fa10a639
|
2008-08-13 |
* thread.c (rb_thread_execute_interrupts): switch event should be occur only once. |
400796e87b7df6f4605c4d342741511da3f855c3
|
2008-08-23 |
* vm_opts.h: enable "OPT_TRACE_INSTRUCTION" on default. |
100d0a568eeac44c8844a3a8707a1faa460f5106
|
2008-08-29 |
* vm_insnhelper.c (vm_call_method): copy arguments to allocated memory from machine stack. [ruby-dev:36028] * KNOWNBUGS.rb, bootstraptest/test_method.rb: move fixed test. |
fa4c17e71283e72100c12b8824aafe176372241d
|
2008-08-29 |
* gc.c, include/ruby/ruby.h: rename T_DEFERRED to T_ZOMBIE. |
35617676cb24f12d8daa8342cefd0b2355b137e4
|
2008-08-30 |
* parse.y: remove include pragma for "ruby/intern.h". |
1b80bfa4692f6dcab6505610bb27d8dc593a132a
|
2008-08-30 |
* ext/iconv/iconv.c: remove include pragma for "ruby/intern.h". |
03b2fc9adf609e61550011f9de644209dd6ce021
|
2008-08-31 |
* bootstraptest/test_thread.rb: add a test. |
ca6a8b1e2c9e1832ab993edff48d2d3a9234a4b3
|
2008-08-31 |
* include/ruby/intern.h: rename RB_UBF_DFL to RUBY_UBF_IO and RUBY_UBF_PROCESS. Because there is no default (universal) unblocking function. * ext/socket/socket.c, file.c, io.c, process.c, thread.c: ditto. |
204929af9dfc7d483d69476325c1ceac1721e219
|
2008-09-03 |
* include/ruby/signal.h: removed. * common.mk, class.c, eval.c, eval_intern.h, file.c, gc.c, hash.c, io.c, process.c, signal.c: vm_core.h: ditto. Some unused external global variables are also removed. (rb_prohibit_interrupt, rb_trap_immediate, rb_trap_pending, rb_thread_critical) * ext/openssl/ossl_ssl.c, ext/openssl/ossl_x509store.c, ext/readline/readline.c, ext/socket/depend, ext/socket/socket.c: ditto. |
cb0ade87d6d832a4d34c854d4e8164041a01b8fe
|
2008-09-03 |
* test/ruby/test_thread.rb: fix test. [ruby-dev:35960] |
b00710df4ea2039f2c99032ee7a286e6fc0ebb28
|
2008-09-03 |
* win32/win32.c: fix ruby/signal.h depending codes. |
80843ea156b7b2849b1fcc9764e85f70811cdd89
|
2008-09-04 |
* thread.c (rb_thread_check_trap_pending): added for compatibility. * ext/tk/tcltklib.c, ext/tk/tkutil/tkutil.c: remove ruby/signal.h dependency. |
4780af9566c0357ca8c6e479bbb9575ac38dba2c
|
2008-09-04 |
* vm_dump.c: rename some debug functions. |
ca253f40dbabfd4ce910155089ae5213b36340e8
|
2008-09-04 |
* thread.c (rb_thread_critical): removed. |
d803c452346a2bec2b34e2cd0502ff34f21663f3
|
2008-09-04 |
* vm.c (thread_recycle_stack_slot, thread_recycle_stack_count): make it static. |
f0bf74a07b98e0c5cf8875b1a4eb258083fd991e
|
2008-09-04 |
* iseq.c (iseq_data_to_ary): make it static. * thread.c (thgroup_enclose): ditto. |
69029b90fea8a6b7e5607ead5e2184da30db9e76
|
2008-09-15 |
* gc.c, include/ruby/ruby.h: rename rb_register_mark_object() to rb_gc_register_mark_object(). * eval.c, vm.c: initialize vm->mark_object_ary at Init_top_self(). * bignum.c, complex.c, encoding.c, ext/win32ole/win32ole.c, io.c, load.c, marshal.c, rational.c, ruby.c, vm.c: use rb_gc_register_mark_object() instead of rb_global_variable() or rb_gc_register_address(). |
8cd252ac6f3fd2d2eb3524880bf45767490bed70
|
2008-09-23 |
* common.mk: clean up - remove blockinlining.$(OBJEXT) to built - make ENCODING_H_INCLDUES variable (include/ruby/encoding.h) - make VM_CORE_H_INCLUDES variable (vm_core.h) - simplify rules. - make depends rule to output depend status using gcc -MM. * include/ruby/mvm.h, include/ruby/vm.h: rename mvm.h to vm.h. * include/ruby.h: ditto. * load.c: add inclusion explicitly. * enumerator.c, object.c, parse.y, thread.c, vm_dump.c: remove useless inclusion. * eval_intern.h: cleanup inclusion. * vm_core.h: rb_thread_t should be defined in this file. * vm_evalbody.c, vm_exec.c: rename vm_evalbody.c to vm_exec.c. * vm.h, vm_exec.h: rename vm.h to vm_exec.h. * insnhelper.h, vm_insnhelper.h: rename insnhelper.h to vm_insnhelper.h. * vm.c, vm_insnhelper.c, vm_insnhelper.h: - rename vm_eval() to vm_exec_core(). - rename vm_eval_body() to vm_exec(). - cleanup include order. * vm_method.c: fix comment. |
7440ec27fd23fc725c35049a1aea5bdc4fe9a7b3
|
2008-09-23 |
* eval_safe.c, safe.c: rename eval_safe.c to safe.c. * common.mk, eval.c, safe.c, inits.c: separate safe.c from eval.c and make Init_safe(). |
23c291da09859680c95a71686cdfdb2f9dd512e6
|
2008-09-23 |
* common.mk, hash.c: remove unused inclusion. |
7f7834abf738ab26236bea159fce7f37dea03f1f
|
2008-09-23 |
* include/ruby/node.h, vm_core.h: move definition of RUBY_VM_METHOD_NODE to node.h. * class.c, common.mk: remove useless inclusion. * compile.h, iseq.h, vm_core.h: rename compile.h to iseq.h. move some definitions from vm_core.h to iseq.h. * compile.c, iseq.c, vm.c: ditto. * eval.c, compile.c: move some functions for parser from eval.c to compile.c. * eval_intern.h, vm_core.h: move va_init_list() macro to vm_core.h. * iseq.c (rb_iseq_new_top, rb_iseq_first_lineno): added. * load.c, ruby.c: use rb_iseq_new_top() instead of rb_iseq_new() with ISEQ_TYPE_TOP constant directly. * proc.c: use rb_iseq_first_lineno() instead of accessing iseq structure. |
abf97237c4bb80503f91b98cc92e00737949a1d6
|
2008-09-23 |
* ruby.h: fix comment and rename macro HAVE_RUBY_MVM_H to HAVE_RUBY_VM_H. |
68a533c61164392a9524d19f11f163a6c7e811ba
|
2008-09-23 |
* class.c, vm_core.h: move decl of rb_iseq_clone() to class.c. |
b9a12116fb2da007ef9059befc9b1b314bb079ed
|
2008-09-23 |
* thread.c, include/ruby/intern.h (rb_thread_interrupted): added. * io.c: use VALUE of thead instead of rb_tread_t to check interrupts. |
64c35be42c436538efc25db5c6e4f037f90c686a
|
2008-09-23 |
* thread.c (rb_thread_blocking_region): write a document |
c431879a6827ebd72ffecf6e9e21e82092ebfbda
|
2008-09-23 |
* thread.c (rb_thread_blocking_region): fix typo in a document. |
757f1b135dfa5534fe24ba0c544556b04288d503
|
2008-09-23 |
* common.mk (io.o): remove dependency for vm_core.h. |
445e26fb00e8ce7e9f1785579abfd5662880f3f1
|
2008-09-23 |
* signal.c (signal_exec): fix to use rb_proc_call(). |
29f5911cf54536f06697aea6e0a5c98977c536e9
|
2008-09-23 |
* signal.c (signal_exec): execute rb_eval_cmd() directly. |
379bd563539f62dd918bba8d22e35443871190c9
|
2008-09-23 |
* vm_core.h: remove unused frame values. |
57c4acf94ad977c520a805becb47b27eaf965e1e
|
2008-09-23 |
* vm_core.h: remove unused frame values. (fix previous commit miss) |
2e311f6bd56a6f6f380e400863a21adbfb73ddfe
|
2008-09-23 |
* include/ruby/node.h, node.h: move node.h from include path. This change stop to install node.h beacuase of saving ABI (node.h will be changed. Extensions should not depends on this file). * blockinlining.c, class.c, compile.c, debug.h, enum.c, gc.c, iseq.c, parse.y, ruby.c, signal.c, variable.c, vm.c, vm_core.h, vm_dump.c: ditto. * ext/ripper/depend: ditto. |
4ee0a8e740d4c9af11897e2999fd66c242d302dd
|
2008-09-25 |
* common.mk: fix btest-* rules [ruby-dev:36528]. and remove obsolete rules. |
3e9276a5389c95f0d010b39bffd7c53f16197693
|
2008-09-26 |
* vm_core.h (RUBY_VM_CHECK_INTS_TH): add an UNLIKELY hint. |
574027ba0371ab2e6fdb84e0634ec72d02cd6ff7
|
2008-09-28 |
* vm_exec.c (vm_exec_core): add an UNLIKELY() hint. * vm_insnhelper.h (BASIC_OP_UNREDEFINED_P): add a LIKELY() hint. |
3f710785f0508d93795b316b78dc24987cf47370
|
2008-10-10 |
* parse.y: optimize 'for' statement when one variable given. * benchmark/bm_loop_for.rb: added. * benchmark/bm_loop_times.rb: modified. |
7215c9af95eb2375eebef478502a7a824ddd16d5
|
2008-10-12 |
* vm.c, vm_insnhelper.h (ruby_vm_redefined_flag): apply optimization patch proposed by Paul Brannan. [ruby-core:19171] |
3337185ed683bfc82f86641e0627021952cefa8b
|
2008-10-21 |
* parse.y (arg_concat_gen): concat target node should be NODE_ARRAY. [ruby-core:19413] * bootstraptest/test_method.rb: add tests. |
bf52a3c0c4ce5044a31e62ab6f6366e5a76103a7
|
2008-10-21 |
update ChangeLog for last check in. |
34d1e9bb2504d7fa0b98ad99a32c549cd0d92853
|
2008-10-21 |
* include/ruby/vm.h: write a comment. * common.mk: remove vm.h from any rules. vm.h is not needed on this version. * vm_core.h: ditto. |
8a0d53ac2b0d2af06d4c5fef87d1bb5913adbb05
|
2008-10-22 |
* cont.c: separate data structure between rb_fiber_t and rb_context_t (rb_fiber_t includes rb_context_t). rb_fiber_t has double linked list of fibers in same threads. |
8c6a26ab8e1d9ba48f904c165a175d55732a5240
|
2008-12-24 |
* tool/file2lastrev.rb (get_revisions): fix to ignore end of line. |
f0da2e1657e645233faff25faeb05905dd350623
|
2008-12-24 |
* vm_insnhelper.c (vm_call_method): use class of method defined instead of receiver's class on bmethod. fixes [ruby-core:20786] * bootstraptest/test_method.rb: add a test for above. * vm_insnhelper.c (vm_setup_method): remove unused parameter klass. * vm_insnhelper.h (CALL_METHOD): ditto. * insns.def, vm_eval.c: ditto. |
7160543aeb8a9f5d7b2f26d3c7b0d7702016f831
|
2008-12-24 |
* error.c (exc_equal): == method should not raise Exception. [ruby-dev:37519] * sample/test.rb: fix test. |
f23e8d87c01c751094b58fc13cde1da59ed7eda6
|
2008-12-24 |
* vm.c (invoke_block_from_c): fix to point right cfp. * vm.c (vm_make_proc, vm_make_proc_from_block), vm_core.h: remove unused parameter cfp. * vm_insnhelper.c, proc.c (proc_new): ditto. |
155149109a9c6d6ae79bf40398cb51e8883dad26
|
2008-12-24 |
* compile.c (iseq_peephole_optimize): fix typo. |
8d1689508d8b9b45decd4dd0507d46ba12dfce2e
|
2008-12-24 |
* error.c, vm_dump.c: change message by rb_bug(). |
f6e435fe878cfdb03906b1dbb2e366e9b3408b53
|
2008-12-25 |
* vm_insnhelper.c (vm_yield_with_cfunc): check block has Proc. |
7c982059ea464cbdb951eab239afdffb2d0553ca
|
2008-12-25 |
* proc.c (proc_new): should use proc_dup() if block has Proc. * vm.c (vm_make_proc_from_block): should use rb_cProc for block. * vm.c (vm_make_proc): add an assertion. * bootstraptest/test_proc.rb: add a test. |
a71fb38d47d910b421c56e7b28931be12a32d09d
|
2008-12-25 |
* vm_insnhelper.c (vm_method_search): return rb_cObject if there is no super class. [ruby-dev:37587] * bootstraptest/test_method.rb: add tests for above. |
1f2d804e5e2b724e91e627faa53d1283cfe7554e
|
2008-12-25 |
* vm_insnhelper.c (vm_method_search): fix control flow bug. (commited at r20981) |
597220ef0c694a74663e064b73605bd48ad7250b
|
2008-12-27 |
* vm.c (Init_VM): create and define TOPLEVEL_BINDING at first. * vm.c (vm_set_main_stack, rb_iseq_eval_main): added. * parse.y (rb_parser_compile_file): fix to check parse_in_eval flag. * eval.c (ruby_exec_node): use rb_iseq_eval_main() instead of rb_iseq_eval(). * iseq.c (rb_iseq_new_main), vm_core.h: added. main script (specified by -e or script name) should be run under TOPLEVEL_BINDING using Kernel#eval. Above changes simulate Kernel#eval behaviour. [ruby-dev:37240] * compile.c (make_name_for_block): skip iseq except block type. this fix is needed for [ruby-dev:37240], and also fixes [ruby-dev:35392]. |
b30b998966553a614f18703536b49a4dc273e0c6
|
2008-12-27 |
* vm_insnhelper.c (vm_call_method, vm_call_cfunc): use original id instead of calling id when NODE_CFUNC or NODE_BMETHOD. fixes Bug #632 [ruby-core:19282]. * vm_eval.c (vm_call0, vm_call_super): ditto. * vm_method.c (rb_add_method, rb_alias): store original id in nd_file field of NODE_METHOD. * test/stringio/test_stringio.rb: add a test. |
bd96f1fe705c973af8c6e1aec92802ba692b9b52
|
2008-12-27 |
* eval.c (get_errinfo): return th->errinfo value if normal errinfo place (dynamic local viriable) is not found. fixes Bug #732 [ruby-dev:37046]. * bootstraptest/test_proc.rb: add a test. |
6c08b4522d4b9173dcbada62c6d218452d103b4a
|
2008-12-27 |
* iseq.h, iseq.c (rb_iseq_new_main): add a type ISEQ_TYPE_MAIN. [ruby-dev:37619] * compile.c (rb_dvar_defined, ruby_iseq_compile): ditto. * iseq.c (iseq_data_to_ary, iseq_load): ditto. * compile.c (iseq_compile_each): fix to check ip->compile_data. |
b19be9b1a90b9672f0866566904ad66e43440c97
|
2008-12-27 |
* ruby.c (process_options): fix to untouch th->mild_compile_error. [ruby-dev:37621], [ruby-dev:37620] |
1f8620ca22d75b1f4487975ed2012a866dca9c3c
|
2008-12-27 |
* vm_insnhelper.c (vm_yield_with_cfunc): rename parameter name "blockptr" to "blockargptr". |
aebfdbeea573c031ea690ee93f816a53ac27ca51
|
2008-12-27 |
* eval.c (rb_frame_callee, rb_frame_caller): rb_frame_callee() should return method id on current frame. add rb_frame_caller() to get method id on parent frame. Bug #884 [ruby-dev:37446] * eval.c (rb_f_method_name): use rb_frame_caller() instead of rb_frame_callee(). |
ec5283e691a31d466099bc274169d3b0568ca840
|
2008-12-28 |
* ruby.c (process_options): set th->base_block only while it is needed. * ruby.c (require_libraries): clear th->base_block before require libraries. |
813d983154c5e237f1e4c1957917e054df6a69c7
|
2008-12-28 |
add ML index ([ruby-dev:37634]). |
b2ad49565f10dfdd594680c2fa7a4af81c1027fe
|
2008-12-29 |
* thread.c (rb_mutex_trylock): return false if Mutex owned by current thread. [ruby-core:20943] * thread.c (rb_mutex_lock): check dead lock (recursive lock) here. * test/ruby/test_thread.rb: add a test. |
272a3aa6a2ef9d2ef60288791f0e73c978367f62
|
2008-12-29 |
* vm.c (vm_set_eval_stack, vm_set_main_stack, vm_set_top_stack): check stack overflow. [ruby-dev:37646] |
d0ed5a93786881e2ddda99d0c83e4d1a216a3ca8
|
2008-12-29 |
* ext/dl/test/test_base.rb: add libc search logic. this patch is written by Takehiro Kubo. [ruby-core:20963] [Bug #932] * ext/dl/dl.h: Add ",..." as the last argument. this patch is written by Takehiro Kubo. Bug #633 [ruby-core:19289] * ext/dl/lib/dl/stack.rb: add add_padding() to calculate alignment. this patch is written by Takehiro Kubo. Bug #633 [ruby-core:19289] * ext/dl/test/test_func.rb: atof()'s return value is double. this patch is written by Takehiro Kubo. Bug #633 [ruby-core:19289] * ext/dl/test/test_import.rb: - atof()'s return value is double. - The types of qsort's second and third argument are size_t. - fprintf()'s return value is int. this patch is written by Takehiro Kubo. Bug #633 [ruby-core:19289] |
9c04a0647fb99f7554cb2e04385ddbb970631e02
|
2008-12-30 |
* thread.c (rb_thread_blocking_region): add a comment. * thread.c (rb_thread_call_without_gvl): added as a alias of rb_thread_blocking_region(). * thread.c (rb_thread_call_with_gvl): added. * vm_core.h (rb_thread_t#blocking_region_buffer): added for rb_thread_call_with_gvl(). |
6961f8becccc21f21e188aac5efa382a211e3c6a
|
2008-12-30 |
* ext/dl/test/test_import.rb: fix a prototype decl. pointed out by Takehiro Kubo [ruby-core:20971]. |
d46fcaf485dbf1fedf32330e200c039a55853fff
|
2009-01-10 |
* cont.c (cont_restore_1): should not be inlined. |
af12cefe06d4731a1796d815ad5738517de19199
|
2009-01-12 |
* eval.c: remove unused decl. |
6f09fc2efd1915c4337ce6dded52a8a8771c3222
|
2009-01-12 |
* thread.c: fix comment (terminology: Global VM Lock). * thread.c (blocking_region_begin, blocking_region_end): save and clear th->blocking_region_buffer. * thread.c (rb_thread_call_with_gvl): check if it has GVL. * thread.c (ruby_thread_has_gvl_p): added. * vm_core.h: add decls. |
29a6650d86c12c0756a4bb3ae8bf25079d44dbcd
|
2009-01-12 |
* gc.c (ruby_xmalloc, ruby_xrealloc, ruby_xfree): enable to use them without GVL. if GC is invoked, acquire GVL during GC. if NoMemoryError is raised, acquire GVL and raise it. |
b5cd33a4adacf86dbf13889ec30c1701b0479c60
|
2009-01-15 |
* gc.c (gc_with_gvl): suppress warnings. |
e39bd71126c6834637d115995a3602c56302b224
|
2009-01-15 |
* common.mk: btest-ruby should receive option with OPTS. |
a3a45fafa3d7df3ea1a406847abef1b4aaa07bf1
|
2009-01-15 |
* vm.c (rb_vm_inc_const_missing_count, ruby_vm_const_missing_count): added. * vm_insnhelper.h: ditto. * variable.c (rb_const_get_0), insns.def: Constants should not be cached if const_missing is called. [ruby-core:21059] [Bug #967] * bootstraptest/test_class.rb: add a test. |
e317b93409e04275605aa0082fb94340a784dc1c
|
2009-01-15 |
* lib/debug.rb: as wanabe-san pointed out, set_trace_func should be completely final task in debug.rb. Bug #847 [ruby-core:20449] |
e40928733d9849b63bfe665d8b1d0df7bc26df83
|
2009-01-15 |
* ruby.c (process_options): decrement parse_in_eval to recognize parsing main or normal eval script. * compile.c (rb_parse_in_main): return 1 if parsing main script. (if parse_in_eval is negative value, it means main script) * parse.y (yycompile0): check rb_parse_in_main() to accumulate script text. Bug #848 [ruby-core:20450] |
d9395fc46630c113204cece80781f31373b5a818
|
2009-01-15 |
* thread.c (call_trace_proc): as Matz said ([ruby-core:21183]), should skip rb_str_new2() if rb_sourcefile() returns NULL. rb_sourcefile() returns NULL if frame is toplevel of Fiber. [ruby-core:21161] [Bug #985] |
a04df27e72aa8e1f5940e80e8646d046977f5198
|
2009-01-16 |
* thread.c (thread_start_func_2): call ruby_cleanup() if thread is main thread. [ruby-dev:37624] |
4316e4d99b856fcd16a2aa0f08cb6285dcab24af
|
2009-01-19 |
* eval.c, vm_eval.c (rb_f_local_variables): move definition from eval.c to vm_eval.c because vm_collect_local_variables_in_heap() should be static function. * vm.c (vm_collect_local_variables_in_heap): make it static. |
c4c3f238d78f58242682b8c8428da63b3c018e54
|
2009-01-19 |
* iseq.c: rename ruby_iseq_disasm_insn() -> rb_iseq_disasm_insn(). rename ruby_iseq_disasm() -> rb_iseq_disasm(). * compile.c: rename ruby_iseq_compile() -> rb_iseq_compile_node(). rename ruby_iseq_translate_threaded_code() -> rb_iseq_translate_threaded_code(). rename ruby_insns_name_array() -> rb_insns_name_array(). rename ruby_iseq_build_from_ary() -> rb_iseq_build_from_ary(). * iseq.c, compile.c: remove ruby_insn_make_insn_table() and make static function insn_make_insn_table(). * iseq.h, ruby.c, vm.c, vm_core.h, vm_eval.c, vm_dump.c, blockinlining.c: ditto. Rename strange "ruby_" prefix to "rb_" prefix. This changes may affect only core because renamed functions require a pointer of rb_iseq_t which is not exposed. |
7d431933b65252109bde705391398126fb5930b9
|
2009-01-19 |
* gc.c (garbage_collect_with_gvl): suppress warnings. |
651f0e48bb148cfbeb190bd92fa2da736dac0d6c
|
2009-01-19 |
* vm_dump.c: add a prefix "rb_vmdebug_" to vm_stack_dump_raw(), vm_stack_dump_raw_current(), vm_env_dump_raw(), vm_proc_dump_raw(), vm_stack_dump_th(), vm_debug_print_register(), vm_thread_dump_regs(), vm_debug_print_pre(), vm_debug_print_post(), vm_thread_dump_state(). This change also may affect core (in fact, user of above functions may be only ko1). * vm_core.h: ditto. * vm_exec.h (SDR2): remove duplicate definition. |
cf23d0f0f0b6f3c118a0c243e16cc9b66a81d541
|
2009-01-19 |
* vm.c: add a prefix "rb_" to exposed functions vm_get_ruby_level_next_cfp(), rb_vm_make_env_object(), vm_stack_to_heap(), vm_make_proc(), vm_invoke_proc(), vm_get_sourceline(), vm_cref(), vm_localjump_error(), vm_make_jump_tag_but_local_jump(), vm_jump_tag_but_local_jump(). This changes may affect only core because most of renamed functions require a pointer of not-exposed struct such as rb_thread_t or NODE. In short, they are core functions. * cont.c, eval.c, eval_intern.h, load.c, proc.c, thread.c, vm_core.h, vm_dump.c, vm_eval.c, vm_exec.c, vm_insnhelper.c: ditto. |
9b520ddcec94c4654ca36bbb404bf4e9569b70cc
|
2009-01-19 |
* vm_eval.c, eval.c (rb_f_block_given_p): move definition of "iterator?" and "block_given?" to make static. * vm.c (vm_get_ruby_level_caller_cfp): make it static. * eval_intern.h, vm_insnhelper.c: move decl. of vm_get_ruby_level_caller_cfp() from eval_intern.h to vm_insnhelper.c. |
d31e1d4a52fc17c0cd8848eedd6e0934f5ea5291
|
2009-01-19 |
* ruby.c (require_libraries): reset th->parse_in_eval while loading libraries. fixes [ruby-dev:37780] |
c5d7d78daeb44b4c5ad7a9b624638ffd1be96135
|
2009-02-13 |
* cont.c (rb_fiber_alive_p): fix to return true instead of 1. [ruby-dev:37991] * test/ruby/test_fiber.rb: add a test for Fiber#alive? |
0cb68b619ef80f8edb050ac4aa21306815b2a501
|
2009-02-13 |
* vm_eval.c (eval_string_with_cref): use rb_vm_get_ruby_level_next_cfp() instead of vm_get_ruby_level_caller_cfp(). checking a upper frame is not enough. [ruby-dev:37984] * proc.c, vm_core.h: declare rb_vm_get_ruby_level_next_cfp() on vm_core.h. |
8a5746bf34f9b4952dc18566a69c7762b30e1c6a
|
2009-02-13 |
fix typo (1 -> 0). |
c9e4dc308f51122e0401756ac3aa4972d0b4ad32
|
2009-02-16 |
* compile.c: fix to add "ensure" codes across "while" clause before "return" expression. [ruby-dev:37967] * bootstraptest/test_flow.rb: add a test. |
0cdfbc9446d65959dc24b82e38b3cb5d6f9d825f
|
2009-06-07 |
* thread_pthread.c (rb_thread_create_timer_thread): print fatal error message to stderr instead of using rb_bug(). * KNOWNBUGS.rb, bootstraptest/test_fork.rb: move a fixed test. |
79b62da9b421527917bbf9eecd657f369b8175fc
|
2009-06-08 |
* thread.c: rename functions which require a parameter "rb_thread_t *", the prefix to be rb_threadptr_ instead of rb_thread_. * thread.c (rb_thread_add_event_hook(), rb_thread_remove_event_hook): change the parameter type from rb_thread_t * to VALUE. * eval.c, eval_error.c, eval_intern.h, signal.c, vm_core.h, vm_eval.c: ditto. * include/ruby/intern.h: remove decl of rb_thread_signal_raise() and rb_thread_signal_exit(). |
d3027870eeebed365979875858159d98e0f1effa
|
2009-06-14 |
* transcode.c (transcode_restartable0): revert last commit because this change cause SEGV at test-all. |
63bd8a74e81537ecf2aba0be0f8ef6eec9df2758
|
2009-06-14 |
* thread.c, vm_eval.c: add Thread.backtrace. * test/ruby/test_thread.rb: add a test. |
06f833e6d5b096afa294725044c1f54e5ae9c414
|
2009-06-16 |
* gc.c (rb_objspace_each_objects): New C API, added. |
a0e0fafa0c45eba54689854d6c8d3ace9badefe0
|
2009-06-16 |
* gc.c: fix indent. |
a74d12dc285ed07464d1272c7c15ab3eae4972be
|
2009-06-16 |
* include/ruby/ruby.h: New structure RTypedData, added. This structure incldues more explicit type information for T_DATA objects. If RData(obj)->dfree is immediate value `1' on T_DATA object obj, obj is needed to be accessed with RTYPEDDATA(obj) instead of RDATA(obj). A RTypedData structure points the structure rb_typed_data_t. rb_typed_data_t includes information such as the type name of this data, mark and free function what RData includes, and memsize function show how data consuming the memory size. Note that you do not need any change existing T_DATA objects. If you use RDataType instead of RData on T_DATA object, you can specify explicit type information. * gc.c (rb_data_typed_object_alloc, rb_objspace_data_type_memsize, rb_objspace_data_type_name): added. |
dfb0fa0ca6b6d860affae3339f7bec83bb694bb4
|
2009-06-16 |
fix indent. |
af0429b54eef973077f00d24d40fd17687a86ac0
|
2009-06-16 |
* st.c, include/ruby/st.h (st_memsize): added. This function returns the memory usage of st_talbe. |
51d174a17704c56342488cc1cc932b0825a3f305
|
2009-06-16 |
* iseq.c (iseq_memsize): added. Use RTypedData instead of RData for ISeq. * vm.c (env_memsize, vm_memsize, thread_memsize): added. Use RTypedData instead of RData for Env, VM, Thread. |
3caa4ee5e545ee975ca3dc3fa798e63876e59a05
|
2009-06-16 |
* array.c (rb_ary_memsize): added. * io.c (rb_io_memsize): added. * regcomp.c (onig_memsize): added. * string.c (rb_str_memsize): added. * transcode.c (rb_transcoding_memsize, rb_econv_memsize): added. * variable.c (rb_geneic_ivar_memsize): added. |
39a770b7205fe79b50bb8cd370f758e8a82759bf
|
2009-06-16 |
* ext/objspace: added. objspace library extends some methods to ObjectSpace module. |
9e607430088d2b89576769530aa9069680da97f5
|
2009-07-07 |
* 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. |
0ac93a1a405d3642a1e73294c04f428c79f5f947
|
2009-07-13 |
* insns.def, vm_insnhelper.c (getinstancevariable): fix to use inline cache. * compile.c: fix to skip inline cache entry (IC). IC is added automatically by compiler. * insns.def, vm_insnhelper.h: fix IC positions. * iseq.c: increment minor_version of ISeq because of above change. |
20d9aefccbc5d9b5f9feacef9ee52dc1731aec55
|
2009-07-13 |
* vm_core.h, compile.c: declare struct iseq_inline_cache_entry. Inline cache (IC) entries are no longer GC managed object. IC entries are freed when ISeq is freed. * iseq.c: fix mark, free, memsize functions for above change. * insns.def: remove rb_gc_write_barrier(). * vm_insnhelper.c (vm_method_search): ditto. * tool/instruction.rb, template/insns_info.inc.tmpl (insn_iclen): added. |
d3cbda6e8dc5732f64b06cacb4c137f01ebe0461
|
2009-07-15 |
* dir.c (push_glob): fix GC problem. |
c330876d7c5065f89234becc5125426d0d136bdc
|
2009-07-15 |
* 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(). |
0d2449bd35061399c57d6ce87128d7e876db645c
|
2009-07-15 |
* io.c (argf_free): free data body. |
70303852733730508621b1185f8032449efafa80
|
2009-07-15 |
* common.mk: add method.h. |
0e03a296e63b9694709de9bc462c08de60873a58
|
2009-07-15 |
* dir.c (push_glob): re-fix GC problem. |
d4628c0bcd0479b15593cfa4ed0907b4360857e0
|
2009-07-15 |
* vm_method.c: separate clearing cache entry code. |
94664d6d0cc8042e98c7256ec28a751d3e5b687c
|
2009-07-16 |
* node.h, vm_core.h, variable.c: rename global_entry to rb_global_entry. * compile.c, insns.def, iseq.c, vm_insnhelper.h: ditto. |
b5dd85f049ce4dc7249711ac9ee5c7a90520d4f1
|
2009-07-16 |
* vm_method.c (rb_alias): fix a case which try non-existing method alias. * test/ruby/test_alias.rb: add a test. |
9050b61dcbee9bbd5ad9e494de65cd4cd3103af8
|
2009-07-28 |
* proc.c (rb_method_entry_arity): support optimized method (send). * test/ruby/test_method.rb: add a test for above. |
497ee63f8d8c5df055efa6b8782a07ebdbcb0443
|
2009-07-28 |
* proc.c (rb_method_entry_arity): support not_implemented method. (I have no idea to test it) |
07de51fc4fbb392cedc5b5700bab7b2ac37cfd02
|
2009-07-28 |
* vm_core.h, vm_insnhelper.c (vm_call_method): revive VM_CALL_OPT_SEND_BIT and use it to recognize "send" method. |
8e8e34319ba6d9457b3ffa374738baa41a96be05
|
2009-08-12 |
* insns.def, vm.c, vm_insnhelper.c, vm_insnhelper.h: check definition of (classes)#=== for case/when optimization. Fix Bug #1376 [ruby-core:23190]. * string.c (Init_String), bignum.c (Init_Bignum), numeric.c (Init_Numeric): define String#===, Symbol#===, Bignum#===, Fixnum#===, Float#=== as same as (classes)#==. |
a174dbcd4fc33a0355b92b646ec3a412b1ebbb14
|
2009-08-15 |
* vm_insnhelper.c (opt_eq_func): fix optimization bug. This issue was found out and debugged with Takuto Hayashi at Security and Programming camp 2009. |
d2d0d733c168916d356e088ed14b6e5a47766766
|
2009-09-01 |
* vm_eval.c (eval_string_with_cref): fix to check local_table_size. [ruby-dev:39205] [Bug #2024] |
a4b94c4443953b61ecdbb764e4a544c0e7208c7e
|
2009-09-02 |
* gc.c (obj_free): fix to free method table (fix memory leak). |
bd8da69e9b5df785cc3fa0871332257e09335a78
|
2009-09-06 |
* insns.def (setinstancevariable), vm_insnhelper.c (vm_setivar): fix to use inline cache (trivial optimization). |
f825d848986177d779e8018a1083f88b8799ae5f
|
2009-09-06 |
* compile.c (iseq_specialized_instruction), insns.def (opt_size): optimize #size methods (by specialized instruction). * id.c, id.h, vm.c, vm_insnhelper.h: ditto. |
55cfc1e4098cf742758dd6f4d5c96a30b0e187fa
|
2009-09-06 |
* template/id.h.tmpl: fix this. * id.h: removed. Because this file is generated automatically. |
f1e98086f218f1d5de247f1670f94bfcdff2bf33
|
2009-09-06 |
* vm_insnhelper.h (CALL_SIMPLE_METHOD_IC): make a macro invoke simple method with inline cache entry. * insns.def (opt_length, opt_size): fix to use inline method cache. |
3463db3068924d4671d7cb982658eae202b40eb6
|
2009-09-06 |
* vm_insnhelper.c: rename macro name ENABLE_IC_FOR_IVAR to USE_IC_FOR_IVAR. |
dd7f5639a989ecec4aa8a30f36e89ef40a51e284
|
2009-09-06 |
* benchmark/driver.rb: remove RUBY_VERSION output. |
cea5aeb795149cead9a9cb151a4754c6ce185d13
|
2009-09-06 |
* Makefile.in, common.mk: move a id.h generation rule. |
b82db5251c2c39f8a10cd21b595cc1cad8155cdc
|
2009-09-06 |
* insns.def (opt_*): add IC operands. * vm_insnhelper.h (CALL_SIMPLE_METHOD): add a version which use an inline cache. USE_IC_FOR_SPECIALIZED_METHOD macro switchs the behaviour. This change also removes CALL_SIMPLE_METHOD_IC() macro. * tool/instruction.rb: fix elimination process to ignore variable "ic". |
a31c632299b72cd9e4ff53cec6d7b56f1f8a54f7
|
2009-09-08 |
* iseq.c (iseq_mark): no need to mark inline cache entries. * insns.def (onceinlinecache, setinlinecache): save a value to mark cached value. |
e519c9d960549163c17571689cc977f7ca45073e
|
2009-09-10 |
* 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. |
6f817b6dd2d0c749a6657077845331130a1fa4da
|
2009-09-12 |
* vm_core.h: change members of iseq_inline_cache_entry. make cache value members to one union member "ic_value". * insns.def: ditto. * vm_insnhelper.c: ditto. |
554e9a83e02b00d97870432c82267fc63c469c5f
|
2009-09-17 |
* blockinlining.c: removed. * README.EXT: ditto. * README.EXT.ja: ditto. |
c8c6fde56f84c4fd26ade4268376279c65266949
|
2009-09-17 |
* eval_intern.h: use rb_node_newnode() directly. |
f833dd2e24b821c083385863dc552bd847ce85c9
|
2009-09-25 |
* iseq.c (compile_string): rename to parse_string(), because this function only parse String to NODE. |
6ed425d55b45cfbca9f03e6083ac35622e694653
|
2009-09-26 |
* string.c: use rename-macro instead of RUBY_ALIAS_FUNCTION_TYPE. Because build causes failure. |
618445576faa94fcd6d3957ea3fb59f6372b64ba
|
2010-01-24 |
* eval.c, vm.c, vm_eval.c, vm_insnhelper.c: fix issues about return and c-return trace. This issue skips (c-)return event with global jump such as break or return. This fix make vm invoke hooks at stack rewind timing. fix [ruby-core:27606] [Bug #2610]. * test/ruby/test_settracefunc.rb: add a test for above. |
d3f73f45d8342e37a814eeb8c98e1d04f451a3b4
|
2010-02-24 |
* insns.def: Change the operand type of setinlinecache (OFFSET to IC). This IC must be same as corresponding getinlinecache instruction's IC operand. This change is for a little performance improvement (getting IC directly) and is for the AOT compilation development. * compile.c, iseq.c, insns.def: Change the approach to handling inline cahce (IC) type operand to enable the above change. This change also affects ISeq#to_a method. The inline cache operand will be dumped by fixnum, the index of inline cache, in other words, inline cache identity. * template/insns_info.inc.tmpl, tool/instruction.rb: No need to count inline cache size (insn_iclen()). |
9da12c5850a4226b51ba5fd8fd52c45939f7757c
|
2010-03-09 |
* compile.c (defined_expr), insns.def (defined): fix to pass a Symbol object such as :$foo for the "defined?($foo)" expression on defined instruction. This patch fixes ISeq#to_a/load. |
8ed1f433922a45b941fd58e6c3054c8e4c97dd53
|
2010-05-04 |
* vm_insnhelper.c (argument_error): push correct backtrace. Bug #2281 [ruby-core:26333] |
b4d7d616d9ad8d94df0563f06318c7b9a6a80269
|
2010-05-04 |
* method.h, vm_method.c: rename some internal functions related to rb_method_entry_t. rb_add_method_me() -> rb_method_entry_set(). rb_get_method_entry() -> rb_method_entry_without_cache(). rb_gc_mark_method_entry() -> rb_mark_method_entry(). * class.c, proc.c: ditto. |
833cade2dce8ee8a9dd2091fcc84880030a51d54
|
2010-05-05 |
* vm_method.c (rb_unlink_method_entry, rb_sweep_method_entry): added. Unlinked method entries are collected to vm->unlinked_method_entry_list. On the GC timing, mark all method entries which are on all living threads. Only non-marked method entries are collected. This hack prevents releasing living method entry. [Performance Consideration] Since this Method Entry GC (MEGC) doesn't occuer frequently, MEGC will not be a performance bottleneck. However, to traverse living method entries, every control frame push needs to clear cfp->me field. This will be a performance issue (because pushing control frame is occurred frequently). Bug #2777 [ruby-dev:40457] * cont.c (fiber_init): init cfp->me. * gc.c (garbage_collect): kick rb_sweep_method_entry(). * method.h (rb_method_entry_t): add a mark field. * vm.c (invoke_block_from_c): set passed me. * vm.c (rb_thread_mark): mark cfp->me. * vm_core.h (rb_thread_t): add a field passed_me. * vm_core.h (rb_vm_t): add a field unlinked_method_entry_list. * vm_insnhelper.c (vm_push_frame): clear cfp->me at all times. * vm_insnhelper.c (vm_call_bmethod): pass me. * bootstraptest/test_method.rb: add a test. |
c462c50d6336a0c7823ff8cfce51f8bff22eeff6
|
2010-05-05 |
* cont.c: apply FIBER_USE_NATIVE patch. This patch improve Fiber context switching cost using system APIs. Detail comments are written in cont.c. |
26c48195afc911ed45ae2db72dc68d7373e4504e
|
2010-05-06 |
* cont.c (fiber_setcontext): Fix last commit. |
9831508ba3296789f9d00ef4296e7b75d2d8b965
|
2010-09-21 |
bootstraptest/test_method.rb: add a test for [ruby-core:30534]. |
f01fae288597249bacff89e89ebfbc3067036f82
|
2010-09-21 |
* bootstraptest/test_method.rb: fix last commit. |
86a8b820d636a36ddc49f9c906f5d0744dd3ef23
|
2010-09-27 |
* insns.def (opt_case_dispatch), vm_insnhelper.c: execute the procedures of "when" clauses by bytecode instead of st_foreach() when the object does not hit prepared hash. [ruby-dev:42304] |
559fd3e439194bbc8d55cae30c8c1ba13832c8e8
|
2010-10-14 |
* insns.def, iseq.c, vm_insnhelper.c: rename variable name (ip -> iseq). |
261661517af17df2cb8602594ab263b25c39132c
|
2010-10-15 |
* hash.c (rb_hash_aref): skip calling "default" method if it is not neede for speed-up. |
e923b67707d05f0ab55885cf94037fd9aab75876
|
2010-10-21 |
* gc.c (gc_lazy_sweep): Variable declarations should be at the head of block. |
3bd7384c76c439a80a7b2157888edb3d132c8cf2
|
2010-10-23 |
* vm_dump.c (rb_vm_bugreport): fix to add bug outputs. - loaded script ($0) - loaded features ($") - process memory map on Linux (/proc/self/maps) * vm_dump.c (rb_vmdebug_stack_dump_raw): fix header message. |
df26e9d44e5c4555b5e42f593ab6afe50503f1d6
|
2010-10-24 |
* common.mk (run.gdb): Quit gdb on 'make gdb' when no signals are received. |
b36aa7af03a481fc1f41533256a78946498ba0ae
|
2010-10-27 |
* ext/objspace/objspace.c (memsize_of): fix rdoc. * ext/objspace/objspace.c (total_memsize_of_all_objects): added. * test/objspace/test_objspace.rb: - add a test for ObjectSpace.total_memsize_of_all_objects. - add two tests for ObjectSpace.memsize_of (for nil and Fixnum). |
492d120877e6687fa27d68c3bb17f776d14340fc
|
2010-10-27 |
* gc.c (GC.stat): added. [ruby-dev:38607] * test/ruby/test_gc.rb: add a test for above. |
87c0b99446b0aa2265e25d0cf06ba5676e1683a9
|
2010-10-28 |
* gc.c (before_gc_sweep, run_final): fix decrement timing of final_num. |
8121a4f5a856b94345f68dd60a8873afc5d1620f
|
2010-10-28 |
* ext/objspace/objspace.c (ObjectSpace.memsize_of_all): rename ObjectSpace.total_memsize_of_all_objects() to ObjectSpace.memsize_of_all([klass]). Accept Class object to filter the objects. * test/objspace/test_objspace.rb: fix test for above change. |
32623a16276b8c99a8c142c570cb2f50dc3df737
|
2010-10-29 |
* test/profile_test_all.rb: added. You can use test-all profiler with the following command: RUBY_TEST_ALL_PROFILE=true make test-all This command generates ./test_all_profile and you can analyse which tests consume memories. * test/runner.rb: ditto. |
0a0c6572856431d822e76348bd2c0f0933b537e0
|
2010-10-29 |
* ext/objspace/objspace.c (memsize_of): take care of T_CLASS/const_tbl. a patch from nagachika <nagachika00@gmail.com> [ruby-dev:42490] |
340bb04efe438e10a972c3d159451636b69ead1e
|
2010-10-29 |
* iseq.c (iseq_s_compile): fix optional argument. a patch from Yutaka HARA [ruby-core:32953] [Ruby 1.9-Bug#4001] |
b76fd8283aa28794c082c61615b57bc0e80acdc7
|
2010-10-31 |
* vm_core.h: some refactoring. - move decl. of rb_compile_option_struct to iseq.h. - define enum iseq_type. - define enum vm_special_object_type. * compile.c: some refactoring. - apply above changes. - (struct iseq_link_element): change value of type. - remove unused decl. - fix comment. - rename iseq_build_body and iseq_build_exception to iseq_build_from_ary_body and iseq_build_from_ary_exception. * iseq.h: define enum catch_type and enum defined_type. * insns.def: apply above changes. * iseq.c: define ISEQ_MAJOR_VERSION and ISEQ_MINOR_VERSION. |
7b0d48c1fad4185f7d72ce469c296068474389c4
|
2010-10-31 |
* gc.c (finalizer_table, objspace->final.table): Create finalizer_table at Init_heap(). Remove all null checks of finalizer_table. * gc.c (mark_tbl): skip if no table entries. * gc.c (slot_swee): remove useless need_call_final check. |
f6b2490fdb7d30d0c4ab37d63801f969c1aad4d5
|
2010-11-03 |
* gc.c, vm.c, vm_core.h: remove USE_VALUE_CACHE option. |
08db452620d5e39cf239b5fc82b7fed0a33cce37
|
2010-11-04 |
* gc.c (after_gc_sweep, slot_sweep): finalizers should be invoked as soon as possible. |
3ff23bf9268d98597b14eb3198bc31dc40810841
|
2010-11-04 |
* gc.c (after_gc_sweep, before_gc_sweep): invoke rb_sweep_method_entry() as soon as possilbe. |
ba0143b59138a905eaf5f6a05fb17c81d5882bb2
|
2010-11-04 |
* gc.c (before_gc_sweep): fix commit miss. |
e95b72a1f1817180ef4958bb5f8573459c0c2c33
|
2010-11-04 |
* gc.c (run_final): do not need argument obj. |
ad3427002c196abbac9d7a62c4c32b205ecff4dd
|
2010-11-04 |
* gc.c (run_final): do not need argument obj. |
be4eee217c5630c62e16fb31ae729cf6754ad013
|
2010-11-04 |
* ChangeLog: missed to write a last ChangeLog. * gc.c (gc_finalize_deferred): removed. * gc.c (rb_gc_finalize_deferred): Do not invoke a free_unused_heaps(). |
71603f3f011bd47993e3ae0db441916ec2533991
|
2010-11-04 |
* gc.c (rb_newobj): force garbage_collect() if GC.stress == true. |
450463d5fbc7098666c1405b5ea1ece4c8dd04a5
|
2010-11-27 |
* thread.c, vm_core.h: make gvl_acquire/release/init/destruct APIs to modularize GVL implementation. * thread_pthread.c, thread_pthread.h: Two GVL implementations. (1) Simple locking GVL which is same as existing GVL. (2) Wake-up queued threads. The wake-up order is simple FIFO. (We can make several queues to support exact priorities, however this causes some issues such as priority inversion and so on.) This impl. prevents spin-loop (*1) caused on SMP environemnts. *1: Only one Ruby thread acqures GVL again and again. Bug #2359 [ruby-core:26694] * thread_win32.c, thread_win32.h: Using simple lock not by CRITICAL_SECTION but by Mutex. Bug #3890 [ruby-dev:42315] * vm.c (ruby_vm_destruct): ditto. |
7a4b99129b1e05221add4132533a92de4c454da3
|
2010-11-28 |
* thread_pthread.c (native_cond_*): Check return code. (Some OSs except Linux return error code). |
e4cf9c59fda102a80aa767c3a66a4738e26f6213
|
2010-11-28 |
* thread_pthread.c: remove pthread_atfork(). |
283c36e761b55a6f393b088261b7ceee8c83d6e8
|
2010-11-28 |
* thread_pthread.c (NATIVE_MUTEX_LOCK_DEBUG): move and use it. * ChangeLog: fix my timezone. |
5a363fbb50570063019fd1dfd13490f053cbb29f
|
2011-06-10 |
* common.mk: restore TESTRUN_SCRIPT to "$(srcdir)/test.rb". TESTRUN_SCRIPT is used by "make run", "make gdb" and so on. |
3c9187a2ad892d0c7c4b905104bb71c3c34a999e
|
2011-06-12 |
* benchmark/bm_vm3_thread_mutex.rb: remove it. * benchmark/bm_vm3_thread_mutex[1-3].rb: added 3 benchmarks. 1: one thread with one mutex (no contention). 2: two threads with one mutex (contention). 3: 1000 threads with one mutex (huge number of contention) Abobe removed benchmark was type 3. Therefore, this commit adds type 1 and 2 benchmark. |
8c09664a94ed4e1bf043847b28e4567da845292b
|
2011-06-12 |
* vm_method.c (rb_clear_cache*): update only vm state version. * vm_method.c (rb_method_entry_get_without_cache, rb_method_entry): Fill method cache entry with vm state version, and check current vm state version for method (cache) look up. This modification speed-up invaridating of global method cache table. [Ruby 1.9 - Feature #3905] [ruby-core:36908] |
d5abe72ccac9705a68868e6642a42c0425b121bc
|
2011-06-12 |
* benchmark/bm_vm3_clearmethodcache.rb: added. |
7b614a53dd50508410c48113dce87abfc003df6b
|
2011-06-12 |
* ext/objspace/objspace.c (total_i): fix to skip no ruby objects. |
038ef3f05cbddb484c181a8614b088d99014917b
|
2011-06-13 |
* vm_core.h, vm_insnhelper.h: move decl. of ruby_vm_global_state_version and related macros from vm_core.h to vm_insnhelper.h. * vm.c (vm_clear_all_cache): added. This function is called when ruby_vm_global_state_version overflows. TODO: vm_clear_all_inline_method_cache() is only place holder. We need to implement it ASAP. * vm_method.c (vm_clear_global_method_cache): added. |
ef3fb5d1e89c6494f1223da46ed8c7a74dff7d2d
|
2011-06-14 |
* benchmark/bm_vm3_thread_*.rb: renamed bm_vm3_thread_*.rb to benchmark/bm_vm_thread_*.rb. |
1ac74a11c2594f1cc4284c941ccf5ca91fc8e146
|
2011-06-16 |
* thread_pthread.c (native_thread_create): fix debug message. (add last newline) |
98d45ef140dcc53f4dd7c0dbdd25433d5c378ff7
|
2011-06-16 |
* benchmark/bm_vm4_thread_create_join.rb, benchmark/bm_vm4_thread_mutex[1-3].rb: renamed to bm_thread_* (fix last rename). |
772a2811923e1634ff7c157abdc9b41740659af6
|
2011-06-16 |
* thread_pthread.c, thread_pthread.h: remove unused variables. (native_thread_data_t::gvl_cond, native_thread_data_t::gvl_next) |
436810414630dd00c9881e06f0007f8f16973ca6
|
2011-06-18 |
* vm.c, vm_core.h (rb_vm_stack_to_heap): fix "const" place. |
d1d5d5e79845c292c6118884fa66729954daad01
|
2011-06-27 |
* thread_pthread.c: Stop polling in the timer thread when there are no waiting thread. If there are 2 or more runnable threads, the timer thread does polling. Avoid polling makes power save for several computers (0.2W per a Ruby process, when I measured). If outside-event such as signal or Thread#kill was occuerred when the timer thread does not do polling, then wake-up the timer thread using communication-pipe (the timer thread waits this communication-pipe with select(2)). The discussion about this modification can be found from the post [ruby-core:33456] and other related posts. Note that Eric Wong and KOSAKI Motohiro give us the huge contributions for this modification. Thanks. * thread_pthread.c (rb_thread_wakeup_timer_thread): add a function. This function wakes up the timer thread using communication-pipe. * thread.c (rb_thread_stop_timer_thread): add a parameter which specify closing communication-pipe or not. * thread.c (rb_thread_terminate_all): do not stop timer thread here (ruby_cleanup() terminate timer thread). * signal.c: wake up timer thread using rb_thread_wakeup_timer_thread() from signal handler. * eval.c (ruby_cleanup): use rb_thread_stop_timer_thread(1). * process.c: use rb_thread_stop_timer_thread(0) (reuse communication-pipe). * thread_win32.c (rb_thread_wakeup_timer_thread): add a dummy function. * vm_core.h: add and fix decl. of functions. |
f18cf4f023448fc25078303c12d1cec15ed3edf9
|
2011-06-27 |
* thread_pthread.c (rb_thread_create_timer_thread): Fixes missing initialization of oflags. |
014a5f31789856f9ed7a59f19fb3c3e544655a7d
|
2011-06-28 |
* thread_pthread.c (consume_communication_pipe): Make "buff" as static. (Maybe) "buff" can be shared between any caller (any threads) because no one use the read values. And remove const value "buff_size", and define CCP_READ_BUFF_SIZE macro. |
9ca26b50d7117726f821735e1fd7eff4b93d34d0
|
2011-06-28 |
add a detail comment. |
c22126755cd89f2b8aa309df8908d839e588a3bd
|
2011-06-28 |
* error.c (rb_async_bug_errno): async-safe bug report function. In timer thread, signal handler shoul use it. The patch is contributed by Eric Wong <normalperson@yhbt.net>. Refs: [ruby-core:37644] and [ruby-core:37647] * thread_pthread.c: use rb_async_bug_errno(). And replace all fprintf() to write(). * internal.h (rb_async_bug_errno): add decl. of above func. |
87dadf3b8cd9b8bd2d5a5ba1a5009e289447f08a
|
2011-06-28 |
* thread_pthread.c (native_stop_timer_thread): skip to close communication pipe to avoid timing bug (process termination timing). The communication pipe will closed by OS. |
51646778414daf9546aff748e6bf0561b050aa5c
|
2011-06-30 |
* thread_pthread.c (rb_thread_create_timer_thread): allocate machine stack for the timer thread at least 12KB. FreeBSD 8.2 AMD64 causes machine stack overflow (SIGSEGV) only with PTHREAD_STACK_MIN (maybe defined as 2KB). |
d49a61e68f1d6ffe448ec3244c63d48adc101cea
|
2011-06-30 |
* thread_pthread.c (ping_signal_thread_list, thread_timer): fix to keep polling state if there are any ping-tasks. |
3b32735546e989557a8992063f9f1bbdcd999beb
|
2011-06-30 |
* ext/objspace/objspace.c (ObjectSpace.count_tdata_objects): Fix rdoc. * ext/objspace/objspace.c (ObjectSpace.count_tdata_objects): Change key type if the klass of a object is zero (internal object). Read rdoc for details. * internal.h: export rb_objspace_data_type_name(). |
9942e92ca6693bf0b6f795fed11f1ff7acef8b8a
|
2011-06-30 |
add ref to ticket. |
fa2c1c75a9ef0c9a9b35a56108ef6d2ea84717e5
|
2011-06-30 |
* thread_pthread.c (thread_timer): ignore unknown errno. (we observed that select(2) was canceled by errno=514 on boron == Linux/Xen environment) |
065fe8b7a4dadd41760131cb3778abd4aef26e90
|
2011-06-30 |
* vm_insnhelper.c (vm_call_bmethod): fix to hook call/return event for methods defined by define_method(). * thread.c (call_trace_proc): Fix to skip if class is not given (0). Note that ID and Class object are passed for call/return event if the called method was defined by define_method(). If you are author of tracer/profiler/debugger, this may be an important change. You should check passed class as zero or non-zero instead of checking the event type. * test/ruby/test_settracefunc.rb: add a test for above. |
3bd05662883a14ce0ffe63666317d80faeb7afef
|
2011-06-30 |
add an issue number. |
c4becf8aaf8b1dc27ca274457548117d703c65e5
|
2011-06-30 |
* benchmark/bm_vm2_defined_method.rb: added to measure performance of bmethod (method defined by define_method()). |
fa4514e4fedc1e1390200e3901e2add22a4a27b4
|
2011-06-30 |
* thread.c (rb_threadptr_check_signal): only wake up main thread. * thread.c (rb_threadptr_execute_interrupts_common): check signal deliverly if it is main thread. fixes [ruby-dev:44005] [Ruby 1.9 - Bug #4950] * bootstraptest/test_fork.rb: add a test for above. * signal.c (rb_get_next_signal): skip if signal_buff is empty. (check signal_buff.size first) * vm_core.h: remove unused variable rb_thread_t::exec_signal. * thread.c (rb_thread_check_trap_pending): check rb_signal_buff_size() because rb_thread_t::exec_signal is no longer available. |
2e4fb84f7c78d7d9cd24d1802ef97fda6d2466d0
|
2011-06-30 |
* vm_insnhelper.c (vm_getivar): check vm state version to invalidate inline chache (ivar index). fixes Bug #4926. * vm_insnhelper.c (vm_setivar): ditto. |
eb35bb0b351f55459fdfce7198e8756e37141dff
|
2011-07-03 |
* include/ruby/intern.h, thread_pthread.c (rb_reserved_fd_p, RB_RESERVED_FD_P): added. This C API is to limit to access fds which are used by RubyVM internal. In this version of CRuby, return 1 if fd is communication pipe. If your application needs to close all file descriptors to preent resource leak, skip internal fds using this C API. We also define a macro RB_RESERVED_FD_P(fd). So you can write #ifndef RB_RESERVED_FD_P #define RB_RESERVED_FD_P(fd) 0 #endif for Ruby 1.9.2 or previous version to write compatible extensions. See [ruby-core:37727] * thread_win32.c (rb_reserved_fd_p): added (return 0 for any fds). * io.c (rb_io_initialize): raise ArgumentError if given fd is reserved by Ruby. |
919978a8d9e25d52697c0677c1f2c0ccb50b4492
|
2011-07-10 |
* internal.h (rb_thread_call_with_gvl, rb_thread_call_without_gvl): make them visible as experimental C APIs. fixes Feature #4328. |
9cf9d5eaf7923498a3ece7f6757c9010aaa55e71
|
2011-07-10 |
* vm_insnhelper.c (vm_throw): check a class frame. Fixes Bug #4648. The patch is contributed by Kazuki Tsujimoto. * bootstraptest/test_proc.rb: add tests for above. |
ce698d4c0d4eb9c48650466b7f1566c869eb2e01
|
2011-07-10 |
* internal.h: add comments (cautions). |
4f03f0cb67b0bf6497ffd4051e872905e3b49ead
|
2011-08-24 |
* insns.def (defined): fix to checking class variable. A patch by Magnus Holm <judofyr@gmail.com>. Thanks! * test/ruby/test_variable.rb: add a test for above. |
7049d9c80d1ba859beb5d68c7a9de37d5c11b8e8
|
2011-08-24 |
* iseq.h, iseq.c, compile.c: Change the line number data structure to solve an issue reported at [ruby-dev:44413] [Ruby 1.9 - Bug #5217]. Before this fix, each instruction has an information including line number (iseq::iseq_insn_info_table). Instead of this data structure, recording only line number changing places (iseq::iseq_line_info_table). The order of entries in iseq_line_info_table is ascending order of iseq_line_info_table_entry::position. You can get a line number by an iseq and a program counter with this data structure. This fix reduces memory consumption of iseq (bytecode). On my measurement, a rails application consumes 21.8MB for iseq with this fix on the 32bit CPU. Without this fix, it consumes 24.7MB for iseq [ruby-dev:44415]. * proc.c: ditto. * vm_insnhelper.c: ditto. * vm_method.c: ditto. * vm.c (rb_vm_get_sourceline): change to use rb_iseq_line_no(). |
beb26e1b491f8d9fd20a2d944f036100cd1abac3
|
2011-08-24 |
* vm_insnhelper.h, vm_insnhelper.c, vm.c, vm_method.c, insns.def: Manage a redefinition of special methods for each classes. A patch from Joel Gouly <joel.gouly@gmail.com>. Thanks! |
ef039de5604582fbf87aea2dbc9a28697423aa51
|
2011-08-24 |
* vm.c (vm_make_env_each): work around to solve Bug #2729. fixes: Bug #2729 a patch from Kazuki Tsujimoto <kazuki@callcc.net> This problem is caused by changing dfp (dynamic env pointer) from saved dfp. Saved dfp is pointed env in VM stack. However, the dfp can be moved because VM copies env from VM stack to the heap. At this copying, dfp was also changed. To solve this problem, I'll try to change throw mechanism (not save target dfp, but save target cfp). * bootstraptest/test_flow.rb: add a test for above. |
5d486bec613a2b420a19a03f67e6253ae22b7ca7
|
2011-08-26 |
* vm_core.h: add a decl. of rb_autoloading_value(). |
45248e74e424715c51c0d14e958fd3a9995ba572
|
2011-08-26 |
* iseq.c (iseq_data_to_ary): fix type of variable (long -> unsigned long) to suppress a warning. |
49042ae821cb15986ab92d030960ee84154ae8a7
|
2011-09-09 |
* gc.c (GC_PROFILE_MORE_DETAIL, CALC_EXACT_MALLOC_SIZE): define macros only if they are not defined. fixes: [Ruby 1.9 - Feature #5291] |
9cd8b76e6df560d1da61138e99eab76b7c3e1f6b
|
2011-11-09 |
* cont.c (rb_fiber_m_transfer, rb_fiber_resume): prohibit using "resume" after "transfer" method are used. You should not mix "resume" fiber and "transfer" fiber. [Bug #5526] * NEWS: add information about this change. |
0c215e34dfc51e0757322c8ef17d421c6dfb07e4
|
2011-11-09 |
* test/ruby/test_fiber.rb: add tests for r33684 (Fiber#resume). |
6da0604df71d66b7484e77b92e5c13154664b06e
|
2012-04-10 |
* compile.c (iseq_set_sequence): show a hint if there are duplicated "when" clauses. [ruby-core:41502] [ruby-trunk - Feature #5716] |
ee7f8d4805fb4a661b8e8328be49f32cbc3e606d
|
2012-04-12 |
* compile.c (compile_array, compile_array_): Divide big array (or hash) literals into several blocks and concatetene them. There was a problem that a big array (hash) literal causes SystemStackError exception (stack overflow) because VM push all contents of the literal onto VM stack to make an array (or hash). To solve this issue, we make several arrays (hashes) and concatenate them to make a big array (hash) object. ?? * compile.c (iseq_compile_each, setup_args): use modified compile_array. * vm.c (m_core_hash_from_ary, m_core_hash_merge_ary, m_core_hash_merge_ptr): added for above change. * id.c (Init_id), parse.y: add core method ids. * bootstraptest/test_literal.rb: add simple tests. * bootstraptest/test_eval.rb: remove rescue clause to catch SystemStackError exception. * test/ruby/test_literal.rb: add tests to check no stack overflow. |
45b3509ce1c34eb8fcca864ade6a42d6ca9e9249
|
2012-04-12 |
Add a ticket number for last commit. |
66d247bcb50a29769ff940100223544c125521aa
|
2012-04-24 |
* compile.c: fix to output warning when the same literals are available as a condition of same case clause. And remove infomation ('#n') because we can find duplicated condition with explicit line numbers. [ruby-core:38343] [Ruby 1.9 - Bug #5068] * test/ruby/test_syntax.rb: add a test for above. |
6978b8ca6767cf79840354f7e0472d9d635a95b9
|
2012-04-28 |
* vm_core.h (rb_thread_t#yielding): add a field. * thread.c (rb_thread_schedule_limits): set th#yielding while release GVL to yield CPU time. * thread.c (timer_thread_function): skip timer interrupt when th#yielding is true. This patch fixes r35480. * thread.c (rb_threadptr_execute_interrupts_common): revert a patch of r35480. * ChangeLog: add an extended memo of r35480. http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/R35480_ExtendedMemo |
458c30e57d23bbef7fda89e436a463ab6800d1e9
|
2012-05-01 |
* common.mk: replace '@' prefix to '$(Q)' to control build process outputs. |
e6bd1496a8f6c57c2b876d321483782485252859
|
2012-05-01 |
* common.mk: "$(Q)-..." doesn't work on nmake. |
6051f542608d2fa86c84f45aeae847022550dfcc
|
2012-05-06 |
* compile.c (iseq_compile_each): remove unused variable `size'. |
8bcf7fc40266faa09cf8b6cebb2d96c1bb8d51ee
|
2012-05-22 |
* vm_core.h: add a data type rb_location_t to store iseq location information. rb_location_t#filename, filepath, name and line_no was moved from rb_iseq_t. rb_location_t#basename is a new field which is similar to `name' field without any decoration. `name' field contains some decoration such as `block in foo'. `basename' only contains `foo'. rb_iseq_t contains memory object of rb_location_t. * iseq.c: setup rb_location_t for each rb_iseq_t memory objects. * compile.c, proc.c, vm.c, vm_dump.c, vm_eval.c, vm_insnhelper.c, vm_method.c: support about it. |
3dcebce5235276e99a75c6b0c71f4f3c4f4e225c
|
2012-05-24 |
* vm.c: add RubyVM::Backtrace object (btobj). Backtrace information contains an array consists of location information for each frames by string. RubyVM::Backtrace object is lightweight backtrace information, which contains complete information to generate traditional style backtrace (an array of strings) with faster generation. If someone accesses to backtrace information via Exception#backtrace, then convert a RubyVM::Backtrace object to traditonal style backtrace. This change causes incompatibility on marshal dumpped binary of Exception. If you have any trouble on it, please tell us before Ruby 2.0 release. Note that RubyVM::Backtrace object should not expose Ruby level. * error.c, eval.c, vm_eval.c: ditto. * internal.h: ditto. * eval_error.c: fix to skip "set_backtrace" method invocation in creating an exception object if it call a normal set_backtrace method (defined by core). * test/ruby/test_settracefunc.rb: fix for above change. * vm_method.c (rb_method_defined_by): added. This function checks that the given object responds with the given method by the given cfunc. * benchmark/bm_vm2_raise1.rb, benchmark/bm_vm2_raise2.rb: add to measure exception creation speed. raise1 create exception objects from shallow stack frame. raise2 create exception objects from deep stack frame. |
d5893b91faa7dc77ca6c9728d1054dabd757aead
|
2012-05-24 |
* vm_method.c (rb_method_defined_by): removed. nobu pointed out that rb_method_basic_definition_p() is enough for last commit. * error.c, eval_error.c: change for above. |
1f3142a4477a10bfe566c17837c2a0b9f6cba00f
|
2012-05-25 |
* vm.c: refactoring backtrace related funcitons. (1) unify similar functions (rb_backtrace_each() and backtrace_object()). backtrace_each() is a unified function. variation: a) backtrace_object(): create backtrace object. b) vm_backtrace_str_ary(): create bt as an array of string. c) vm_backtrace_print(): print backtrace to specified file. d) rb_backtrace_print_as_bugreport(): print backtrace on bugreport style. (2) remove rb_backtrace_each(). Use backtrace_each() instead. (3) chang the type of lev parameter to size_t. a) lev == 0 means current frame (exception, etc use it). b) lev == 1 means upper frame (caller(0) use it). * vm_core.h, vm_dump.c, vm_eval.c: ditto. * vm.c (backtrace_object(), vm_backtrace_str_ary()): fix to return a correct size of caller(lev) array. Let n be a "caller(0).size" then ln as caller(lev).size should be (n - lev). However, the previous implementation returns a wrong size array (ln > n - lev). [ruby-dev:45673] * test/ruby/test_backtrace.rb: add tests for backtrace. |
a5f190615e894c0d1931300b27d8651f7eedf5e1
|
2012-05-25 |
* vm.c (oldbt_init, vm_backtrace_str_ary): arg->data should be initialized before calling `backtrace_each()'. |
4258db79543d97845f0684f9b69911b67181cecd
|
2012-05-25 |
* vm_eval.c (rb_f_caller): caller() method accepts second optional argument `n' which specify how many frames should return. For example, `caller(0, 1)' returns only one frame information which calls caller() method. If there are less than n frame information, then all frame information are returned. If n is 0, then always return []. This fix is part of [ruby-dev:42345] [Ruby 1.9-Feature#3917]. However, performance and features are not enough. RDoc is also not available. * test/ruby/test_backtrace.rb: add a test for above. |
6d597718cf45aff0dd25ee7c7e8bd8e158ac0268
|
2012-05-26 |
* vm.c (rb_frame_info_t): keep previous ISEQ frame info for CFUNC frame info. And fix to cache a calculated line_no of ISEQ frame info. |
fbf531c4a249e75260e80ed767114b02e0a1e985
|
2012-05-26 |
* vm.c (frame_info_to_str): add `break'. * vm.c (backtrace_object): remove lev and n parameter. backtrace_object always returns all of backtrace information. * vm.c (rb_backtrace_to_str_ary): fix to use backtrace_object(). This change improve performance of caller(lev, n). * benchmark/bm_vm3_backtrace.rb: added to check above improvement. FYI: measurement on my laptop, 1.9.3p229 needs 5.125 sec, and current trunk only needs 0.299sec. |
4f54d4710e1edfbcb8b0d7d7feea1bd8c519229f
|
2012-05-26 |
* vm.c (RubyVM::FrameInfo): add a class to access each frame information. You don't need to parse strings from caller(). FrameInfo has the following methods: FrameInfo#name: method name, class name, etc with decorations. FrameInfo#basename: name without decorations. FrameInfo#line_no: line number. FrameInfo#filename: file name. FrameInfo#filepath: full filepath. FrameInfo#iseq: iseq if it is iseq frame (defined by ruby script) FrameInfo#to_s: return caller() method style string. RubyVM::FrameInfoFrameInfo.caller(n, lev) returns array of FrameInfo objects. The name "RubyVM::FrameInfoFrameInfo.caller" is long and ambiguous (same as caller() method), we need to change the name before Ruby 2.0 release. Good names or comments are welcome. * test/ruby/test_backtrace.rb: add a test for above change. |
ca433168bad83458e02309fca76d9a9e00541419
|
2012-05-26 |
* NEWS: add Kernel#caller's second argument. |
a28b100f1c3ac22eed095e3a1fd6874ad5ecbb9f
|
2012-05-26 |
ChangeLog: fix typos |
9c3d8bb0f26762d6809501a38be773de685764f0
|
2012-05-26 |
* test/ruby/test_backtrace.rb (test_caller_lev): decreaze recursion size. |
ec187ff8473f3c2091253496595b515ea59d2ec0
|
2012-05-26 |
* vm.c (backtrace_*): change type of lev and n from size_t to int. Also set type of rb_backtrace_t#backtrace_size to int. A patch from nobu. * vm_eval.c: ditto. |
06653c193384cbb89086213135c98b2d1c1638cc
|
2012-05-27 |
* benchmark/driver.rb: fix to continue benchmarks when an error is occurred. |
7796c7d75188ba20aa7f8fb0222f0d26fae7a27d
|
2012-05-27 |
* benchmark/bm_vm1_lvar_init.rb: added. This benchmark measures a initialize time of non-used variable. * benchmark/bm_vm1_lvar_set.rb: added. This benchmark measures a local variables initialization time. * benchmark/bm_vm2_bigarray.rb: added. This benchmark mesures a big array literal creation time. * benchmark/bm_vm2_bighash.rb: This benchmark mesures a big hash literal creation time. * benchmark/bm*: change notation "i=0" to "i = 0". |
681d73a9232581df1d157cb3ae43a53be6c64e65
|
2012-06-02 |
* vm_backtrace.c: added. Separate backtrace related functions to this file. * vm.c, common.mk: ditto. |
b57c81ae3efd33599e993500816bce18e108a2d3
|
2012-06-02 |
* common.mk: fix to build vm_backtrace.c only itself (vm_backtrace.c is no longer included from vm.c). I hope this separation reduce compile time of vm.c. * internal.h: ditto. * vm.c, vm_core.h, vm_dump.c, vm_eval.c: ditto. * vm_eval.c: some functions (callee, etc) moved to vm_backtrace.c. |
f6f769d26d8ba3fa715cbb0e3717ff50207befaa
|
2012-06-02 |
* vm_backtrace.c: change names. (1) Class name: RubyVM::FrameInfo -> RubyVM::Backtrace::Location. (2) Method name: RubyVM::FrameInfo.caller -> Kernel.caller_locations. (3) Instance methods of RubyVM::FrameInfo (RubyVM::Backtrace::Location) (3-1) name -> label (3-2) basename -> base_label (basename is confusing with File.basename) (3-3) line_no -> lineno (We have already similar name File#lineno, commented by kou [ruby-dev:45686]). (3-4) filename -> path. (3-5) filepath -> absolute_path. (3-5) iseq -> removed (we will make other APIs to access iseq and other information of frame for debugging). * test/ruby/test_backtrace.rb: apply above changes. And apply comment from kou [ruby-dev:45686]. |
bac9f65f707e8ffcb79389e5b10b32addc94dc01
|
2012-06-04 |
* vm_core.h (rb_location_t): fix type and field name. (1) rename rb_location_t to rb_iseq_location_t. (2) rename field names of rb_iseq_location_t to adjust RubyVM::Backtrace::Location methods. (2-1) filename -> path (2-2) filepath -> absolute_path (2-3) basename -> base_label (2-4) name -> label (3) rename filed name rb_iseq_location_t#line_no to rb_iseq_location_t#first_lineno to clear purpose of this field. (4) The field names rb_binding_t#(filename|line_no) are also renamed to rb_binding_t#(path|first_lineno). * compile.c: apply above changes. * iseq.c: ditto. * proc.c: ditto. * vm*.c: ditto. |
2e7c7696334b1b69681cbc0315836fef8e06227d
|
2012-06-04 |
* test/ruby/test_backtrace.rb: fix test. Windows path includes `:' character. |
06513cc1cf5bbe1e23f871f920df7e2b7b793d9d
|
2012-06-04 |
* vm_insnhelper.h: remove magical code "lfp[0] & 0x02". Current VM doesn't use this bit. * vm_core.h (RUBY_VM_GET_BLOCK_PTR): added. * eval.c (rb_block_given_p): use RUBY_VM_GET_BLOCK_PTR(). * vm_eval.c (rb_f_block_given_p): ditto. |
d556a4759893243b2a0c0322d75d12ac43869ca0
|
2012-06-07 |
* .gdbinit: add function `trace_machine_instructions' to trace in native machine assemble. See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/MachineInstructionsTraceWithGDB for more details. |
574024147b3ff9fb0f157a1387dc62403faed29d
|
2012-06-10 |
* .gdbinit (SDR): add SDR function. It's only for VM debugging. |
0a71db8a7497df37b984ea97abfce6b6ffd82df3
|
2012-06-11 |
* vm_core.h: remove lfp (local frame pointer) and rename dfp (dynamic frame pointer) to ep (environment pointer). This change make VM `normal' (similar to other interpreters). Before this commit: Each frame has two env pointers lfp and dfp. lfp points local environment which is method/class/toplevel frame. lfp[0] is block pointer. dfp is block local frame. dfp[0] points previous (parent) environment pointer. lfp == dfp when frame is method/class/toplevel. You can get lfp from dfp by traversing previous environment pointers. After this commit: Each frame has only `ep' to point respective enviornoment. If there is parent environment, then ep[0] points parent envioenment (as dfp). If there are no more environment, then ep[0] points block pointer (as lfp). We call such ep as `LEP' (local EP). We add some macros to get LEP and to detect LEP or not. In short, we replace dfp and lfp with ep and LEP. rb_block_t and rb_binding_t member `lfp' and `dfp' are removed and member `ep' is added. rename rb_thread_t's member `local_lfp' and `local_svar' to `root_lep' and `root_svar'. (VM_EP_PREV_EP(ep)): get previous environment pointer. This macro assume that ep is not LEP. (VM_EP_BLOCK_PTR(ep)): get block pointer. This macro assume that ep is LEP. (VM_EP_LEP_P(ep)): detect ep is LEP or not. (VM_ENVVAL_BLOCK_PTR(ptr)): make block pointer. (VM_ENVVAL_BLOCK_PTR_P(v)): detect v is block pointer. (VM_ENVVAL_PREV_EP_PTR(ptr)): make prev environment pointer. (VM_ENVVAL_PREV_EP_PTR_P(v)): detect v is prev env pointer. * vm.c: apply above changes. (VM_EP_LEP(ep)): get LEP. (VM_CF_LEP(cfp)): get LEP of cfp->ep. (VM_CF_PREV_EP(cfp)): utility function VM_EP_PREV_EP(cfp->ep). (VM_CF_BLOCK_PTR(cfp)): utility function VM_EP_BLOCK_PTR(cfp->ep). * vm.c, vm_eval.c, vm_insnhelper.c, vm_insnhelper.h, insns.def: apply above changes. * cont.c: ditto. * eval.c, eval_intern.h: ditto. * proc.c: ditto. * thread.c: ditto. * vm_dump.c: ditto. * vm_exec.h: fix function name (on vm debug mode). |
745c23b2d981e23024f044e934967bc6dae66d80
|
2012-06-15 |
* vm_core.h: remove VM_FRAME_MAGIC_FINISH (finish frame type). Before this commit: `finish frame' was place holder which indicates that VM loop needs to return function. If a C method calls a Ruby methods (a method written by Ruby), then VM loop will be (re-)invoked. When the Ruby method returns, then also VM loop should be escaped. `finish frame' has only one instruction `finish', which returns VM loop function. VM loop function executes `finish' instruction, then VM loop function returns itself. With such mechanism, `leave' instruction (which returns one frame from current scope) doesn't need to check that this `leave' should also return from VM loop function. Strictly, one branch can be removed from `leave' instructon. Consideration: However, pushing the `finish frame' needs costs because it needs several memory accesses. The number of pushing `finish frame' is greater than I had assumed. Of course, pushing `finish frame' consumes additional control frame. Moreover, recent processors has good branch prediction, with which we can ignore such trivial checking. After this commit: Finally, I decide to remove `finish frame' and `finish' instruction. Some parts of VM depend on `finish frame', so the new frame flag VM_FRAME_FLAG_FINISH is introduced. If this frame should escape from VM function loop, then the result of VM_FRAME_TYPE_FINISH_P(cfp) is true. `leave' instruction checks this flag every time. I measured performance on it. However on my environments, it improves some benchmarks and slows some benchmarks down. Maybe it is because of C compiler optimization parameters. I'll re-visit here if this cause problems. * insns.def (leave, finish): remove finish instruction. * vm.c, vm_eval.c, vm_exec.c, vm_backtrace.c, vm_dump.c: apply above changes. |
0cfee328281d98790e527f562eb2c89df51f6452
|
2012-06-20 |
* error.c (err_append): rename err_append() to compile_err_append() and move definition body. err_append() is used only by compiling. |
a359da842078ebfa13a70fd03fb4887030198db5
|
2012-06-22 |
* test/ruby/test_backtrace.rb: decrease recursion depth to reduce consuming stack size. |
c4bc9b575898ba352d0fea8289ebcaf8921dacd1
|
2012-06-22 |
* iseq.c, vm_eval.c: set th->base_block properly. th->base_block is information for (a) parsing, (b) compiling and (c) setting up the frame to execute the program passed by `eval' method. For example, (1) parser need to know up-level variables to detect it is variable or method without paren. Befor (a), (b) and (c), VM set th->base_block by passed bindng (or previous frame information). After execute (a), (b) and (c), VM should clear th->base_block. However, if (a), (b) or (c) raises an exception, then th->base_block is not cleared. Problem is that the uncleared value th->balo_block is used for irrelevant iseq compilation. It causes SEGV or critical error. I tried to solve this problem: to clear them before exception, but finally I found out that it is difficult to do it (Ruby program can be run in many places). Because of this background, I set th->base_block before compiling iseq and restore it after compiling. Basically, th->base_block is dirty hack (similar to global variable) and this patch is also dirty. * bootstraptest/test_eval.rb: add a test for above. * internal.h: remove unused decl. * iseq.c (rb_iseq_compile_with_option): add base_block parameter. set th->base_block before compation and restore it after compilation. * ruby.c (require_libraries): pass 0 as base_block instead of setting th->base_block * tool/compile_prelude.rb (prelude_eval): apply above changes. * vm.c, vm_eval.c: ditto. * vm_core.h: add comments. |
91aba07aff667eb31cf18d9b8849a60fcdc6e18a
|
2012-06-26 |
* thread_pthread.c (register_cached_thread_and_wait): return immediately if malloc() failed. [ruby-core:43960] [ruby-trunk - Bug #6235] * thread_pthread.c (USE_THREAD_CACHE): check already defined or not. |
28144433b2f951279552b39bc358769a5267e26a
|
2012-07-18 |
* thread.c (rb_threadptr_async_errinfo_*): manage async errors queue. Async events such as an exception throwed by Thread#raise, Thread#kill and thread termination (after main thread termination) will be queued to th->async_errinfo_queue. - clear: clear the queue. - enque: enque err object into queue. - deque: deque err object from queue. - active_p: return 1 if the queue should be checked. rb_thread_t#thrown_errinfo was removed. * vm_core.h: add declarations of rb_threadptr_async_errinfo_*. remove rb_thread_t#thrown_errinfo field and add rb_thread_t#async_errinfo_queue (queue body: Array), rb_thread_t#async_errinfo_queue_checked (flag), rb_thread_t#async_errinfo_mask_stack(Array, not used yet). * vm.c (rb_thread_mark): fix a mark function. * cont.c (rb_fiber_start): enque an error. * process.c (after_fork): clear async errinfo queue. |
eff4b2b2e11ec9f4ce0448af0308e29796a112b7
|
2012-07-18 |
* thread.c: fix last commit miss. |
e9a91d2c95dfe22ad0487952f7a1053ef9a5fd16
|
2012-07-18 |
* thread.c (rb_thread_call_without_gvl2): added. it can skip last CHECK_INTS. See document for more details. Document about it was updated a bit. * include/ruby/thread.h (decl. of rb_thread_call_without_gvl2): added. * thread.c (rb_thread_call_with_gvl): remove "EXPERIMENTAL!" warning from a document. |
f4a8db647ae66621f5d37402f5a11a3d57c69bb0
|
2012-07-19 |
* thread.c (rb_thread_s_control_interrupt, rb_thread_s_check_interrupt): added for Thread.control_intgerrupt and Thread.check_interrupt. See details on rdoc. I'll make an ticket for this feature. * test/ruby/test_thread.rb: add a test for Thread.control_intgerrupt. * thread.c (rb_threadptr_raise): make a new exception object even if argc is 0. * thread.c (rb_thread_kill): kill thread immediately if target thread is current thread. * vm_core.h (RUBY_VM_CHECK_INTS_BLOCKING): added. CHECK_INTS while/after blocking operation. * vm_core.h (RUBY_VM_CHECK_INTS): require rb_thread_t ptr. * cont.c (fiber_switch): use replaced RUBY_VM_CHECK_INTS(). * eval.c (ruby_cleanup): ditto. * insns.def: ditto. * process.c (rb_waitpid): ditto. * vm_eval.c (vm_call0): ditto. * vm_insnhelper.c (vm_call_method): ditto. |
0d1a905edb43fe9260302b286d04cec66f7c4416
|
2012-08-07 |
* vm_exec.c, insns.def (leave): solve problems on 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. |
93b6f8d6195564d0884ee00f536a951f4c26288c
|
2012-08-08 |
* compile.c, insns.def (checkmatch): 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. |
e2f5d4f9c780cf1c1ecf57f8265ef916f973dc1e
|
2012-08-08 |
* bootstrap/test_exception.rb: fix a last committed test. |
dcfaf3e277fcadda493757e69b89e3260cd3636f
|
2012-08-08 |
* compile.c (ADD_INSNL): make ADD_INSNSL as alias of ADD_INSN1. |
8eb93103e4651aa9d6ed147208f6d90b211e9bfa
|
2012-08-15 |
* vm_trace.c: separate trace_func related functions from thread.c. * thread.c: ditto. * common.mk: add vm_trace.o. * inits.c: call Init_vm_trace(). |
4a4a702e61d1c5585d522f1185a82a5685c554f6
|
2012-08-16 |
* vm_trace.c, vm_core.h: simplify tracing mechanism. (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. |
dc78d90ad173936123d221aa7beba9acbb96e4c9
|
2012-08-21 |
* test_continuation.rb (tracing_with_thread_set_trace_func): fix to use Thread#set_trace_func(nil), not set_trace_func(nil). |
d28e07d57bc15a4baf08f8f4fb64d27cf927aac7
|
2012-08-22 |
* vm_trace.c: support TracePoint. [ruby-trunk - Feature #6895] * test/ruby/test_settracefunc.rb: add tests for above. * proc.c (rb_binding_new_with_cfp): add an internal function. * vm.c (rb_vm_control_frame_id_and_class): add an internal function. * vm_trace.c: add rb_add_event_hook2() and rb_thread_add_event_hook2(). Give us the good name for them! |
d5697825ef949712143325045b46fc8fe9aba507
|
2012-08-22 |
* vm_insnhelper.c (vm_setup_method): fix last commit. [ruby-dev:46065] [Bug #6901] |
0a58a564c97cf75dba893ac9c7f9483a7f696985
|
2012-08-22 |
update ChangeLog. |
051f12d368624fc7b9fc255efe8945e8f23ed25e
|
2012-08-22 |
fix typo of ChangeLog. |
3721fb0106707de5d0a58af6bd5784053f379ab2
|
2012-08-23 |
* ext/date/depend: add dependency to $(ruby_headers). |
b3b5e626ad69bf22be3228f847f94e1b68f40888
|
2012-08-23 |
* include/ruby/ruby.h: introduce flonum technique for 64bit CPU environment (sizeof(double) == sizeof(VALUE)). flonum technique enables to avoid double object creation if the double value d is in range about between 1.72723e-77 < |d| <= 1.15792e+77 or 0.0. flonum Float value is immediate and their lowest two bits are b10. If flonum is activated, then USE_FLONUM macro is 1. I'll write detailed in this technique on https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/Flonum_tech * benchmark/bmx_temp.rb: add an benchmark for simple Float calculation. * gc.c (id2ref, rb_obj_id): add flonum Float support. * include/ruby/intern.h: move decl of rb_float_new(double) to include/ruby/ruby.h. * insns.def, vm.c, vm_insnhelper.c: add flonum optimization and simplify source code. * vm_insnhelper.h (FLONUM_2_P): added. * marshal.c: support flonum output. * numeric.c (rb_float_new_in_heap): added. * parse.y: support flonum. * random.c: ditto. |
0b89d6d5f9f8c788f4391d8a0499f10aed624371
|
2012-08-27 |
* include/ruby/ruby.h (rb_float_value): optimize it. This technique was pointed by shinichiro.hamaji <http://shinh.skr.jp/m/?date=20120825#p02>. |
1bebb22ce16c6129a805adad83e0f1e29f3874a0
|
2012-09-26 |
* insns.def: add new instruction `opt_empty_p' for optimize `empty?' method. Apply a patch proposed at [ruby-dev:46120] [ruby-trunk - Feature #6972] by Glass_saga (Masaki Matsushita). * compile.c (iseq_specialized_instruction), vm.c, vm_insnhelper.h: ditto. * id.c, template/id.h.tmpl: ditto. * test/ruby/test_optimization.rb: test for this changes. |
d50483df23383caf098c23c25c133f4eefca5917
|
2012-09-28 |
* vm_core.h: remove rb_control_frame_t::bp (bp: base pointer). `bp' can be calculate by `sp' (stack pointer) of previous frame. Now, `bp_check' field is remained for debug. You can eliminate this field by setting VM_DEBUG_BP_CHECK as 0. * vm_insnhelper.c (vm_base_ptr): add `vm_base_ptr(cfp). This function calculates base pointer from cfp. * vm_insnhelper.c (vm_setup_method): push `recv' value on top of value stack (before method parameters). This change is for keeping consistency with normal method dispatch. * insns.def: fix to use vm_base_ptr(). * vm.c (vm_exec): ditto. * vm_dump.c: remove `bp' related dumps. * cont.c (fiber_init): fix to check VM_DEBUG_BP_CHECK. |
64f5b6aedc25dc8b6ef086f40d7f3c6cd401ee3e
|
2012-09-28 |
* vm_core.h: now VM_DEBUG_BP_CHECK should be 1. |
e3990633cb2e44f19588c16a436516a8ecae0459
|
2012-09-28 |
* insns.def (opt_checkenv): remove unused instruction `opt_checkenv'. * compile.c (iseq_compile_each): ditto. * node.h: remove unused node `NODE_OPTBLOCK'. * ext/objspace/objspace.c, gc.c (gc_mark_children): ditto. |
2adb9fd4a51b054543cc40555718bd09901a324f
|
2012-09-28 |
* vm_insnhelper.c (vm_setup_method): refactoring. Remove src_argc and use iseq->arg_size directly. |
b1ad79774de9789a2dd60c19c907356fa823ebd9
|
2012-10-04 |
* test/ruby/test_settracefunc.rb (test_tracepoint): remove unused test case. (this test case is redefined by newer tests) |
23dc0dbc4ad3354a9df899c0105c57bf42e2d243
|
2012-10-04 |
* vm.c (VM_COLLECT_USAGE_DETAILS): make new VM usage analysis hooks (old macro name is COLLECT_USAGE_ANALYSIS). This feature is only for VM developers. (I'm not sure I can use `VM developers' (the plural form) in this sentence). If VM_COLLECT_USAGE_DETAILS is not 0, VM enables the following usage collection features: (1) insntruction: collect intruction usages. (2) operand: collect operand usages. (3) register: collect register usages. The results are stored in RubyVM::USAGE_ANALYSIS_INSN for (1, 2), RubyVM::USAGE_ANALYSIS_INSN_BIGRAM for (1) and RubyVM::USAGE_ANALYSIS_REGS for (3). You can stop collecting usages with RubyVM::USAGE_ANALYSIS_INSN_STOP(), RubyVM::USAGE_ANALYSIS_OPERAND_STOP(), RubyVM::USAGE_ANALYSIS_REGISTER_STOP() for (1), (2), (3) respectively. You can also change the hook functions by setting C level global variables `ruby_vm_collect_usage_func_(insn|operand|register)' for (1), (2), (3) respectively. See codes for more details. * tool/instruction.rb: fix macro names. * iseq.c (insn_operand_intern): make it export (used in vm.c). fix to skip several processes if not needed (pointer is 0). * vm_dump.c: move codes for collection features to vm.c. * vm_exec.h: rename macro and function names. * vm_insnhelper.h: ditto. |
326e22e14a7625fd947f038f8c3f2235a059d522
|
2012-10-04 |
* vm.c (vm_analysis_insn|operand|register): use st_insert instead of using rb_hash_aset() because rb_hash_aset() check $SAFE. |
08c8605de91d2f04dcb53672a2eca6bd3f77bb18
|
2012-10-04 |
* insns.def (getlocal, setlocal): remove old getlocal/setlocal instructions and rename getdaynmic/setdynamic instructions to getlocal/setlocal. * compile.c: ditto. * iseq.c: remove TS_DINDEX. * vm_exec.h (dindex_t): remove type definition of `dindex_t'. * tool/instruction.rb: ditto. |
e03d6d9eb84764cb854dc500ce8c19d85db53656
|
2012-10-05 |
* ext/objspace/objspace.c: add ObjectSpace#reachable_objects_from. This method returns an array of objects referenced by given object. If given object is special objects such as true/false/nil/Fixnum etc then it returns nil. See rdoc for details. [ruby-core:39772] * test/objspace/test_objspace.rb: add a test for this method. * gc.c: add rb_objspace_reachable_objects_from(). To make this function, add several member `mark_func_data' to rb_objspace_t. If mark_func_data is not null, then gc_mark() calls mark_func_data::mark_func. * gc.h: export rb_objspace_reachable_objects_from(). |
7ea3edc409dc6d383df9bc10d0034a6ecddb84dc
|
2012-10-09 |
* vm_core.h (rb_call_info_t): add new type `rb_call_inf_t'. This data structure contains information including inline method cache. After that, `struct iseq_inline_cache_entry' does not need to contain inline cache for method invocation. Other information will be added to this data structure. * vm_core.h (rb_iseq_t): add `callinfo_entries' and `callinfo_size' members to `rb_iseq_t'. * insns.def, compile.c: Use CALL_INFO instead of IC. * tool/instruction.rb: support CALL_INFO as operand type. * vm_insnhelper.c, vm_insnhelper.h: ditto. |
62ad069c3a8fbd785e766274e02e348b1ec2fc6f
|
2012-10-09 |
* iseq.c (iseq_free): fix memory leak. rb_iseq_t::callinfo_entries should be freed. |
6990c7f9cd5108be6d9a490d68ff13ded582558e
|
2012-10-10 |
* iseq.c (insn_operand_intern): add support disasm TS_CALLINFO operands. |
a52af292712cd527b155962feebbc79abfeb957f
|
2012-10-10 |
* vm_dump.c: fix debug prints to catch up recent changes such as VM data structures. |
fb9034e757da5ecdb79bb552233696779b54b9b7
|
2012-10-10 |
* bootstraptest/test_block.rb: add tests for block with super. |
cbd597e9bc05eac7249e91dcdb4f1c1c75a53cf5
|
2012-10-14 |
* insns.def (send, invokesuper, invokeblock, opt_*), vm_core.h: use only a `ci' (rb_call_info_t) parameter instead of using parameters such as `op_id', 'op_argc', `blockiseq' and flag. These information are stored in rb_call_info_t at the compile time. This technique simplifies parameter passings at related function calls (~10% speedups for simple mehtod invocation at my machine). `rb_call_info_t' also has new function pointer variable `call'. This `call' variable enables to customize method (block) invocation process for each place. However, it always call `vm_call_general()' at this changes. `rb_call_info_t' also has temporary variables for method (block) invocation. * vm_core.h, compile.c, insns.def: introduce VM_CALL_ARGS_SKIP_SETUP VM_CALL macro. This flag indicates that this call can skip caller_setup (block arg and splat arg). * compile.c: catch up above changes. * iseq.c: catch up above changes (especially for TS_CALLINFO). * tool/instruction.rb: catch up above chagnes. * vm_insnhelper.c, vm_insnhelper.h: ditto. Macros and functions parameters are changed. * vm_eval.c (vm_call0): ditto (it will be rewriten soon). |
7f052a7213e21c800fa4bd80f61e7903804bcf4f
|
2012-10-14 |
* vm_eval.c (vm_call0_body): add new function. `vm_call0()' makes call_info struct and calls `vm_call0_body()' with this struct. In near future, `vm_call0()' will be removed because all of `vm_call0()' users setup call_info struct by itself. |
fd3b0dec4a4aa0e56bf56bb058688e0dea91c090
|
2012-10-14 |
* benchmark/bm_vm1_attr_ivar(_set).rb: added (for method dispatch speed). * benchmark/bm_vm1_float_simple.rb: added (for flonum/float). |
8f08e61bad1d745dc7a10ff216ad5ca2e92b3ded
|
2012-10-14 |
* vm_insnhelper.c: refactoring. - move all `call' related functions to the last of file. - make functions for respective method types in vm_call_method(). (all functions have same function parameters) * vm_core.h: add `opt_pc' filed in `rb_call_info_t' as temporal variable. * vm_eval.c (vm_call0_body): catch up above cahnges. |
c4457e03c665a48f1d953fbbe4499b65e7b1149b
|
2012-10-14 |
* vm_insnhelper.h CI_SET_FASTPATH: introduce new macro `CI_SET_FASTPATH(ci, func)'. This macro set `ci->call' as `func'. `func' (ci->call) is called at the last of `send' (and `invokesuper') instruction. `CI_SET_FASTPATH' does not set `ci->call' when the method (stored in `ci->me') is `protected'. * vm_insnhelper.c (vm_call_method): use `CI_SET_FASTPATH'. After several checking (visibility, argc checking), the result of checking can be reused until re-definition of this method with inline method cache. Note that this optimization is now experimental. If you find any problem about it, please tell us. |
f9e50b05b15dacd7cdee8fc380fecb93b6ecbd97
|
2012-10-15 |
* vm_insnhelper.c (VM_CALLEE_SETUP_ARG): skip CI_SET_FASTPATH() if it was called from vm_yield_setup_args(). |
a91e91c537bf77afc49c2aef4b65d91237cbd786
|
2012-10-15 |
* vm_core.h (VM_CALL_*): rename VM_CALL_*_BIT to VM_CALL_* (remove `_BIT' suffix). Add comments on each macros. Remove unused macro VM_CALL_TAILRECURSION_BIT. * compile.c, iseq.c, insns.def, vm_insnhelper.c: ditto. |
747487cda7b5a8c893ed8f6b0d7f7498aa434a02
|
2012-10-15 |
* vm_insnhelper.h (CI_SET_FASTPATH): add new parameter `enabled'. If `enable' is 0 then CI_SET_FASTPATH() doesn't work. And add new configuration option OPT_CALL_FASTPATH. If this macro was defined by 0, then CI_SET_FASTPATH() doesn't work any more. * vm_insnhelper.c (vm_call_method): Pass `0' for `enabled' parameter of CI_SET_FASTPATH if this method is protected. |
90a6dce0415f7dc5accc9929d497a8044d9e6067
|
2012-10-15 |
* method.h: introduce new method type VM_METHOD_TYPE_CFUNC_FAST. This method is similar to VM_METHOD_TYPE_CFUNC methods, but called cfunc without building new frame (does not push new control frame). If error is occured in cfunc, the backtrace only shows caller frame and upper. This kind of methods can be added by rb_define_method_fast(). This feature is similar to specialized instructions (opt_plus, etc), but more flexible (but a bit slower). * class.c (rb_define_method_fast): added. Maybe it will be renamed soon. * vm_insnhelper.c (vm_call_method): support method type VM_METHOD_TYPE_CFUNC_FAST. * proc.c (rb_method_entry_arity): catch up new method type. * vm_method.c (rb_add_method_cfunc_fast): added. |
3083ad7b83486e217ce7c112ed4610f3d4ba3702
|
2012-10-15 |
* vm_insnhelper.c (vm_call_method): disable CI_SET_FASTPATH() if this method call needs splat argument because cahced functions (vm_call_attrset, vm_call_ivar, vm_call_cfunc_fast_(unary|binary)) do not check an arity. * bootstraptest/test_method.rb: add a test to check an above issue. |
7c1778d6387c6bf695f87fc718d878eb228b628c
|
2012-10-15 |
* vm_insnhelper.c (VM_CALLEE_SETUP_ARG): fix wrong condition. |
64b1751194754a20173bbf48cff2035078bc225f
|
2012-10-16 |
* benchmark/driver.rb: some refactoring. (1) Remove `average differential'. In this benchmark driver, We should not care about `average'. We use fastest score because this score should not include any disturbances (affections of background process, etc). If you care about timing affect, I recommend `median' score with more than 5 examinations rather than simple `average' score (`average' score was affected by error scores). (2) Show log file name. (3) Change default directory from './' to driver's directory. |
f8c2a968dd3628dc0a5f3b671bd41a08104ce466
|
2012-10-16 |
* benchmark/driver.rb (show_results): Show speedup ratio with first executables score at last of results if two or more executrables are given. |
db1e99cdad846fd2bab426ae0cc39c7321fae427
|
2012-10-16 |
* vm_insnhelper.c (vm_getivar, vm_setivar): support index inline cache with rb_call_info_t to speedup `attr' getter and setter. Cached index is stored in rb_call_info_t::aux::index. `index' == 0 means not cached. `index' > 0 means cached and cached index is `index - 1'. * insns.def ((get|set)instancevariable): use new wrapper functions vm_(get|set)instancevariable() defined in vm_insnhelper.c. * vm_core.h (rb_call_info_t::aux): introduce new union data because opt_pc can share with index. |
9182dab459137533a4315bf13d3a921a24e5d76c
|
2012-10-16 |
* vm_insnhelper.c (vm_invoke_block): vm_caller_setup_args() can skip when splat flag is not set. |
db3898fe905cf19a65ba8edfe13774a3613943fc
|
2012-10-16 |
* benchmark/bm_vm1_yield.rb: add a benchmark to measure `yield' (invoke empty block) performance. * benchmark/bm_vm2_method_with_block.rb: add a benchmark to measure method invocation with empty block. |
ddb6408f6ef338310065a87cd32b9ed3afbe9c46
|
2012-10-16 |
* vm_insnhelper.c (vm_call_iseq_setup_2): separate tailcall and normal method frame setup functions. Add checking interrupts at the tailcall setup function. |
199fc6a54f8890c1935e797d5ef09a529bb5391b
|
2012-10-16 |
* vm_insnhelper.c (vm_call_method): fix to return value immediately. Remove CHECK_INTS() after that method dispatch. |
8addee964963725695f59184281810b7d6956713
|
2012-10-16 |
* thread.c (rb_threadptr_interrupt_mask): fix to check interrupt after interrupt_mask changed. |
49371b5420619c0729154939b13e02aceb471611
|
2012-10-16 |
* compile.c (compile_dstr_fragments): use `putobject' instead of `putstring' for all of strings used by NODE_DSTR because ruby users can not grab this string. For example, the string object of "baz" in "foo#{bar}baz" is located by `putobject' (users can not touch "baz" object directly). This change reduces GC pressure. This improvement is suggested by Aaron Patterson. |
5e2625eebd5ab1c1224ea35d70ad544e67a4ee41
|
2012-10-16 |
* benchmark/bm_vm2_dstr.rb: add a benchmark to measure performance of dynamic generated string ("foo#{bar}baz"). |
9a82db49eb5d464d6d0adc3c7c3ebf4574d5d025
|
2012-10-17 |
* vm_insnhelper.c (vm_call_method_missing): make a refactoring about method_missing process. Use `vm_call_method()' to invoke `method_missing' method instead of `rb_funcall2()'. In `vm_call_method()', set fastpath to `vm_call_method_missing()' if it can be cached. * vm_core.h (rb_call_info_t): add new field `rb_call_info_t::aux::missing_reasion' to pass the reason to `vm_call_method_missing()'. |
000ff5b3ce9ff045a30e146aede5917d6fa4f0ff
|
2012-10-17 |
* vm_insnhelper.c (vm_getivar): fix to use `aux.index' instead of `aux.opt_pc'. |
aef5f90281d470449fa785f8778b3223a02afd2e
|
2012-10-17 |
* benchmark/bm_vm2_method_missing.rb: add a benchmark to measure performance of invoking `method_missing'. |
588b73bca2f16f03710d531d64e3dc6a0050c2d7
|
2012-10-18 |
* class.c (rb_define_frameless_method): rename from rb_define_method_fast(). Defined method with this C API does not make a method frame. It is bit lightweight than ordinal C functions. Now only 0 or 1 argc are permitted. * method.h (VM_METHOD_TYPE_CFUNC_FRAMELESS): rename macro name from VM_METHOD_TYPE_CFUNC_FAST. * vm_insnhelper.c, vm_method.c: rename related functions. * proc.c (rb_method_entry_arity): catch up above changes. |
c992cec4a04839410caf2da53dac7662a67129bb
|
2012-10-18 |
* compile.c (new_callinfo): set a temporary index of callinfo (used in `iseq_set_sequence()') to rb_call_info_t::aux::index. rb_call_info_t::argc is initialiesed by same value of rb_call_info_t::orig_argc. |
cc012cfb193c858482adb195128a76893ac22903
|
2012-10-18 |
* include/ruby/ruby.h: add a decl. of `rb_define_frameless_method()'. |
fea629da834c4e33b2ad1b41a1412e8e7aebfc8b
|
2012-10-18 |
* vm_insnhelper.c: add `inline' keyword to several functions. Compilers (gcc) are conservative than I expected. |
1486b9cf0ac549edb7e7c3f886558d3e98100746
|
2012-10-18 |
* insns.def (opt_send_simple): introduce new instruction used when no need to care about block and splat. * compile.c: use the `opt_send_simple' instruction. |
d0ead20888daff68f58472ad7f5002d6b168e1d5
|
2012-10-18 |
* insns.def (send): remove unused condition. This condition will be true after r37258. * vm_insnhelper.c (vm_caller_setup_args): remove `UNLIKELY' on checking blockiseq (it seems `LIKELY'). |
7e8f558aea05d97f7879d6ead4488cc9807c5136
|
2012-10-18 |
* insns.def (opt_send_simple): move the location of `opt_send_simple' to the place near `send' definition. (to take care about icache locality). |
a31d53ecf58686718128021b4d3c4f0575e0ad28
|
2012-10-19 |
* benchmark/driver.rb: add new option `--ruby-arg [ARG]' which is passed as a launch parameter for each ruby's execution. ($ ruby [ARG] [File]) |
f2a9c42c7aa666b70286045570c42b7884257550
|
2012-10-19 |
* benchmark/bmx_temp.rb: removed. This file should not be in repository. |
3daa9b9f5aa705169f9d6fb672d7814749471493
|
2012-10-19 |
* vm_insnhelper.c (vm_search_method): remove needless local variable. |
e99989bf4fffa966b6333f43d47ce54e2384122c
|
2012-10-19 |
* benchmark/driver.rb: remove unexpected `output'. (commit miss) |
0fc7f4bb304ad07e8172f868d885112a1dcceb0f
|
2012-10-19 |
* eval.c, vm_eval.c: use TH_PUSH_TAG() instead of PUSH_TAG(). |
f4dbc7a3849988ebe75d3e1031aa50441347c497
|
2012-10-19 |
* method.h (rb_method_cfunc_t::invoker): add new field (func ptr) `invoker'. `invoker' function invoke cfunc body (rb_method_cfunc_t::func). `invoker' is set at method definition timing. With this change, the big `switch' (branch) in `call_cfunc()' is no longer needed. However, the performance benefit is only a bit. * vm_core.h (rb_call_info_t::aux::func): add a new field to store cfunc body function pointer. * vm_method.c (call_cfunc_invoker_func): add a new function which returns a suitable invoke function. * vm_method.c (setup_method_cfunc_struct): added. * vm_method.c (rb_add_method): fix to set `invoker'. * vm_eval.c (vm_call0_body): catch up above changes. * vm_insnhelper.c (call_cfunc): removed. * vm_insnhelper.c (vm_call_cfunc): fix to call cfunc body with `invoker' function. |
9eba45a72a63674e35d0e9dec6ddf73088ed39e8
|
2012-10-23 |
* vm_core.h, vm_insnhelper.c, vm_eval.c (OPT_CALL_CFUNC_WITHOUT_FRAME): add a new otpimization and its macro `OPT_CALL_CFUNC_WITHOUT_FRAME'. This optimization makes all cfunc method calls `frameless', which is fster than ordinal cfunc method call. If `frame' is needed (for example, it calls another method with `rb_funcall()'), then build a frame. In other words, this optimization delays frame building. However, to delay the frame building, we need additional overheads: (1) Store the last call information. (2) Check the delayed frame buidling before the frame is needed. (3) Overhead to build a delayed frame. rb_thread_t::passed_ci is storage of delayed cfunc call information. (1) is lightweight because it is only 1 assignment to `passed_ci'. To achieve (2), we modify GET_THREAD() to check `passed_ci' every time. It causes 10% overhead on my envrionment. This optimization only works for cfunc methods which do not need their `frame'. After evaluation on my environment, this optimization does not effective every time. Because of this evaluation results, this optimization is disabled at default. * vm_insnhelper.c, vm.c: add VM_PROFILE* macros to measure behaviour of VM internals. I will extend this feature. * vm_method.c, method.h: change parameters of the `invoker' function. Receive `func' pointer as the first parameter. |
d41ec2a79a53bc17dc9c7d574ae3824f5276745d
|
2012-10-23 |
* thread.c (rb_threadptr_raise): check interrupts after Thread#raise because the behavior of Thread.current.raise is expected to perform same as Kernel.raise (by rubyspec). |
a4f79a6ece4b02720507b0ff249c2964ee859479
|
2012-10-23 |
Revert the last commit because some tests (in btest) fail |
479d8ce5b5ba8ce22fdb6e92ed7e871f99d88735
|
2012-10-23 |
* thread.c (thread_raise_m): check interrupts after Thread#raise if a target thread is the current thread because the behavior of Thread.current.raise is expected to perform same as Kernel.raise (by rubyspec). |
a0873931cedcb7039b752d6e615e46e3d3d4b2a1
|
2012-10-23 |
* vm_eval.c (vm_call0_body): remove RUBY_VM_CHECK_INTS() after method invocation using rb_call0(). * vm_eval.c (vm_call0_body): remove default section on top of switch statement and add cases for `VM_METHOD_TYPE_CFUNC_FRAMELESS' and `VM_METHOD_TYPE_UNDEF'. * vm_eval.c (vm_call0_body): remove useless brackets. |
378041cfbf91809fe84fe70bbc90162f065a18a0
|
2012-10-23 |
* eval_error.c (error_print), vm_eval.c (eval_string_with_cref), vm_trace.c (rb_suppress_tracing): use TH_PUSH_TAG() instead of PUSH_TAG(). |
e1d772c801b95a5b0c8ed898b48d7205faceb83c
|
2012-10-23 |
* vm_insnhelper.c (vm_call_method): remove `default' and add a case for `VM_METHOD_TYPE_UNDEF'. |
6c6dece7f192664986c3973ed15c994cc6af1696
|
2012-10-24 |
* ext/objspace/objspace.c (ObjectSpace.reachable_objects_from): internal object support. If given object `obj' has references to internal objects (such as T_NODE objects), then this method returns instances of `ObjectSpace::InternalObjectWrapper' instead of that internal objects. This instance contains a refereance to an internal object and you can check the type of internal object using `ObjectSpace::InternalObjectWrapper#type' method. Rdoc of `InternalObjectWrapper' is not prepared yet. * gc.c (rb_objspace_reachable_objects_from), gc.h: change an interface of 'rb_objspace_reachable_objects_from()' * gc.c, gc.h: add two APIs - rb_objspace_markable_object_p(obj): check markable or not. - rb_objspace_internal_object_p(obj): check internal or not. |
6cbd18d7ef28ab2eebc07dfb1badc9c02fba8a15
|
2012-10-24 |
* ext/objspace/objspace.c (Init_objspace): add a new method `ObjectSpace::InternalObjectWrapper#internal_object_id' which returns an object id of a wrapped internal object. |
aab12ec054ed6af47bc67abd07076a64a10222b6
|
2012-10-24 |
* gc.c (garbage_collect, gc_marks): move the location of clear and restore rb_objspace_t::mark_func_data from garbage_collect() to gc_marks(). |
04c177e277cad6e3c785de00238ef48c3fbe027a
|
2012-10-24 |
* ext/objspace/objspace.c (reachable_object_from_i): change data structure of the result of reachable objects. Keys of table contains object_id of each reachable objects. Value of table is an object itself or an instance of InternalObjectWrapper. To avoid duplication, we use st_table and object_id keys. * ext/objspace/objspace.c (type2sym): bug fix. Should use `i' instead of `type'. |
9b68747be0f70908d0147b4d753e322bab5a8b5c
|
2012-10-24 |
* benchmark/driver.rb: add `-x' or `--exclude' option to specify exclude benchmark name pattern. You can specify "-x foo" if you want to exclude the benchmarks if the name of benchmark contains `foo'. |
9dc3a7d7a5aece71c2bad9d2ec185f2ef87245b6
|
2012-10-25 |
* include/ruby/ruby.h, class.c: remove (revert) `rb_add_method_cfunc_frameless()' API. This API is not mature to become an offical API. For example, we can not use this API with `rb_define_private_method()'. * method.h, vm_method.c (rb_add_method_cfunc_frameless): removed. |
180c744b3b4043b2491031a4af9c8cbe4c0ae2ab
|
2012-10-27 |
* numeric.c (rb_float_new_in_heap), include/ruby/ruby.h: make all Float objects frozen. [ruby-dev:46081] [ruby-trunk - Feature #6936] Most part of patch by NARUSE, Yui <naruse@ruby-lang.org>. * class.c (singleton_class_of): raise TypeError when trying to define a singleton method on Float objects. * vm.c (vm_define_method): ditto. * test/ruby/marshaltestlib.rb: catch up above changes. * test/ruby/test_class.rb: ditto. * test/test_pp.rb: ditto. |
2731767b5dfefacf139ba4eedb25a9b550ad5454
|
2012-10-27 |
* vm.c (vm_define_method): remove type and frozen checking. Checking is done in `rb_singleton_class()'. |
5dc9855a4f6a223b903fb6629aace9a5a49b064b
|
2012-10-27 |
vm_insnhelper.c: fix indentation |
f3e5f2cd758f5013685d997ffd9efdcceccd449f
|
2012-10-28 |
* bignum.c (bignew_1): Bignum instances are frozen. Feature #3222 * include/ruby/ruby.h: Fixnum instances are also frozen. * class.c (singleton_class_of): check Bignum before singleton cheking. * test/ruby/test_bignum.rb: add a test. * test/ruby/test_fixnum.rb: ditto. * test/ruby/marshaltestlib.rb, test/ruby/test_eval.rb, test/ruby/test_object.rb: catch up above changes. |
98c96a69c379ab377217469f2b8115ba83447a86
|
2012-11-01 |
* NEWS: add a news about objspace, ObjectSpace.reachable_objects_from. |
ffd3cbdc759841c984ec35bfecfb9f7ed28d4faa
|
2012-11-13 |
* vm_insnhelper.c (vm_caller_setup_args): save and restore ci->argc and ci->blockptr before and after method invocations because these method dispatches override call_info. * bootstraptest/test_method.rb: add tests for this fix. |
0d6c9accd7f64c19ff9162e42890aba87b4f9d4e
|
2012-11-13 |
fix ChangeLog |
1619c02dd34dcc811b7d18437e8fc3f019906d1c
|
2012-11-13 |
* compile.c (insn_data_to_s_detail): remove debug lines. |
0c1682b3045a04f753f81d0a5d18c303dd9496ba
|
2012-11-13 |
* vm_insnhelper.c (vm_call_cfunc_with_frame): don't use ci after EXEC_EVENT_HOOK because ci can be overridden. * vm_eval.c: ditto. * method.h: change invoker's parameters types. * vm_method.c (call_cfunc_invoker_func): ditto. |
768801b020d2ec28af2bb719cadf5bc3c126c3d6
|
2012-11-15 |
* vm_exec.h (GENTRY): GENTRY should be pointer size. A patch by yoshidam (Yoshida Masato) [Bug #7332]. |
9ee34b15e415446093039f620a5986dd3426f552
|
2012-11-16 |
* thread.c (rb_thread_call_without_gvl2): change the parameter of `func' from `int *skip_interrupt' to `VALUE *flags'. If (flags & RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS) is not zero, then skip checking interrupt. [ruby-core:46547] * include/ruby/thread.h: ditto. |
15d940b8b0361925e15f412913f346fca4bf3400
|
2012-11-19 |
* thread.c: add `Thread#backtrace_locations' method. This method is similart to `caller_locations' method for specific method. And fix to accept `level' and `n' parameters for `Thread#backtrace' and `Thread#backtrace_locations'. `caller' (and `caller_locations') do not return `caller' method frame. However, `Thread#backtrace' (and `Thread#backtrace_locations') return `Thread#backtrace' method frame itself if `Thread.current.backtrace' was called. * vm_backtrace.c: ditto. * internal.h: ditto. * test/ruby/test_backtrace.rb: add tests. |
553931962a8a6c73ecef770831165070479c8763
|
2012-11-20 |
* vm_trace.c: add two methods: (1) TracePoint#return_value which returns return value on the :return and :c_return event. (2) TracePoint#raised_exception which returns raised exception value on the :raise event. Eeach methods raise RuntimeError if it is called at unsupported event. Please review and give us feedback until next preview release (Dec/2012) of Ruby 2.0.0. * insns.def, vm.c, vm_eval.c, vm_insnhelper.c, eval.c, thread.c: ditto. * vm_trace.c, vm_core.h: move definition of rb_trace_arg_t from vm_trace.c to vm_core.h. Caller fills rb_trace_arg_t and pass the pointer of this variable. * test/ruby/test_settracefunc.rb: fix tests to test this change. |
1da641a16b6fdccad639ac46cec658436029af16
|
2012-11-20 |
* vm_trace.c: rename and add TracePoint APIs. (1) TracePoint.new(...){...} creates a new trace point but does not make it enable. (2) TracePoint.trace(...){...} creats a new trace point and enable it (same as old behavior). (3) TracePoint#enable make it enable (renamed from TracePoint#retrace). If block given, when enable only in block. (4) TracePoint#disable make it disable (renamed from TracePoint#untrace). If block given, when disable only in block. (5) TracePoint#enabled? returns this trace is enable or not. * test/ruby/test_settracefunc.rb: addd tests. |
f1aee6327a8afa5ed048b270772ae0bf054a4d87
|
2012-11-20 |
add a ticket number |
cea7600b524cfc5023a15436f1263a5c872f99d9
|
2012-11-20 |
* include/ruby/debug.h: introdudced. Debugging/profiling features will be located. * vm_trace.c: expose C-level TracePoint APIs. Note that they are experimental. * vm_trace.c, include/ruby/debug.h: rename `rb_hook_flag_t' to `rb_event_hook_flag_t'. Macro names `RUBY_HOOK_FLAG_*' are also renamed to `RUBY_EVENT_HOOK_FLAG_*'. * debug.h, vm_debug.h: rename debug.h to vm_debug.h. * common.mk: ditto. * debug.c, main.c, vm_core.h: ditto. |
c13f83471ae115bea4f52c2860a5b5f63e17571d
|
2012-11-21 |
* benchmark/bm_so_nsieve_bits.rb: add an encoding pragma. |
9d8c6adce1b4dc3c9adf37e0d3dbc1b6ed964c1f
|
2012-11-21 |
add a description on ChangeLog |
15648bfda8c7ee29006dc8871985ce6e3d042237
|
2012-11-21 |
add a ML number |
9d803dfd5f1a57a6d07c27b0d95917165ba259dc
|
2012-11-24 |
* vm_trace.c (rb_tracepoint_attr_raised_exception): should not check value before event checking. * vm_trace.c (rb_tracepoint_attr_return_value): ditto. * test/ruby/test_settracefunc.rb: add tests for TracePoint#return_value and TracePoint#raised_exception. |
2e87867a8f07e93141156933e8d648c57c0b57d4
|
2012-11-26 |
* benchmark/driver.rb: accept multiple `-e'. You don't need to use `;' separation character. [ruby-core:50139] [ruby-trunk - Bug #7380] |
7b918be3d43a043abfa47772da90e856cdd7a355
|
2012-11-26 |
* common.mk: specify label `built-ruby'. * benchmark/driver.rb: quote path. |
42e9fc4110dc6607332fe05c2e2f4e565fd1b5fd
|
2012-11-26 |
* bootstraptest/test_thread.rb: try to `join' each 100 threads. This benchmark seems consuming long time on travis-ci several times (and make `failure'). |
8c6ad2b0ae9a0d5c2205f4648e5fa0c86fa6077f
|
2012-11-26 |
* iseq.c (make_compile_option_value): add trace_instruction option. a patch by davidbalbert (David Albert). [Bug #6786] |
8c138db3d28828365f86f276ec753a248d2e0a19
|
2012-11-26 |
* vm_core.h: add members to rb_trace_arg_t: * `klass_solved' represents klass and id is checked. * `line' represents line calculated from cfp. * `file' represents line calculated from cfp. * vm_trace.c: fix to use above data stractures. No need to calculate klass and id, line and file pairs for each trace points. |
d187f4bc215119469c3da6828ef78f216dfe20f2
|
2012-11-26 |
* vm_trace.c: rename TracePoint#file and TracePoint#line to TracePoint#path and TracePoint#lineno respectively. They are consistent to RubyVM::Backtrace::Location. * include/ruby/debug.h: ditto. * vm_core.h: ditto. * test/ruby/test_settracefunc.rb: ditto. |
4df479f50b66ebbde130668a39714e9b6f8b0aaa
|
2012-11-27 |
* NEWS: add TracePont. |
2f9ee7af47124113bc0aa0966816720c907a9c91
|
2012-11-27 |
* thread.c (rb_thread_terminate_all): broadcast terminate event not only an interrupt exception but any exceptions. |
c72f0daa877808e4fa5018b3191ca09d4b97c03d
|
2012-11-27 |
* thread.c (rb_thread_terminate_all): retry broadcast only when an exception is raised. |
956cc2934d9848fa4c5cc7bcf79edd76f1171053
|
2012-11-27 |
* vm.c (rb_vm_make_env_object): make Proc object if Env is possible to point block. [ruby-core:41038] [ruby-trunk - Bug #5634] * vm.c (rb_vm_make_proc): No need to make Proc object here. * bootstraptest/test_proc.rb: add tests. |
1ff0a3d0c66e89f4c920e67813d604a6bb933fac
|
2012-11-28 |
* ext/psych/extconf.rb: copy sources into build directory, not into srcdir. |
49ed2a756bb41e4e3d3b520d0f84a60851504fe2
|
2012-11-28 |
* proc.c: remove Proc#== and Proc#eql?. Proc objects compared with thier object ids. * test/ruby/test_proc.rb: remove related test. |
fc57f2bfdbc6c34289bd3143a7cd5e948ddded9b
|
2012-11-28 |
add ticket number [Bug #4559] |
9d0de48e662046d870e38a21771cbe939031051a
|
2012-11-28 |
* include/ruby/thread.h (rb_thread_call_without_gvl2): change meaning of function. This function is called with same parameters of `rb_thread_call_without_gvl()'. However, if interrupts are detected, when return immediately. * thread.c: implement `rb_thread_call_without_gvl2()'. |
ff2ca81bb387ceae24d70a139ec48f227a83be39
|
2012-11-28 |
* vm_insnhelper.c (vm_call_method): fix undefined behavior. Should not access scope local variable from outer scope. |
bf442ed2b3385016b81472da981aaff51ad89ab7
|
2012-11-28 |
* thread_win32.c: catch up latest change of BLOCKING_REGION. |
09f9aa43858de25a16db90fb55dc28a9d7be0e32
|
2012-11-28 |
* thread.c (rb_mutex_sleep): fix to allow spurious wakeup. * NEWS: write about spurious wakeup. |
36b21ada61220c0675fa3c00aa091538a2063739
|
2012-11-28 |
add ticket ref: [ruby-dev:46654] [ruby-trunk - Bug #7455] |
0fe2051c93197d7617ccc4f07a2dfc697cde9df7
|
2012-11-28 |
* vm_backtrace.c: rename Class name from ::RubyVM::Backtrace and ::RubyVM::Backtrace::Location to ::Thread::Backtrace and ::Thread::Backtrace::Location. |
2fa079b62ac3611ee7c52c605bd2da8209129895
|
2012-11-28 |
* vm_backtrace.c (backtrace_to_str_ary2): rename to backtrace_to_str_ary. * vm_backtrace.c (rb_backtrace_to_str_ary): use `backtrace_to_str_ary()'. * vm_backtrace.c (backtrace_to_frame_ary): rename to backtrace_to_location_ary. |
3d47e7b2854a47878fd6346586d12cb6c312df82
|
2012-11-29 |
* vm_backtrace.c (vm_backtrace_to_ary): support range argument like Array#[]. [ruby-core:50092] [ruby-trunk - Feature #7434] Test and document is not available. Please help us. |
98ed344ae9c97d2b273c57f35c6bde9761b1906a
|
2012-11-29 |
* eval.c (ruby_cleanup): delay THREAD_KILLED timing. It should be located just before rb_thread_terminate_all(). |
d7ab6820b589571f9a82246f6f4c96688d9fd824
|
2012-11-29 |
* vm_backtrace.c: use `long' for return values of `NUM2LONG()'. |
f22f1fbb54f7a2d3088205bf951d255f41f8f034
|
2012-11-29 |
* vm_backtrace.c: same as a last patch. |
c512d6acf98a6d550d1dd03c7642fee82dc46cea
|
2012-11-29 |
* gc.c (gc_stat): GC.stat supports new information * total_allocated_object: total allocated object number. * total_freed_object: total freed object number. Above two numbers are only accumulated and they will overflow (return to 0). Please use them as a hint. |
502ab126ac8d4b87edebb786e69042f13463e525
|
2012-11-29 |
* gc.c (gc_stat): prepre Symbol objects at first time to make it fast. |
89c889d4e72eb39bb70734d2360b9607c1099bdb
|
2012-11-29 |
* vm_trace.c (rb_tracepoint_attr_defined_class): rename TracePoint#klass to TracePoint#defined_class. [ruby-core:50187] Re: [ruby-trunk - Feature #6895] * include/ruby/debug.h: ditto. * test/ruby/test_settracefunc.rb: ditto. |
479e39619240d7723f0573add301d71125df6933
|
2012-11-29 |
* vm_trace.c (rb_tracepoint_attr_method_id): rename TracePoint#id to TracePoint#method_id. * include/ruby/debug.h: ditto. * test/ruby/test_settracefunc.rb: ditto, |
3f606b7063fc7a8b191556365ad343a314719a8d
|
2012-11-29 |
* include/ruby/debug.h: provide rb_tracearg_*() APIs, instead of rb_tracepoint_attr_*(). These APIs are for debuggers/profilers. They will be explained in another docs somtime. * vm_trace.c: ditto. |
585ac7f1a2a1e96460cc78e050d2700d2e2680e5
|
2012-11-29 |
* include/ruby/debug.h: add rb_debug_inspector_* APIs. * vm_backtrace.c: ditto. * common.mk: add dpendency from vm_backtrace.o to include/ruby/debug.h. * proc.c (rb_binding_new_with_cfp): constify. * vm.c (rb_vm_get_ruby_level_next_cfp): consitify. * vm_core.h, vm_trace.c: move decls. |
e8af0046b72bb5a1da549a90888b445525d6cfff
|
2012-11-29 |
* vm_backtrace.c (rb_debug_inspector_open): use RARRAY_LENINT() for int variable. |
4db83403982100df21c3c6c18b1cef29dd379e6a
|
2012-11-29 |
[EXPERIMENTAL: NEED DISCUSS] * vm_trace.c: add events * :thread_begin - hook at thread beggining. * :thead_end - hook at thread ending. * :b_call - hook at block enter. * :b_return - hook at block leave. This change slow down block invocation. Please try and give us feedback until 2.0 code freeze. * include/ruby/ruby.h: ditto. * compile.c (rb_iseq_compile_node): ditto. * insns.def: ditto. * thread.c: ditto. * vm.c: ditto. * include/ruby/debug.h: add a comment. * test/ruby/test_settracefunc.rb: add a tests. |
0c3f23ae7c60798e1c40421eb2924bcd1e063f25
|
2012-11-29 |
* vm_backtrace.c: add GC guards. |
c86379402c8dfeab9504c39c2de435601d408e57
|
2012-11-29 |
* thread.c (rb_thread_interrupted): avoid warning of implicit conversion. * thread.c (rb_threadptr_execute_interrupts): ditto. |
719e0cd530dd7187c716c103876fb3a112cbd30c
|
2012-11-30 |
* thread.c: rename Thread.control_interrupt to Thread.async_interrupt_timing. The option name `:never' is also changed to `:defer'. [ruby-core:50375] [ruby-trunk - Feature #6762] * thread.c: remove Thread.check_interrupt. This method is difficult to understand by name. * thraed.c: add Thread.async_interrupted?. This method check any defered async interrupts. * test/ruby/test_thread.rb: change tests for above. |
6df1b3a9de0076e1f51a58ffc23b1d42cf2e8366
|
2012-11-30 |
* vm_trace.c (tracepoint_disable_m, tracepoint_enable_m): fix block parameter. No arugment should be given to a block which is passed to TracePoint#enable (and disable). |
bb4410a2890fab69271145a09f895c91a8ee8863
|
2012-11-30 |
* thread.c: TracePoint#self returns invoking/exitting thread object at thread_begin/end event. * test/ruby/test_settracefunc.rb: fix test. |
12f2f7371f2dcf9c8da2a96fa251d1af2a7e977e
|
2012-11-30 |
[EXPERIMENTAL] * iseq.c: add following two methods. * ISeq#line_trace_all returns all line traces (line numbers) * ISeq#line_trace_specify(pos, set) set `pos'th line event to specified_line event (if set is true). These features are introduced for debuggers (mainly to make breakpoint). * iseq.h: add decl. of C APIs. * test/ruby/test_iseq.rb: add tests. * vm_trace.c: add `specified_line' event. * include/ruby/ruby.h: ditto. |
5697f69baa942ae117c66322bca0088cbb38557f
|
2012-11-30 |
* iseq.c: add RubyVM::InstructionSequence (ISeq) inspection methods. * ISeq#path returns path of this ISeq written. * ISeq#absolute_path returns absolute path. * ISeq#label returns label (method name and so on). * ISeq#base_label returns base label (see Thread::Backtrace::Location). * ISeq#first_lineno returns first line number of this ISeq. * ISeq.of(obj) returns ISeq object which obj (Proc or Method) is contains. * test/ruby/test_iseq.rb: add tests. |
e742a446c8864e3988537d06022312c708f9e176
|
2012-11-30 |
* thread.c (Thread.async_interrupt_timing): fix RDoc. :never is not used any more. |
c906e879d8e83263752a25faf34cc102a7b2e60e
|
2012-12-01 |
* vm_backtrace.c (location_inspect_m): add Thread::Backtrace::Location#inspect. It same as loc_obj.to_s.inspect. |
095022cbe91ff03af27c19bbe47a819e1323f004
|
2012-12-01 |
* test/ruby/test_backtrace.rb: add a test for Thread::Backtrace::Location#inspect. BTW, tests for `caller_locations' are not enough. Any volunteers are welcome. |
921385a6443338d6150e71acf0806108294c1c9a
|
2012-12-01 |
* vm_trace.c: add TracePoint#inspect. * test/ruby/test_settracefunc.rb: add a test for this change. |
5bdd03936c2a7fb5c835587535466ec76bf0ca9e
|
2012-12-01 |
* iseq.c (rb_iseq_line_trace_each): iterate `line' event only. * test/ruby/test_iseq.rb: add a test for this change. |
f6f388a5bdbd3d3a68bf18f3352ba2be12688639
|
2012-12-02 |
* array.c, enum.c, insns.def, io.c, numeric.c, parse.y, process.c, range.c: use prepared IDs. A patch from charliesome (Charlie Somerville). [Bug #7495] * common.mk: add dependency to id.h. * common.mk: replace ID_H_INCLUDES with id.h. |
38766319e181e6cdbd3f7bb14f8cc9736f4d6c9e
|
2012-12-03 |
* compile.c (iseq_compile_each): joke shouldn't use id.h defined ids. * id.c (Init_id): ditto. * common.mk: fix dpendency. |
1d193d9251fb5cc58f1b4ac3346ac63529d63097
|
2012-12-03 |
* vm_backtrace.c (vm_backtrace_to_ary): check negative size (2nd arg). |
c4f9dd26263da640a2c9a02c478df245685e2b69
|
2012-12-03 |
* iseq.h: iseq_catch_table_entry::catch_type should be Fixnum because they are pushed into Array in a compiler. [Bug #7502] * test/ruby/test_objectspace.rb: add a test of this issue. |
fcc557a8f48de33fb686025624aad0cedc0c7183
|
2012-12-03 |
* vm_exec.c: vm_analysis_insn should be statkc. |
010b6e6a38540f5e2e98c9f6053ae0f550d09af6
|
2012-12-03 |
fix typo |
41d77571ff4cb3e6ccf238cf63bfdc3c50fc1564
|
2012-12-03 |
* test/ruby/test_objectspace.rb: skip RuntimeError which says a message "can't modify frozen File". Is that correct behavior? |
5c582807731b675012647e0f7d9ad8bae937053b
|
2012-12-03 |
* compile.c (iseq_specialized_instruction): change condition of using `opt_send_simple'. More method invocations can be simple. |
9975712793a8289e229d7f9fe23c8df77e1005ae
|
2012-12-03 |
* vm_exec.c: check VM_COLLECT_USAGE_DETAILS. |
d3842de5c9baa2962e01d02b2499eac49d9065a6
|
2012-12-04 |
* vm_opts.h: enable optimization - operand unifications. Operand unification technique enable to combine an instruction and specific operands and make new instruction. * defs/opt_operand.def: add several configuration of operand unifications. * insns.def: use `int' instead to suppress warning. |
895bb667b294ab2b762c83373c320a5bbf94dd3f
|
2012-12-05 |
* test/ruby/test_settracefunc.rb: disable trace. |
592e87e1f8cbe257f8f11d703c1315b033537b6c
|
2012-12-05 |
* test/ruby/memory_status.rb: suppress warning. A patch from NAKAMURA Usaku. |
c2f5a574034cacd938d5af888646585c850f2747
|
2012-12-06 |
* vm_trace.c: TracePoint#enable should not cause an error when it is already enabled. TracePoint#disable is too. [ruby-core:50561] [ruby-trunk - Bug #7513] * test/ruby/test_settracefunc.rb: add tests. |
1c5b309211c8d41b2624766fdeb60cc5fa3faf94
|
2012-12-08 |
* ext/objspace/objspace.c (iow_size): return size of internal object for ObjectSpace.memsize_of(). * test/objspace/test_objspace.rb: add a test. |
33fedef5a5e3b846c06cccefd9fef23485c7f8ba
|
2012-12-13 |
* method.h: remove "VM_METHOD_TYPE__MAX" from rb_method_type_t. rb_method_type_t is not a number and "_MAX" causes misunderstanding. * proc.c (rb_method_entry_arity): ditto. * vm_eval.c (vm_call0_body): ditto. * vm_insnhelper.c (vm_call_method): ditto. |
6247099f4c85a43c0405d1f4536cea99b37a652a
|
2012-12-17 |
* vm_trace.c (fill_id_and_klass): TracePoint#defined_class returns singleton class. `set_trace_func' passed attached class (which is attached/modified by singleton class) by 6th block parameter if it is singleton class. Previous behavior follows this spec. However, this method named `defined_class' should return singleton class directly because singleton methods are defined in singleton class. There are no compatible issue because TracePoint is introduced after 2.0. But compatiblity with `set_trace_func' is brokne. This means that you can not replace all `set_trace_func' code with TracePoint without consideration of this behavior. [Bug #7554] * test/ruby/test_settracefunc.rb: change a test to catch up an above chagne. |
256c5f257743401d4ee7e2ba756ef2ffd22e4d7a
|
2012-12-17 |
* method.h: remove `VM_METHOD_TYPE_CFUNC_FRAMELESS' method type. This method type is for optimized CFUNC such as Fixnum#+ and so on. This feature is half-baked and no way to use them. [Background] Now, VM has opt_plus instructions to optimize `+' methods for some Classes (such as Fixnum, Float (flonum)). We call this type of instructions as `specialized instructions'. This simple technique improve simple program dramatically. However, we can make specialized instructions for only several types (classes) and selectors (method names) because a large instruction will be slow. In other words, this technique has no extensibility. To overcome this problem, VM_METHOD_TYPE_CFUNC_FRAMELESS was introduced (r37198). This type is a variant of CFUNC, but called their functiions directly without building a method frame. Any CFUNC method can be defined as frameless methods if a method is not needed to make method frame. Frameless methods are faster as specialized instructions (a bit slower, but no need to care). No problem described at http://charlie.bz/blog/why-do-singleton-methods-make-ruby-slow because this technique doesn't see class, but see method body itself. Alias is also no problem. [Problem] However, we can't set frameless method type for polymorphic methods such as Array#[]. Necessity for method frame depends on which parameter type. For example, Fixnum#+ needs method frame if coerce is needed. Current VM_METHOD_TYPE_CFUNC_FRAMELESS is not flexible and need more tuning to introduce it. Expected behavior of frameless method type may be: result = optimized_cfunc(params); /* call optimized cfunc */ if (result == Qundef) { result = normal_cfunc(); } This is why I say this feature is half-baked. We need to learn primitive method in Smalltalk more. (I heard this name at RubyConf Taiwan this month. Thanks!) [Conclusion] Nobody may use this feature and there is no compatibility issue. This feature goes to next minor (2.1?). * proc.c (rb_method_entry_arity): ditto. * vm_eval.c, vm_insnhelper.c, vm_method.c: ditto. |
f5a32acb97dec5c798001f2eb6d31bb78fda0113
|
2012-12-17 |
fix ChangeLog comment |
5d92f6ec05be5df5f89f81fb926ad08faf22ee03
|
2012-12-19 |
* test/ruby/test_fiber.rb: remove a strange single quote character. With this character, this script exits by SyntaxError. |
87e1616048edca270c86ab7e5d8b8599e1df79de
|
2012-12-19 |
* vm.c: support variable VM/Machine stack sizes. Specified by the following environment variaables: - RUBY_THREAD_VM_STACK_SIZE: vm stack size used at thread creation. default: 128KB (32bit CPU) or 256KB (64bit CPU). - RUBY_THREAD_MACHINE_STACK_SIZE: machine stack size used at thread creation. default: 512KB or 1024KB. - RUBY_FIBER_VM_STACK_SIZE: vm stack size used at fiber creation. default: 64KB or 128KB. - RUBY_FIBER_MACHINE_STACK_SIZE: machine stack size used at fiber creation. default: 256KB or 256KB. This values are specified at launched timing. You can not change these values at running time. Environ variables are only *hints* because: - They are aligned to 4KB. - They have minimum values (depend on OSs). - Machine stack settings are ignored by some OSs. Default values especially fiber stack sizes are increased. This change affect Fiber's behavior: (1) You can run more complex program on a Fiber. (2) You can not make many (thousands) Fibers because of lack of address space (on 32bit CPU). If (2) bothers you, (a) Use 64bit CPU with big memory, or (b) Specify RUBY_FIBER_(VM|MACHINE)_STACK_SIZE correctly. You need to choose correct stack size carefully. These values are completely rely on systems (OS/compiler and so on). * vm_core.h (rb_vm_t::default_params): add to record above settings. * vm.c (RubyVM::DEFAULT_PARAMS): add new constant to see above setting. * thread_pthread.c: support RUBY_THREAD_MACHINE_STACK_SIZE. * cont.c: support RUBY_FIBER_(VM|MACHINE)_STACK_SIZE. * test/ruby/test_fiber.rb: add tests for above. * test/ruby/test_thread.rb: ditto. |
e3e4e9dfe77c103ac8a46e5ad15ef6b36e6f0653
|
2012-12-19 |
add ticket number |
87d48d14a0839316f051bddd4d794bdd64e49181
|
2012-12-21 |
* vm_core.h, vm_trace.c: fix multi-threading bug for tracing. Move `trace_arg' from rb_tp_t::trace_arg to rb_thread_t::trace_arg. `trace_arg' may changed by multiple threads. rb_thread_t::trace_arg can represent rb_thread_t::trace_running (null or non-null) and rb_thread_t::trace_running is removed. After that, `rb_tp_t' is not needed to check tracing or not (A running thread knows tracing or not). This is why I remove tp_attr_check_active() and make new function get_trace_arg(). And this modification disable to work the following code: TracePoint.trace{|tp| Thread.new{p tp.event} # access `tp' from other threads. } I believe nobody mix threads at trace procedure. This is current limitation. * cont.c (fiber_switch, rb_cont_call): use rb_thread_t::trace_arg instead of rb_thread_t::trace_running. * test/ruby/test_settracefunc.rb: add a multi-threading test. |
979479270ca802c0d10dc1bd60c7ff445886eb51
|
2012-12-21 |
add a ticket number |
8578cc337bf270545217db6827c6c5ccbc0ef64b
|
2012-12-21 |
* include/ruby/debug.h: define rb_trace_arg_t. * vm_core.h: catch up above changes. |
a598fcc8c1412f82453f709433275f52d29f0501
|
2012-12-21 |
fix ChangeLog |
f4ef96e6a292b70947adbeca4e12fb7943718e8e
|
2012-12-21 |
* ruby.c (process_options): need to acquire env from TOPLEVEL_BINDING each time. `bind->env' may update after `eval()'. [Bug #7536] |
a6c5431156d3fde6364724e7bd061b1ae79334db
|
2012-12-21 |
* vm_trace.c (tracepoint_new): add code to support specified thread. But not tested and this feature is not supported officially. |
17ac7835415cab22649422704a17c7b7f1c43419
|
2012-12-21 |
* iseq.c (Init_ISeq): remove definition of the following methods: ISeq#line_trace_all and ISeq#line_trace_specify because they are half baked. C APIs are remained as experimental. These functions will be renamed, removed their parameters may be changed. You can use these methods by C exts. Please give us your comments. |
914611adbcaec6a2711d30fcc1ff136e02efecf8
|
2012-12-21 |
* test/ruby/test_iseq.rb: disable a test which checks features removed at r38532. |
0f9b33c793f225c1b817d73e5c915050c429edc4
|
2012-12-23 |
* thread.c: rename methods: from Thread.async_interrupt_timing to Thread.handle_interrupt, from Thread.async_interrupted? to Thread.pending_interrupt?. Also rename option from `defer' to `never'. [ruby-core:51074] [ruby-trunk - Feature #6762] * vm_core.c, thread.c: rename functions and data structure `async_errinfo' to `pending_interrupt'. * thread.c: add global variables sym_immediate, sym_on_blocking and sym_never. * cont.c, process.c, vm.c, signal.c: ditto. * lib/sync.rb, lib/thread.rb: catch up this renaming. * test/ruby/test_thread.rb: ditto. |
48f320194a267bcf6858cbaa77a688cce0759d8d
|
2012-12-25 |
add empty line for style. |
59e1e822a189f8b4c89c3216dd1d82b827969c46
|
2012-12-25 |
* vm_core.h (RUBY_VM_THREAD_VM_STACK_SIZE): change default VM stack size (128 KB or 256 KB -> 512 KB or 1024 KB). This re-sizing corrects smaller value introduced at r38478. Newer value is same VM stack size of Ruby 1.9. [ruby-dev:46797] [ruby-trunk - Bug #7603] |
270fbd9c058fc2a36dc7c44243f4a20c91143481
|
2012-12-25 |
* vm_core.h, eval_intern.h (CHECK_STACK_OVERFLOW): move CHECK_STACK_OVERFLOW() to vm_core.h and rename to CHECK_VM_STACK_OVERFLOW(). This change is only move and rename. * tool/instruction.rb: catch up above changes. * vm.c, vm_insnhelper.c: ditto. * vm_insnhelper.c (vm_stackoverflow): add a function to unify raising vm stackoverflow exception. |
c2693f8bd61757e32d2f92010c041a79b21d074a
|
2012-12-25 |
* vm_trace.c (rb_threadptr_exec_event_hooks_and_pop_frame): pop a frame before JUMP_TAG() if exception occurred. This change fix bug of Ruby 1.9. [ruby-core:51128] [ruby-trunk - Bug #7624] * vm_core.h (EXEC_EVENT_HOOK_AND_POP_FRAME): add to use `rb_threadptr_exec_event_hooks_and_pop_frame()'. * vm.c (vm_exec): use EXEC_EVENT_HOOK_AND_POP_FRAME() while exception handling. While exception hadnling, if an exception is raised in hooks, need to pop current frame and raise this raised exception by hook. * test/ruby/test_settracefunc.rb: add a test. |
bb70ca493f4547cbb86c54d216b5559b68f2d860
|
2013-01-07 |
* NEWS: add a NEWS entry about RubyVM. |
b8e6fd6ffe9f24921c7138f656596ae3bbdd7ad7
|
2013-01-07 |
* vm_trace.c (rb_threadptr_exec_event_hooks_orig): pop tag before JUMP_TAG() if frame is `finish' frame. Without this patch, there is an inconsistency between control frame stack and tags stack. [Bug #7668] * test/ruby/test_settracefunc.rb: add a test for above. |
06f2a86f1a57ded8177f0611bb107f0c4bcc2e70
|
2013-01-07 |
* include/ruby/ruby.h (RUBY_EVENT_SPECIFIED_LINE): make it special. This flag is not contained by RUBY_EVENT_TRACEPOINT_ALL. This event is experimental one. It is possible to remove/rename flag name after 2.0.1. * vm_trace.c (get_event_id): return :line if SPECIFIED_LINE was occurred. `:specified_line' never been returned. |
a5e2f3221a96ee54dd8f5abdfc4439328f34e386
|
2013-01-09 |
* compile.c (compile_array_): modify wrong optimization. A script "[print(1)]; print(2)" should output "12". However, the compiler had eliminted "[print(1)]" expression because it is void expression (unused array). Of course, side-effect should be remained. This issue is reported by Masaya Tarui. * bootstraptest/test_literal.rb: add a test. |
5849920066ad295cd416c5b4782e795329a666fd
|
2013-01-10 |
* vm_core.h (VM_DEBUG_BP_CHECK): set 0 as default. This flag specifies checking BP consistency on each frame popping. Now, we don't have any trouble on it, so I remove it. If you feel any bugs about VM execution, then set it to 1. |
e5481ccd8e6470b05d0c8a202103dc307c4aa25f
|
2013-01-23 |
* thread_pthread.c (ruby_init_stack): ignore `STACK_END_ADDRESS' if Ruby interpreter is running on co-routine. [Feature #2294] https://bugs.ruby-lang.org/issues/2294#note-18 |
d50bd4939a79bb53aeaf8c607e3d6612d3167022
|
2013-01-25 |
* vm_core.h: modify a comment about rb_iseq_t::local_size. A patch by davidbalbert (David Albert) [Bug #6750] |
18e01f63816ec36d10b8d958b8298b73950dd89f
|
2013-01-29 |
* vm_backtrace.c: fix issue of rb_debug_inspector_open(). The order of making binding should be stack (frame) top to bottom. [Bug #7635] And also fix issue of collecting klass. Collecting klass is same as TracePoint#defined_class. (previous version, it returns T_ICLASS (internal objects). * test/-ext-/debug/test_debug.rb: add a test. * ext/-test-/debug/extconf.rb, init.c, inspector.c: ditto. * vm_backtrace.c: remove magic number and add enum CALLER_BINDING_*. * vm_backtrace.c, include/ruby/debug.h: add new C api (experimental) rb_debug_inspector_frame_self_get(). * vm.c, vm_core.h, vm_trace.c: move decl. of rb_vm_control_frame_id_and_class() and constify first parameter. |
4cb4c929df1ed1b86f3aec90ff7cb954db9a9021
|
2013-02-04 |
* vm_dump.c (control_frame_dump): capitalize prefix of `ep' if `ep' points an env object. |
88101695ab516ce30f930513150c1247ebc6c36d
|
2013-02-05 |
* proc.c (rb_binding_new_with_cfp): permit to create binding object of IFUNC frame. When `rb_binding_new_with_cfp()' is called, VM finds out the first normal (has iseq) frame and create a binding object of this frame and create Env objects. `ep's of related frames are updated (`ep's point Env object managed spaces). However, `ep' of skipped IFUNC frame was not updated and old invalid `ep' was remained. It causes serious problems. To solve this issue, permit IFUNC to create binding. (Maybe there is no problem on it) [ruby-dev:46908] [ruby-trunk - Bug #7774] * test/ruby/test_settracefunc.rb: add a test. * vm.c (rb_vm_get_binding_creatable_next_cfp), vm_core.h: added. * vm_trace.c: fix to use `rb_vm_get_binding_creatable_next_cfp()'. |
7cbeff908fb75f82b08b2e7eeaed937167eef2d6
|
2013-02-16 |
* proc.c (rb_binding_new_with_cfp): create binding object even if the frame is IFUNC. But return a ruby-level binding to keep compatibility. This patch fix degradation introduced from r39067. [Bug #7774] [ruby-dev:46960] * test/ruby/test_settracefunc.rb: add a test. |
b4add2ac2be49677b05402bf236c7e547949e0a8
|
2013-02-16 |
* vm.c (rb_thread_mark): mark a working Proc of bmethod (a method defined by define_method) even if the method was removed. We could not trace working Proc object which represents the body of bmethod if the method was removed (alias/undef/overridden). Simply, it was mark miss. This patch by Kazuki Tsujimoto. [Bug #7825] NOTE: We can brush up this marking because we do not need to mark `me' on each living control frame. We need to mark `me's only if `me' was free'ed. This is future work after Ruby 2.0.0. * test/ruby/test_method.rb: add a test. |
cc16b2139b50ae00e44c672bdf6c932da630d007
|
2013-02-18 |
* vm_eval.c (vm_call0_body): check interrupts after method dispatch from C methods. [Bug #7878] |
b0690af9a4f09fc2cd6d15e7544cc40a4371228d
|
2013-02-28 |
* iseq.c (iseq_data_to_ary): fix condition. r34303 introduces a bug to avoid all line information from a result of ISeq#to_a. This is a regression problem from 2.0.0p0. * test/ruby/test_iseq.rb: add a test of lines after ISeq#to_a. |
4cf0918e8e3d8b06d84c3cd3e875c82edb8b87e6
|
2013-02-28 |
* compile.c (iseq_compile_each): remove redundant trace(line) instruction. for example, at the following script def m() p:xyzzy 1 2 end compiler ignores `1' because there is no effect. However, `trace(line)' instruction remains in bytecode. This modification removes such redundant trace(line) instruction. * test/ruby/test_iseq.rb: add a test. |
925c936bb1f362cb806184afddf2dbac40b21ffc
|
2013-05-13 |
* gc.c (rb_data_object_alloc, rb_data_typed_object_alloc): use NEWOBJ_OF() instead of NEWOBJ(). |
8ac05ae500332d7fb8a86f9da7d87424915ab0ca
|
2013-05-13 |
* gc.c (rb_data_object_alloc): check klass only if klass is not 0. |
b6b85f6eaf51d4a258cc228319721367cd1f2e0c
|
2013-05-13 |
* object.c (rb_obj_setup): added. * include/ruby/ruby.h (OBJSETUP): ues rb_obj_setup() instead of a macro. |
c8fc37a99c7d04937c586fe6aad9b4cf421219e1
|
2013-05-13 |
* ChangeLog: add a comment. |
12bf73637b960cf0ef463f966554595ff2c37ecd
|
2013-05-13 |
* include/ruby/ruby.h: add new utility macros to access Array's element. * RARRAY_AREF(a, i) returns i-th element of an array `a' * RARRAY_ASET(a, i, v) set i-th element of `a' to `v' This change is a part of RGENGC branch [ruby-trunk - Feature #8339]. |
aacd7710462142df7397618ffff4279e495f10f9
|
2013-05-13 |
* *.c, parse.y, insns.def: use RARRAY_AREF/ASET macro instead of using RARRAY_PTR(). |
83aba0486298d61b39f3ed3492042690a889807f
|
2013-05-13 |
* include/ruby/ruby.h: constify RBasic::klass and add RBASIC_CLASS(obj) macro which returns a class of `obj'. This change is a part of RGENGC branch [ruby-trunk - Feature #8339]. * object.c: add new function rb_obj_reveal(). This function reveal interal (hidden) object by rb_obj_hide(). Note that do not change class before and after hiding. Only permitted example is: klass = RBASIC_CLASS(obj); rb_obj_hide(obj); .... rb_obj_reveal(obj, klass); TODO: API design. rb_obj_reveal() should be replaced with others. TODO: modify constified variables using cast may be harmful for compiler's analysis and optimizaton. Any idea to prohibt inserting RBasic::klass directly? If rename RBasic::klass and force to use RBASIC_CLASS(obj), then all codes such as `RBASIC(obj)->klass' will be compilation error. Is it acceptable? (We have similar experience at Ruby 1.9, for example "RARRAY(ary)->ptr" to "RARRAY_PTR(ary)". * internal.h: add some macros. * RBASIC_CLEAR_CLASS(obj) clear RBasic::klass to make it internal object. * RBASIC_SET_CLASS(obj, cls) set RBasic::klass. * RBASIC_SET_CLASS_RAW(obj, cls) same as RBASIC_SET_CLASS without write barrier (planned). * RCLASS_SET_SUPER(a, b) set super class of a. * array.c, class.c, compile.c, encoding.c, enum.c, error.c, eval.c, file.c, gc.c, hash.c, io.c, iseq.c, marshal.c, object.c, parse.y, proc.c, process.c, random.c, ruby.c, sprintf.c, string.c, thread.c, transcode.c, vm.c, vm_eval.c, win32/file.c: Use above macros and functions to access RBasic::klass. * ext/coverage/coverage.c, ext/readline/readline.c, ext/socket/ancdata.c, ext/socket/init.c, * ext/zlib/zlib.c: ditto. |
f1eadb0fb446418ac7b607a609cf19d9fd943f83
|
2013-05-13 |
* iseq.c (prepare_iseq_build): remove additional line braek. |
89e6910f04bb7dcb4d1b3879b8e98295bc20271d
|
2013-05-13 |
* include/ruby/ruby.h: constify RRational::(num,den) and RComplex::(real,imag). Add macro to set these values: * RRATIONAL_SET_NUM() * RRATIONAL_SET_DEN() * RCOMPLEX_SET_REAL() * RCOMPLEX_SET_IMAG() This change is a part of RGENGC branch [ruby-trunk - Feature #8339]. TODO: API design. RRATIONAL_SET(rat,num,den) is enough? TODO: Setting constify variable with cast has same issue of r40691. * complex.c, rational.c: use above macros. |
7d0a90e9b494dd0897e4a5a3b5d219b9c9c891e8
|
2013-05-13 |
* gc.c: refactoring GC::Profiler. * gc.c (gc_prof_sweep_timer_start/stop): removed because they doesn't support lazy sweep. * gc.c (gc_prof_sweep_slot_timer_start/stop): added. redefine `sweeping time' to accumulated time of all of slot_sweep(). * gc.c (rb_objspace_t::profile::count): renamed to rb_objspace_t::profile::next_index. `counter' seems ambiguous. increment it when next record is acquired. |
b597df707e529381e70ece71e74d4a2c296e9ef3
|
2013-05-13 |
* gc.c: disable GC_PROFILE_MORE_DETAIL (fix last commit). * gc.c (gc_prof_set_malloc_info): fix "objspace->heap.live_num" to "objspace_live_num(objspace)". There is no such member variable. |
7958c71ee57b0e394ed5e99f724161eacadf3056
|
2013-05-13 |
* gc.c: remove rb_objspace_t::marked_num. We can use `objspace_live_num()' instead of removed `marked_num' if it is after `after_gc_sweep()' function call. * gc.c (after_gc_sweep): use objspace_live_num() instead of removed rb_objspace_t::marked_num. * gc.c (gc_mark_ptr, gc_marks): remove rb_objspace_t::marked_num code. * gc.c (gc_prepare_free_objects): do not call set_heaps_increment() with checking objspace->heap.marked_num. At this point, we only need to check availability of free-cell. * gc.c (gc_prepare_free_objects): * gc.c (lazy_sweep): call after_gc_sweep() if there are no sweep_able entry. * gc.c (rest_sweep, gc_prepare_free_objects): remove after_gc_sweep() call. |
4f401816ffaf9b641cfbc8ad12203eedcdb527de
|
2013-05-13 |
* gc.c: support RGENGC. [ruby-trunk - Feature #8339] See this ticet about RGENGC. * gc.c: Add several flags: * RGENGC_DEBUG: if >0, then prints debug information. * RGENGC_CHECK_MODE: if >0, add assertions. * RGENGC_PROFILE: if >0, add profiling features. check GC.stat and GC::Profiler. * include/ruby/ruby.h: disable RGENGC by default (USE_RGENGC == 0). * array.c: add write barriers for T_ARRAY and generate sunny objects. * include/ruby/ruby.h (RARRAY_PTR_USE): added. Use this macro if you want to access raw pointers. If you modify the contents which pointer pointed, then you need to care write barrier. * bignum.c, marshal.c, random.c: generate T_BIGNUM sunny objects. * complex.c, include/ruby/ruby.h: add write barriers for T_COMPLEX and generate sunny objects. * rational.c (nurat_s_new_internal), include/ruby/ruby.h: add write barriers for T_RATIONAL and generate sunny objects. * internal.h: add write barriers for RBasic::klass. * numeric.c (rb_float_new_in_heap): generate sunny T_FLOAT objects. * object.c (rb_class_allocate_instance), range.c: generate sunny T_OBJECT objects. * string.c: add write barriers for T_STRING and generate sunny objects. * variable.c: add write barriers for ivars. * vm_insnhelper.c (vm_setivar): ditto. * include/ruby/ruby.h, debug.c: use two flags FL_WB_PROTECTED and FL_OLDGEN. * node.h (NODE_FL_CREF_PUSHED_BY_EVAL, NODE_FL_CREF_OMOD_SHARED): move flag bits. |
9b6b3672cc1556791225aa9663ded2ac24e9cd1c
|
2013-05-13 |
* include/ruby/ruby.h: enable RGENGC (USE_RGENGC) but no type creates write protected (sunny) objects (RGENGC_WB_PROTECTED_* == 0). |
1829147fb58982bf31549e4377f171fd18da8919
|
2013-05-13 |
* include/ruby/ruby.h: enable to generate write barrier protected objects for numeric types (Float, Complex, Rational, Bignum). |
305382bd69339206249db008003baef1bb9461f1
|
2013-05-13 |
* include/ruby/ruby.h: enable to generate write barrier protected objects (T_OBJECT). |
5016b37ae4960708aa111a8b13b07b32b5abb3fd
|
2013-05-13 |
* include/ruby/ruby.h: enable to generate write barrier protected objects (T_STRING). |
b8c0ff86d5a8c860f692159ebbc41f84eb2dec5c
|
2013-05-13 |
* include/ruby/ruby.h: enable to generate write barrier protected arrays (T_ARRAY). |
f254b689f22588d8ffa6f2600ad771a7561a82b1
|
2013-05-13 |
* string.c (rb_str_new_frozen): remove debug print. |
4a9ec30601e6ac639aec25d93dede1de845b3b61
|
2013-05-15 |
* gc.c: add an additional RGENGC_PROFILE mode (2). Profiling result can be check by GC.stat. * gc.c (type_name): separate from obj_type_name(). |
f1ccdf98cae8e02d156968b1a8f67ac72f9857de
|
2013-05-15 |
* gc.c (newobj): rename to `newobj_of' and accept additional three parameters v1, v2, v3. newobj_of() do OBJSETUP() and fill values with v1, v2, v3. * gc.c (rb_data_object_alloc, rb_data_typed_object_alloc): use newobj_of(). |
e213a7228f88d83ecf8253ea1fb939c6f2384136
|
2013-05-15 |
* gc.c (rb_node_newnode): use newobj_of() instead of rb_newobj(). |
3f2cb86ef325217af8205571996179fee0a7ee40
|
2013-05-21 |
* gc.c (gc_profile_dump_on): `count' should be (int) because it can be negative number. And use pointer for `record' (don't copy). |
6f7c9e2ecb20d138565f17286620fc656dd5ffbd
|
2013-05-21 |
* common.mk (rdoc-bench): add a benchmark rule using RDoc. Generate all rdoc related files (same as `make rdoc') in temporary directory and remove them. Excecution time, GC::Profiler and results of GC.stat are printed. * tool/rdocbench.rb: added for `rdoc-bench'. |
2e011442e531b2f8b841d6b5d2a9d62b3c435ae7
|
2013-05-21 |
* gc.c: GC::Profiler's sweeping time is accumulated all slot sweeping time. At lazy GC, GC::Profiler makes new record entry for each lazy_sweep(). In this change, accumulating all slot_sweep() time. And change indentation. |
9578bb7831201c6c4b8eb03d7352f116046b33c1
|
2013-05-21 |
* gc.c: fix to collect additional information for GC::Profiler. * major/minor GC * trigger reason of GC * gc.c (gc_profile_dump_on): change reporting format with added information. * gc.c (gc_profile_record_get): return added information by :GC_FLAGS => array. |
51d586c64e19c13a6fdfc75a860247f0835ef1a7
|
2013-05-21 |
* gc.c: remove gc_profile_record::is_marked. always true. |
9e64703ec87ca5dd3c234942d865330ff9c47cf0
|
2013-05-21 |
* gc.c (garbage_collect): all GC is start from garbage_collect() (or garbage_collect_body()). `garbage_collect()' accept additional two parameters `full_mark' and `immediate_sweep'. If `full_mark' is TRUE, then force it full gc (major gc), otherwise, it depends on status of object space. Now, it will be minor gc. If `immediate_sweep' is TRUE, then disable lazy sweep. To allocate free memory, `full_mark' and `immediate_sweep' should be TRUE. Otherwise, they should be FALSE. * gc.c (gc_prepare_free_objects): use `garbage_collect_body()'. * gc.c (slot_sweep, before_gc_sweep, after_gc_sweep): add logging code. |
5aece50163fc3636ef06a78b055c2ccea3e0b353
|
2013-05-22 |
* gc.c (gc_prepare_free_objects, rest_sweep, lazy_sweep): fix position of `during_gc' setting. |
b8b26d05cef49eb671ba5b69895d8987a6275c3a
|
2013-05-23 |
* object.c (rb_obj_clone): should not propagate OLDGEN status. This propagation had caused WB miss for class. |
b84f7fda07a8e7bfad80a9faae69f071b736f144
|
2013-05-24 |
* gc.c (after_gc_sweep, garbage_collect_body): do major GC (full GC) before extending heaps. TODO: do major GC when there are many old (promoted) objects. * gc.c (after_gc_sweep): remove TODO comments. |
f38a0630908c17056e150f5ecaf3e3ecf73e0273
|
2013-05-24 |
* gc.c: do major/full GC when: * number of oldgen object is biggger than twice of number of oldgen object at last full GC. * number of remembered shady object is bigger than twice of number of remembered shady object at last full GC. * number of oldgen object and remembered shady object is bigger than half of total object space. (please fix my English!) |
7b5a42f0fa54dbb0d381ffbe3b8de6601577c518
|
2013-05-25 |
* gc.c (after_gc_sweep): reduce full GC timing. |
a20a14727f4c15fad7a07b8bd7c39074895aa845
|
2013-05-26 |
* hash.c, include/ruby/ruby.h: support WB protected hash. * constify RHash::ifnone and make new macro RHASH_SET_IFNONE(). * insert write barrier for st_update(). * include/ruby/intern.h: declare rb_hash_set_ifnone(hash, ifnone). * marshal.c (r_object0): use RHASH_SET_IFNONE(). * ext/openssl/ossl_x509name.c (Init_ossl_x509name): ditto. |
c4c821a7d7f2229a7c8d2c36cdc6b20668101081
|
2013-05-26 |
* hash.c (rb_hash_tbl_raw), internal.h: added. Returns st_table without shading hash. * array.c: use rb_hash_tbl_raw() for read-only purpose. * compile.c (iseq_compile_each): ditto. * gc.c (count_objects): ditto. * insns.def: ditto. * process.c: ditto. * thread.c (clear_coverage): ditto. * vm_insnhelper.c: ditto. |
ca2ca7d32b7ac53b9c28fac36dfe0bc539df85c6
|
2013-05-26 |
* gc.c (gc_stat): collect shade_operation_count, remembered_sunny_object_count and remembered_shady_object_count for each types when RGENGC_PROFILE >= 2. They are informative for optimization. |
767debf92e7f21f48631ebb4764ba16cfaf1d7f0
|
2013-05-26 |
* gc.c (gc_stat): collect promote_operation_count and types (RGENGC_PROFILE >= 2). |
e2793a908e23dd1dde5eaf553c5bb7ed5e8533c9
|
2013-05-26 |
* include/ruby/debug.h, vm_trace.c: add rb_postponed_job API. Postponed jobs are registered with this API. Registered jobs are invoked at `ruby-running-safe-point' as soon as possible. This timing is completely same as finalizer timing. There are two APIs: * rb_postponed_job_register(flags, func, data): register a postponed job with data. flags are reserved. * rb_postponed_job_register_one(flags, func, data): same as `rb_postponed_job_register', but only one `func' job is registered (skip if `func' is already registered). This change is mostly written by Aman Gupta (tmm1). https://bugs.ruby-lang.org/issues/8107#note-15 [Feature #8107] * gc.c: use postponed job API for finalizer. * common.mk: add dependency from vm_trace.c to debug.h. * ext/-test-/postponed_job/extconf.rb, postponed_job.c, test/-ext-/postponed_job/test_postponed_job.rb: add a test. * thread.c: implement postponed API. * vm_core.h: ditto. |
96090c083dafd99b77405aa97692483f6a6ab9a4
|
2013-05-26 |
* ext/-test-/postponed_job/postponed_job.c: fix `init' function name. |
680f0b5ba4eb4ba4f542ebc8d1204da61b71eb92
|
2013-05-27 |
* include/ruby/ruby.h, gc.c, vm_trace.c: add internal events. * RUBY_INTERNAL_EVENT_NEWOBJ: object created. * RUBY_INTERNAL_EVENT_FREE: object freeed. * RUBY_INTERNAL_EVENT_GC_START: GC started. And rename `RUBY_EVENT_SWITCH' to `RUBY_INTERNAL_EVENT_SWITCH'. Internal events can not invoke any Ruby program because the tracing timing may be critical (under huge restriction). These events can be hooked only by C-extensions. We recommend to use rb_potponed_job_register() API to call Ruby program safely. This change is mostly written by Aman Gupta (tmm1). https://bugs.ruby-lang.org/issues/8107#note-12 [Feature #8107] * include/ruby/debug.h, vm_trace.c: added two new APIs. * rb_tracearg_event_flag() returns rb_event_flag_t of this event. * rb_tracearg_object() returns created/freeed object. * ext/-test-/tracepoint/extconf.rb, ext/-test-/tracepoint/tracepoint.c, test/-ext-/tracepoint/test_tracepoint.rb: add a test. |
662cbf22fa5c3914fe04ced1b2b413aa6fc426b4
|
2013-05-27 |
* test/-ext-/postponed_job/test_postponed_job.rb: fix typo and class name. |
a1b1b6f7fb22fddcb7843a021e16553f96aea137
|
2013-05-27 |
* vm_trace.c (rb_postponed_job_flush, rb_postponed_job_register): use ruby_xmalloc/xfree. It is safe during GC. |
050dd10d6f8933268ed0fd211eb5bcc8ad49f678
|
2013-05-27 |
* ext/objspace/objspace.c: support ObjectSpace.trace_object_allocations. Read the following test to know HOWTO. This feature is a sample of RUBY_INTERNAL_EVENT. * test/objspace/test_objspace.rb: add a test. * ext/objspace/object_tracing.c: ditto. * gc.c (rb_gc_count): add. THis function returns GC count. * internal.h: add decl. of rb_gc_count(). Same as `GC.count'. |
f0b6cb6fc7e476dc162a907c021d52831383ba34
|
2013-05-27 |
* include/ruby/ruby.h: rename RUBY_INTERNAL_EVENT_FREE to RUBY_INTERNAL_EVENT_FREEOBJ. * ext/-test-/tracepoint/tracepoint.c, ext/objspace/object_tracing.c, gc.c, vm_trace.c: catch up this change. |
eccb729a3fb840dc9b45103a19fe62d23b3d5e6c
|
2013-05-27 |
* vm_trace.c (rb_postponed_job_flush): remove a wrong comment. |
e4c58251b736ba362774b24787dff672fd3ee41b
|
2013-05-27 |
* include/ruby/ruby.h, gc.c: add new internal event RUBY_INTERNAL_EVENT_GC_END. This event invokes at the end of after_sweep(). Time chart with lazy sweep is here: (1) Kick RUBY_INTERNAL_EVENT_GC_START (2) [gc_marks()] (3) [lazy_sweep()] (4) [... run Ruby program (mutator) with lazy_sweep() ...] (5) [after_sweep()] (6) Kick RUBY_INTERNAL_EVENT_GC_END (7) [... run Ruby program (mutator), and go to (1) ...] * ext/-test-/tracepoint/tracepoint.c, test/-ext-/tracepoint/test_tracepoint.rb: modify a test. |
f72bd6e720ec0a75a3d3e64daef1536297c53967
|
2013-05-27 |
add a ChangeLog. |
c180e0d8801a8fb1f4d900d6a7e36ccb7d4f557e
|
2013-05-27 |
* vm_trace.c (rb_postponed_job_register_one): fix iteration bug. * ext/-test-/postponed_job/postponed_job.c, test/-ext-/postponed_job/test_postponed_job.rb: add a test. |
8a81b54a2b9cf5349c882659fd3b2bc7995bc633
|
2013-05-27 |
* gc.c (garbage_collect_body): fix GC_ENABLE_LAZY_SWEEP condition. * gc.c (GC_NOTIFY): move debug print location and use stderr instead of stdout. |
b01c4ddfce5faa7e0bb982a41319c7e44141c5e3
|
2013-05-27 |
* gc.c (gc_stat): remove wrong rest_sweep(). |
30dbed383786362eaf70ad584a8b382a12b68fef
|
2013-05-27 |
* ext/objspace/gc_hook.c, ext/objspace/objspace.c: add new methods to hook GC invocation. * ObjectSpace.after_gc_start_hook=(proc) * ObjectSpace.after_gc_end_hook=(proc) Note that hooks are not kicked immediately. Procs are kicked at postponed_job. This feature is a sample of new internal event and rb_postponed_job API. |
7453c53b08655e9d17c0419716ffad1c41663b6d
|
2013-05-28 |
* ext/objspace/object_tracing.c: fix a bug reported at "[ruby-core:55182] [ruby-trunk - Bug #8456][Open] Sugfault in Ruby Head" Care about the case TracePoint#path #=> `nil'. * ext/objspace/object_tracing.c: add two new methods: * ObjectSpace.allocation_class_path(o) * ObjectSpace.allocation_method_id(o) They are not useful for Object.new because they are always "Class" and :new. To trace more useful information, we need to maintain call-tree using call/return hooks, which is implemented by ll-prof <http://sunagae.net/wiki/doku.php?id=software:llprof> * test/objspace/test_objspace.rb: add a test. |
68f96f6c3c05385a5b47395b82e619f9c06b0437
|
2013-05-29 |
* hash.c: fix WB bug. (1) Hash's key also needs WB. (2) callback parameter *key and *value of st_update() is not a storage of st_table itself (only local variable). So that OBJ_WRITE() is not suitable, especially for `!exsinting'. OBJ_WRITTEN() is used instead of OBJ_WRITE(). |
6e19585ac7dc38810a39f597413279afc1c92bf0
|
2013-05-29 |
* gc.c (gc_profile_enable): rest_sweep() to finish last GC. Profiling record is allocated at first of marking phase. Enable at lazy sweeping may cause an error (SEGV). |
e7dfa869c0a0f55c64510035611c48e85c9ec72f
|
2013-06-07 |
* gc.c: remove "Sunny" terminology. "Sunny" doesn't mean antonym of "Shady" (questionable, doubtful, etc). Instead of "Suuny", use "non-shady" or "normal". |
dd96561f76f8c3ae7d60f5ace40ce32f4f1d73c8
|
2013-06-10 |
* gc.c (wmap_mark): check allocation of `w->obj2wmap'. (no-allocation `w->obj2wmap' will be NULL pointer reference) |
f8ba9a1f605b264069591664eae866b643c74db4
|
2013-06-10 |
* array.c (rb_ary_new_from_values): add assertion (ary should be young object). |
a03ac78b2c7f48d5e0f9bf2504385a8d24a836ab
|
2013-06-10 |
* gc.c (RVALUE_PROMOTE): fix parameter name (`x' to `obj') and make it inline function (like RVALUE_PROMOTE). |
a8aaf133921e5cfcf6e0ee88dc6b69e9c52ecf75
|
2013-06-10 |
* gc.c (rgengc_remember): permit promoted object. (rb_gc_writebarrier -> remember) |
87a120fbdc25544135e8d625e8dc11950b7245a3
|
2013-06-14 |
* class.c, include/ruby/ruby.h: add write barriers for T_CLASS, T_MODULE, T_ICLASS. * constant.h: constify rb_const_entry_t::value and file to detect assignment. * variable.c, internal.h (rb_st_insert_id_and_value, rb_st_copy): added. update table with write barrier. * method.h: constify some variables to detect assignment. * object.c (init_copy): add WBs. * variable.c: ditto. * vm_method.c (rb_add_method): ditto. |
f41b284fab83ad067eead551e7e9b3d67b2a1e8e
|
2013-06-14 |
* compile.c (rb_iseq_compile_node): fix location of a `trace' instruction (b_return event). [ruby-core:55305] [ruby-trunk - Bug #8489] (need a backport to 2.0.0?) * test/ruby/test_settracefunc.rb: add a test. |
17be9e97193bd02b439081033db7098f87d1282a
|
2013-06-17 |
* gc.c (gc_mark_maybe): added. check `is_pointer_to_heap()' and type is not T_ZOMBE. * gc.c: use `gc_mark_maybe()'. T_ZOMBIE objects should not be pushed to the mark stack. |
7a460d2d1deac55cecce6c734b0211f03c8120e7
|
2013-06-17 |
* gc.c (gc_mark_children): don't need to care about T_ZOMBIE here. |
84608b13622a4774c8015f8942db863820c0f81b
|
2013-06-18 |
* variable.c (rb_autoload): fix WB miss. |
17cd5ac4af3b8aaec568e41e5531af65cd1adf45
|
2013-06-18 |
* gc.c (gc_mark_maybe): check to skip T_NONE. * gc.c (markable_object_p): do not need to check (flags == 0) here. |
1d7966f5b461472bd95184c6cea9f0d1a5bdf1da
|
2013-06-18 |
* gc.c (gc_stat): add `generated_normal_object_count_types' for RGENGC_PROFILE >= 2. |
67d6aaca3521f6fe089103e72157e05ee950882a
|
2013-06-18 |
* variable.c (rb_const_set): fix WB miss. |
0f1df31bdf1952065f75fa2bfaf32dbd14ec7525
|
2013-06-18 |
* hash.c: `st_update()' also has same issue of last fix. write barriers at callback function are too early. All write barriers are executed after `st_update()' |
5a70af1d59b85c4987330b5ff8e3ef1cbb6e5668
|
2013-06-18 |
* vm.c (kwmerge_i): add WB. |
81ed2d3c4aa19c03a6e2d644c853e5977fb53cc8
|
2013-06-18 |
* gc.c (gc_stress_set): add special option of GC.stress. `GC.stress=(flag)' accepts integer to control behavior of GC. See code for details. Of course, this feature is only for MRI. You can debug RGenGC (WB) using `GC.stress = 1'. Using this option, do minor marking at all possible places. GC::STRESS_MINOR_MARK = 1 and GC::STRESS_LAZY_SWEEP = 2 seem good to add. |
5455b7e72ef7230b36faa3e004444e5bb80915e1
|
2013-06-18 |
* gc.c (RGENGC_CHECK_MODE): add new check mode `3'. In this mode, show all references if there is a miss-corrected object. |
65791846a66f7bde9fa480f11e0405086323986f
|
2013-06-18 |
* gc.c (rgengc_remember): check T_NONE and T_ZOMBIE if RGENGC_CHECK_MODE > 0. |
54d04073d77fc65844fd9062cc90dd8a3c079de5
|
2013-06-18 |
* gc.c (rgengc_remember): fix output level. * gc.c (rgengc_rememberset_mark): fix to output clear count. (shady_object_count + clear_count = count of remembered objects) |
d879849b6e874557c27d6a63e50ea9d0af04acef
|
2013-06-18 |
* gc.c (make_deferred): clear flags to T_ZOMBIE. * gc.c (slot_sweep_body): fix indent. |
bfac961beda98f90463a77c9944f0dc9fa095b10
|
2013-06-18 |
* gc.c (rb_objspace::gc_stress): int -> VALUE to store Fixnum object. |
97dd259df5f1598e320e2e48de9aedd41834daa2
|
2013-06-18 |
* gc.c (garbage_collect_body): use FIX2INT for ruby_gc_stress. |
9b47ec04a89711766c4d14b6d7792fecc7c7b185
|
2013-06-19 |
* include/ruby/ruby.h (struct rb_data_type_struct), gc.c: add rb_data_type_struct::flags. Now, this flags is passed at T_DATA object creation. You can specify FL_WB_PROTECTED on this flag. * iseq.c: making non-shady iseq objects. * class.c, compile.c, proc.c, vm.c: add WB for iseq objects. * vm_core.h, iseq.h: constify fields to detect WB insertion. |
a1acb395a2fd20ad4eaa16ef1a88e721535c4172
|
2013-06-19 |
* gc.c (rb_gc_force_recycle): clear oldgen bitmap, too. |
745263abb97faca2cc08f1c577a8e5bd3a9aa6a2
|
2013-06-19 |
* gc.c (RVALUE_PROMOTED): check consistency between oldgen flag and oldgen bitmap if RGENGC_CHECK_MODE > 0. |
50214475a92b9d9d105a2ea8ee72081b4a6ef54c
|
2013-06-19 |
* gc.c (garbage_collect_test): rewrite checking code. When RGENGC_CHECK_MODE >= 2, all minor marking, run normal minor marking *and* major/full marking. After that, compare the results and shows BUG if a object living with major/full marking but dead with minor marking. After detecting bugs, print references information. (RGENGC_CHECK_MODE == 2, show references to dead object) (RGENGC_CHECK_MODE == 3, show all references) |
ce7c13ef4d2b75eb56b950563d131e3abc9bab95
|
2013-06-19 |
* gc.c (RVALUE_PROMOTED): fix type. |
21b0705c1838741d8557f486e697163daa99662d
|
2013-06-19 |
* gc.c (gc_marks): fix wrong option. FALSE means major/full GC. It should be TRUE (minor marking). |
6622ab2049996a966b2182cc1159a42f8f68e846
|
2013-06-19 |
* gc.c: Accumulate sweep time to GC time. Now [GC time] is [mark time] + [sweep time] + [misc]. ([GC time] >= [mark time] + [sweep time]) * gc.c (gc_prof_sweep_slot_timer_start/stop): rename to gc_prof_sweep_timer_start/stop and locate at lazy_sweep(). * gc.c (elapsed_time_from): add a utility function. |
efc53c496e3694d5050be10068c1ad16c41e53c3
|
2013-06-19 |
* gc.c (gc_prof_sweep_timer_start): fix merge miss. * gc.c (GC_PROFILE_MORE_DETAIL): set it 0. |
65ad154e2ab959c7b57e566866500b874e6d253a
|
2013-06-19 |
* gc.c (gc_profile_total_time): check objspace->profile.next_index > 0. |
55ae2402f40c428307a1ac1e8a9f2800a4a2f1bf
|
2013-06-19 |
* tool/rdocbench.rb: add summary. |
57bb153456513d727f388bc4e6d9811dc1b4c79b
|
2013-06-19 |
* common.mk: add new rules `gcbench-rdoc', `gcbench-hash'. * tool/gcbench.rb: separate GC bench framework and process. * tool/hashbench1.rb, tool/hashbench2.rb: add two types GC bench. hashbench1: many temporal objects (GC by newobj) hashbench2: hash size becomes bigger and bigger (GC by malloc) Two benchs are executed by `gcbench-hash' rule. * tool/rdocbench.rb: separated. |
fcd5d8fd332b30800c85008100446961473f97d6
|
2013-06-19 |
* tool/gcbench.rb: Summary in one line. * common.mk: separete gcbench-hash to gcbench-hash1 and gcbench-hash2. |
36bc41251310d71450803094ddc91abe63640fed
|
2013-06-20 |
* common.mk: remove dependency from ruby. |
800103e40a8fa65de0b6effbd06654bc754ac1ad
|
2013-06-20 |
* tool/hashbench1.rb: fix parameters. |
ab7e4592106e0796d5b243c0d0c8629a47351e05
|
2013-06-20 |
* tool/hashbench1.rb: fix paramter too. Increase temporary objects. |
99b10ff471c50358ed0f6864f4cf87857c51a91d
|
2013-06-20 |
* benchmark/gc: create a directory to store GC related benchmark. * benchmark/gc/gcbench.rb: moved from tool/gcbench.rb. * benchmark/gc/hash(1|2).rb: ditto. * benchmark/gc/rdoc.rb: ditto. * benchmark/gc/null.rb: added. * common.mk: fix rule. |
2802afffd688f4f3dce0492a45dab82bfc80e070
|
2013-06-20 |
* benchmark/gc/redblack.rb: import red black tree benchmark from https://github.com/jruby/rubybench/blob/master/time/bench_red_black.rb * benchmark/gc/ring.rb: add a benchmark. This benchmark create many old objects. |
fe6b76e78983fd1a0546e1683c0051a01c6cf408
|
2013-06-20 |
* benchmark/gc/pentomino.rb: added. Simply load pentomino puzzle in the benchmark/ directory. |
c5c1e8b8d49d65d5844b4c4a7cd905c2ba55eeb8
|
2013-06-20 |
* benchmark/bm_so_binary_trees.rb: disable `puts' method and change iteration parameter to increase execution time. * benchmark/gc/binarytree.rb: added. |
8e94c016534eab6d43454733c68247d657d02200
|
2013-06-20 |
* benchmark/bm_app_aobench.rb: added. * benchmark/gc/aobench.rb: added. |
8fbffe61cc35433cef210ce25708fa535d2cc9bf
|
2013-06-20 |
* benchmark/bm_app_aobench.rb: use attr_accessor/reader instead of defining methods. |
1db64a2035fc8779ac206958f01d71acc8017c28
|
2013-06-20 |
* benchmark/gc/gcbench.rb: don't use __dir__ to make compatible with ruby 1.9.3. |
07b6816583451e41d9e6a97fe97ef366b0539828
|
2013-06-20 |
* benchmark/gc/gcbench.rb: stop GC::Profiler before output results. Generating GC::Profiler result under profiling causes infinite loop. |
45f7b78d29cb4798b68e58c3c674631a90d8295d
|
2013-06-20 |
* benchmark/gc/gcbench.rb: Do not use GC::Profiler::disable because GC::Profiler::disable prohibit to access profiling data. It should be spec bug. Skip GC::Profiler::report if RUBY_VERSION < '2.0.0' |
bf017de1f3cefd4adef07a4ee4b0332d14438a21
|
2013-06-20 |
* gc.c (rgengc_rememberset_mark): record (1) normal objects count in remember set (2) shady objects count in remember set each GC timing. * gc.c (gc_profile_record_get): enable to access above information and REMOVING_OBJECTS, EMPTY_OBJECTS. |
d1c518d416274a8142cb8281f3361e91f98cc5f4
|
2013-06-20 |
* gc.c (gc_prof_sweep_timer_stop): accumulate sweep time only when record->gc_time > 0. |
8ab7d0e4c3c19688736c874e17a85c32124dbd88
|
2013-06-20 |
* gc.c (gc_profile_record::oldgen_objects): added. * gc.c (gc_profile_dump_on): print the following infomation: * Living object counts * Free object counts If RGENGC_PROFILE > 0 then * Oldgen object counts * Remembered normal object counts * Remembered shady object counts |
8b80ce3a53c5695f13b76c146d8bde1a2bc332cb
|
2013-06-20 |
* gc.c: fix to support USE_RGENGC == 0 (disable RGenGC). If USE_RGENGC==0, it caused compilation error. |
caf923fa6a473918fa7a7a66aeb73495feaff833
|
2013-06-21 |
* gc.c (slot_sweep_body): add counters at a time. * gc.c (gc_profile_dump_on): fix line break position. |
7986e98394af984cc0d0959f748c714f6c471e5c
|
2013-06-21 |
* gc.c (heaps_header/heaps_slot): embed bitmaps into heaps_slot. no need to maintain allocation/free bitmaps. |
b21bf8f94b1d260b3a98ddac503ac643c13bb171
|
2013-06-21 |
* gc.c (gc_marks_body): fix to get `th' in this function. |
4a113cd3cb1eb33811532181a9c3f2cb0f666a09
|
2013-06-21 |
* gc.c: RGENGC_CHECK_MODE should be 0. |
e35f127403979e2b61e38402155b1e5d94910c6a
|
2013-06-21 |
* gc.c: fix to use total_allocated_object_num and heaps_used at the GC time for profiler. |
8398719020b56bbd38bad72c894dd21d2aff6de9
|
2013-06-21 |
* gc.c: fix to use total_allocated_object_num and heaps_used at the GC time for profiler. |
dfc4cc019607e37d817869af0b3b713f92ed3c38
|
2013-06-21 |
revert last commit (operation miss). |
ac9413893ac7792b5614c9efe795f8448767103f
|
2013-06-21 |
* gc.c: enable lazy sweep (commit miss). |
ab084f406319dcfd06a4f7922fcb6e95ccec22bc
|
2013-06-21 |
* gc.c (gc_sweep): profile sweep time correctly when LAZY_SWEEP is disabled. * gc.c (gc_marks_test): store oldgen count and shady count before test marking and restore them after marking. |
372272c24517801813390f0a1284703db9b2a79c
|
2013-06-21 |
* benchmark/gc/gcbench.rb: fix summary of benchmark result notaton. |
9296bd49da1b75731e4ccf48e6517c59d21a700b
|
2013-06-21 |
* include/ruby/ruby.h, re.c: support write barrier for T_REGEXP. |
de928040818eba82d7f1ca239244c80895c5da43
|
2013-06-21 |
add a note |
6a1101f23ea403a8825c2f361508eeb85878b011
|
2013-06-21 |
* include/ruby/ruby.h: support write barrier protection for T_STRUCT. Introduce the following C APIs: * RSTRUCT_RAWPTR(st) returns pointer (do WB on your risk). The type of returned pointer is (const VALUE *). * RSTRUCT_GET(st, idx) returns idx-th value of struct. * RSTRUCT_SET(st, idx, v) set idx-th value by v with WB. And * RSTRUCT_PTR(st) returns pointer with shady operation. The type of returned pointer is (VALUE *). * struct.c, re.c, gc.c, marshal.c: rewrite with above APIs. |
c2269d9aadce0fbb6b4d02f1d4737c17586062b2
|
2013-06-21 |
* vm_eval.c (eval_string_with_cref): fix WB miss. |
508b255b9a11b03fd08efbe9855bc985f702076f
|
2013-06-21 |
* include/ruby/ruby.h: constify RArray::as::ary and RArray::heap::ptr. Use RARRAY_ASET() or RARRAY_PTR_USE() to modify Array objects. * array.c, gc.c: catch up above changes. |
79d3385e9d7b826e8845a7cac2aa4ed404582675
|
2013-06-21 |
* gc.c (allocate_sorted_heaps): remove unused variable `add'. |
a27c48f69e1460d1327db4a3a0c52574c1b4a087
|
2013-06-21 |
* gc.c (check_bitmap_consistency): add to check flag and bitmap consistency. Use this function in several places. |
671c196384908064703362857b2bf5f7f1b6bf39
|
2013-06-21 |
* gc.c (slot_sweep_body): rename to slot_sweep(). No need to separate major/minor GC. * gc.c (gc_setup_mark_bits): remove gc_clear_mark_bits() and unify to this function. |
4223f00713bec8721c031e50bf8a6d23e806f3e9
|
2013-06-21 |
* include/ruby/ruby.h (OBJ_WRITE): cast to (VALUE *) for second parameter `slot'. You don't need to write a cast (VALUE *) any more. * class.c, compile.c, hash.c, iseq.c, proc.c, re.c, variable.c, vm.c, vm_method.c: remove cast expressions for OBJ_WRITE(). |
7396fbb0b5d2d9305ea4c5e8c1bda9bfa22ba100
|
2013-06-21 |
* gc.c (rgengc_rememberset_mark): call gc_mark_children() for remembered objects directly instead of pushing on the mark stack. |
b4f907ea29e2525874be1e3a959e46b534837261
|
2013-06-21 |
* gc.c (rb_gc_giveup_promoted_writebarrier): remove `rest_sweep()' because all of remembered objects are called for gc_mark_children(). |
dbd8f3ac03428d5577405344885abb64d5020bc3
|
2013-06-21 |
* gc.c (rb_objspace::profile): rename rb_objspace::profile::record to records (because it points a set of records) and add a field rb_objspace::profile::current_record to point a current profiling record. * gc.c: use above fields. |
a59e629868a72b4fb71a5b4930191337264b82e2
|
2013-06-21 |
* gc.c (gc_prof_set_heap_info, after_gc_sweep): call gc_prof_set_heap_info() just after sweeping to calculate live object number correctly. (live object number = total generated number (before marking) - total freed number (after sweeping)) * gc.c (gc_marks): record `oldgen_object_count' into current profile` record directly. * gc.c (rgengc_rememberset_mark): same for remembered_normal_objects and remembered_shady_objects. |
d73b9320cc2a19829ad089f0ec12490a10547a51
|
2013-06-22 |
* gc.c (rgengc_check_shady): add new WB miss checking on RGENGC_CHECK_MODE >= 2. |
7da562e74074eaee8604b6049ff38f8bfccb6ac8
|
2013-06-22 |
* class.c (rb_include_class_new), eval.c (rb_using_refinement): make classes/modules (who share method table) shady. If module `a' and `b' shares method table m_tbl and new method with iseq is added, then write barrier is applied only `a' or `b'. To avoid this issue, shade such classes/modules. * vm_method.c (rb_method_entry_make): add write barriers. |
982fee4fcc4cf5163405570b278afd1f53e30d0b
|
2013-06-22 |
* include/ruby/ruby.h, gc.c: rename macros and functions: OBJ_WB_GIVEUP() -> OBJ_WB_UNPROTECT(), rb_obj_wb_giveup() -> rb_obj_wb_unprotect(), rb_gc_giveup_promoted_writebarrier() -> rb_gc_writebarrier_unprotect_promoted(), * class.c, eval.c, hash.c: use OBJ_WB_UNPROTECT(). |
4ab37a13ceb5338c98ba16e5b59ed6b7b51840ee
|
2013-06-23 |
* bootstraptest/test_thread.rb: rescue resource limitation errors. |
ab0a0031839fee694fa59c6b4e23cea88b820e17
|
2013-06-25 |
* gc.c: fix oldgen/remembered_shady counting algorithm. * gc.c (rgengc_check_shady): increment `objspace->rgengc.remembered_shady_object_count' here. * gc.c (rgengc_remember): return FALSE if obj is already remembered. * gc.c (rgengc_rememberset_mark): make it void. * gc.c (gc_mark_children): fix to double counting oldgen_object_count at minor GC. |
2afa9b88ca58f01da79efee709ec0b30d485b18a
|
2013-07-09 |
* test/test_tracer.rb: catch up recent rubygems changes. |
3cd6fe32541d2d19a1084c2cb34de64814c14df5
|
2013-07-16 |
* gc.c (after_gc_sweep): refactoring code. |
53bdcbed86942f2ac6b1a3affcc187602d25cead
|
2013-07-16 |
revert last commit because it fails test-all. |
e8ee0a24dcd858178cf7016a9169ffe79f1c25ea
|
2013-07-16 |
* gc.c (lazy_sweep): refactoring. |
73ee1676b0cd82db62a577bf6ac69fc5b7e00c92
|
2013-07-16 |
* gc.c (assign_heap_slot): refactoring variable names. * gc.c (slot_add_freeobj): added. * gc.c (heaps_add_freeslot): added. * gc.c (finalize_list, rb_gc_force_recycle, slot_sweep): use `slot_add_freeobj' instead of modifying linked list directly. |
ed621c001e20b8f6fec152c76360371d8fed38c5
|
2013-07-16 |
* gc.c (link_free_heap_slot): removed. * gc.c (slot_sweep): use `heaps_add_freeslot' instead of `link_free_heap_slot'. * gc.c (assign_heap_slot): use local variable `slot' instead of `heaps'. |
a97c3b75855e86220d0c17544fb0f2c87c7e854d
|
2013-07-16 |
* gc.c: slim a path of newobj_of(). * gc.c (objspace): add a new field objspace::freelist, which contains available RVALUEs. * gc.c (newobj_of): simply call new function `get_freeobj()'. get_freeobj() returns objspace::freelist. If objspace::freelist is not available, refill objspace::freelist with a slot pointed by objspace::heap::free_slots. * gc.c (before_gc_sweep): clear objspace::freelist. * gc.c (slot_sweep): clear slot::freelist. * gc.c (heaps_prepare_freeslot): renamed to heaps_prepare_freeslot. * gc.c (unlink_free_heap_slot): remove unused function. * gc.c (rb_free_const_table): remove unused function. |
fd92050515d444ccf16ebc84b6b29633732bb10b
|
2013-07-17 |
* gc.c: fix heaps_header and heaps_slot to reduce memory consumption. (1) move heaps_header::start and limit to heaps_slot. (2) remove heaps_header::end which can be calculated by start+limit. * gc.c: catch up above change. |
79d9c8ac72f7559d02870eebe34a9e65d6715fae
|
2013-07-17 |
* gc.c: re-design the heap structure. (1) The heap is consists of a set of slots. (2) Each "slot" has a "slot_body". slot::start and slot::limit specify RVALUE beginning address and number of RVALUE in a "slot_body". (3) "slot_body" contains a pointer to slot (slot_body::header::slot) and an array of RVALUE. (4) heap::sorted is an array of "slots", sorted by an address of slot::body. See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design for more details (figure). * gc.c: Avoid "heaps" terminology. It is ambiguous. |
fa014681d53931c7f81489f94e141257f3da5693
|
2013-07-17 |
* gc.c (unlink_heap_slot): fix memory leak. free slot itself at free_heap_slot(). Reproduce-able code is here: N1 = 100_000; N2 = 1_000_000 N1.times{ary = []; N2.times{ary << ''}} Maybe this problem is remaining in Ruby 2.0.0. * gc.c (unlink_heap_slot): remove not working code. |
9860c846d0407cdff6ccb44ee80d9aa39dfd4c90
|
2013-07-17 |
* gc.c (rb_objspace_free): free slot itself. * gc.c (objspace_each_objects): fix condition. Use slot->body instead of slot. * gc.c (count_objects): use "slot" variable. |
caa14925cc059f2fb89d5af5eb1e3dda9862d171
|
2013-07-17 |
* gc.c: catch up last changes for debugging/checking mode. |
a3b6aeba68a3ab2aa0124c384dcb518875179a65
|
2013-07-17 |
* gc.c: rename heap management functions with prefix "heap_". * allocate_sorted_array() -> heap_allocate_sorted_array(). * slot_add_freeobj() -> heap_slot_add_freeobj(). * assign_heap_slot() -> heap_assign_slot(). * add_heap_slots() -> heap_add_slots(). * init_heap() -> heap_init(). * set_heap_increment() -> heap_set_increment(). * gc.c (initial_expand_heap): inlined in rb_gc_set_params(). |
5c088cf7036539d225950eb2178675659e76e143
|
2013-07-17 |
* gc.c: rename gc related functions with prefix "gc_". * before_gc_sweep() -> gc_before_sweep(). * after_gc_sweep() -> gc_after_sweep(). * lazy_sweep() -> gc_lazy_sweep(). * rest_sweep() -> gc_rest_sweep(). * slot_sweep() -> gc_slot_sweep(). * gc.c: rename a heap management function with prefix "heap_". * get_freeobj() -> heap_get_freeobj(). * gc.c: rename markable_object_p() to is_markable_object(). |
7497452930b067b1dcdcc204bf9a6f34cd3d5d18
|
2013-07-18 |
* string.c (str_alloc): no need to clear RString (already cleared). |
6429bbad5925caf111810f720f6abfbc36deb350
|
2013-07-18 |
* array.c (ary_alloc): slim setup process. |
6795b09fb98fa13eb246b44e670573bda12e35f9
|
2013-07-18 |
* include/ruby/ruby.h: fix spell miss. |
faa9d5eced17729f0a6edda4ba445dec26ca73a5
|
2013-07-18 |
* array.c: add logging feature for RGenGC's write barrier unprotect event. |
8e5374d05a9cddc11ef8871eb34bb59109fa272a
|
2013-07-19 |
* array.c (ary_unprotect_logging): use (void *) for first parameter because VALUE is not defined before including ruby/ruby.h. |
344835a754a832b00d66b7a714b86d04b0778b44
|
2013-07-19 |
* gc.c, internal.h (rb_gc_writebarrier_remember_promoted): add a new function to remember an specified object. This api is only experimental (strongly depend on WB/rgengc strategy). |
b9b5a2ccab4555dd8e063870a15454d919a1d322
|
2013-07-19 |
* array.c (ary_ensure_room_for_push): use RARRAY_RAWPTR() instead of RARRAY_PTR. In this code, there are no "write" operation. * array.c (rb_ary_equal): ditto. * array.c (recursive_equal): ditto. |
77887cf01c1ddfcfc471462fb87b805b2d5c4498
|
2013-07-19 |
* array.c (rb_ary_store): use RARRAY_PTR_USE() intead of RARRAY_PTR(). Clearing memory space doesn't need WBs. |
01bf495286cd0a0f24c4b18982630309566be527
|
2013-07-19 |
* array.c (ary_memcpy): add a function to copy VALUEs into ary with write barrier. If ary is promoted, use write barrier correctly. * array.c (rb_ary_cat, rb_ary_unshift_m, rb_ary_dup, rb_ary_sort_bang, rb_ary_replace, rb_ary_plus): use ary_memcpy(). |
5ef247aa60049300428310ff38af5d7a798df416
|
2013-07-19 |
* array.c (rb_ary_resurrect): use RARRAY_RAWPTR() because there is no writing. * array.c (rb_ary_new_from_values): use ary_memcpy(). |
a6e1e3d637b00ec36e5a2ed9da0f2183abed4b1c
|
2013-07-19 |
* array.c: fix commit miss. RGENGC_UNPROTECT_LOGGING should be 0. |
9cc7f5f829959cdd8a0bd4e1935b9d0b4bb28492
|
2013-07-19 |
* array.c (ary_mem_clear): added. This operation doesn't need WB because this operation creates a reference to Qnil. * array.c (ary_make_shared, rb_ary_store, rb_ary_shift_m, rb_ary_splice, rb_ary_resize, rb_ary_fill): use ary_mem_clear() instead of rb_mem_clear(). * array.c (ary_make_shared): use RARRAY_RAWPTR() instead of RARRAY_PTR(). |
8d8ead142c7849ccf719ca451fc8cbea2105b3a6
|
2013-07-19 |
* array.c: reduce shade operations. * array.c (rb_ary_modify): use RARRAY_RAWPTR(). * array.c (ary_make_substitution, rb_ary_s_create, ary_make_partial, rb_ary_splice, rb_ary_resize, rb_ary_rotate_m, rb_ary_times): use ary_memcpy(). |
6e3c4fd8b53f1bfa5741d6a1f88139837f631bef
|
2013-07-19 |
* array.c: reduce shady operations. * array.c (rb_ary_modify, ary_make_partial, rb_ary_splice, rb_ary_replace, rb_ary_eql, rb_ary_compact_bang): use RARRAY_RAWPTR() instead of RARRAY_PTR(). * array.c (rb_ary_shift): use RARRAY_PTR_USE() without WB because there are not new relations. * array.c (ary_ensure_room_for_unshift): ditto. * array.c (rb_ary_sort_bang): ditto. * array.c (rb_ary_delete_at): ditto. * array.c (rb_ary_reverse_m): use RARRAY_RAWPTR() because there are not new relations. |
79d557ffcdf189e42f6fb729402d787624bd69b2
|
2013-07-19 |
* gc.c: declare type_name() at the beggining of file. |
45e8268d62add210f3a9a93f677f255f96bb0cff
|
2013-07-20 |
* array.c (ary_make_shared): make shared array shady. Making non-shady shared array causes SEGV (see rubyci). It seems a bug around shared array. |
3a20287053640a97896f701f264f8a0fccec7c6a
|
2013-07-20 |
* array.c (rb_ary_resize): use simple memcpy because there are no new references. |
4132ac3762c96d1180df14ca34848e1a9e7569ea
|
2013-07-22 |
* gc.c (gc_slot_sweep): need to add empty RVALUE as freeobj. |
8eb0a3cd5020ba2eeb540e4fd81fb88e43305ae4
|
2013-07-22 |
* array.c (ary_memfill): added. * array.c (rb_ary_initialize): use ary_memfill(). * array.c (rb_ary_fill): ditto. * array.c (rb_ary_slice_bang): use RARRAY_RAWPTR() because this code creates no new references. |
8160fab8bcdd7dc4e70ae0ddd195d4dc942f8637
|
2013-07-22 |
* array.c (ary_resize_capa): use RARRAY_RAWPTR() because this code creates no new references. |
511e155e24fbd21bd028b19de04aeab6b98109df
|
2013-07-23 |
* gc.c (heap_get_freeobj): clear slot->freelist here. This means that this slot doesn't have any free objects. And store this slot with objspace->heap.using_slot. * gc.c (gc_before_sweep): restore objspace->freelist into objspace->heap.using_slot->freelist. This means that using_slot has free objects which are pointed from objspace->freelist. * gc.c (gc_slot_sweep): do not need to clear slot->freelist. |
374219291946885509dac502230c1084b0058238
|
2013-07-23 |
* gc.c (gc_before_sweep): fix spacing. |
bd058912da6ffef92a50fe759b1bae210ec82ea4
|
2013-07-23 |
* thread_native.h: added. Move native thread related lines from vm_core.h. And declare several functions "rb_nativethread_lock_*", manipulate locking. * common.mk: add thread_native.h. * thread.c: add functions "rb_nativethread_lock_*". * thraed.c, thread_[pthread,win32].[ch]: rename rb_thread_lock_t to rb_nativethread_lock_t to make it clear that this lock is for native thraeds, not for ruby threads. |
55201cac9ea35420ef63880323d75f603374413e
|
2013-07-23 |
* ext/openssl/ossl.c: use system native (system provided) thread locking APIs added by last commit. This patch fixes [Bug #8386]. "rb_mutex_*" APIs control only "Ruby" threads. Not for native threads. |
2b1088c89fd003aefa4b3bc585ae5e041334fe0b
|
2013-07-23 |
* thread_pthread.h, thread_win32.h: rename rb_thread_id_t to rb_nativethread_id_t. * thread_pthread.c, vm_core.h: use rb_nativethread_id_t. |
b2bcef7294d1a65363773cfc97ade6bd286ee63a
|
2013-07-23 |
* thread_native.h: add rb_nativethread_self() which returns current running native thread identifier. * thread_[pthread|win32].c: implement rb_nativethread_self(). |
4d3feac974f7b854c809f32541a30fa1be817540
|
2013-07-23 |
* thread_(pthread|win32).h: rename rb_thread_cond_t to rb_nativethread_cond_t. * thread.c, thread_pthread.c, thread_win32.c, vm_core.h: catch up renaming. |
e93e38d165f510aefb541235491347bb69a80d62
|
2013-07-23 |
* test/-ext-/tracepoint/test_tracepoint.rb: add GC on/off to count GC events strictly. |
33ebcb053809f36a5a244cd587349389958c4d33
|
2013-07-24 |
* array.c, gc.c: move ary_unprotect_logging() into rb_gc_unprotect_logging() which is general version * include/ruby/ruby.h: add USE_RGENGC_LOGGING_WB_UNPROTECT to enable. |
d9a556548e411c02e9bd0b7ca740062d8d6170d4
|
2013-07-24 |
* vm_insnhelper.c (vm_expandarray): use RARRAY_RAWPTR() instead of RARRAY_PTR() because there is no new reference. * vm_insnhelper.c (vm_caller_setup_args): ditto. * vm_insnhelper.c (vm_yield_setup_block_args): ditto. |
714428154d5c64ae10a4d8d80f1cf1b05dc15f24
|
2013-07-24 |
* compile.c (iseq_set_arguments): use RARRAY_RAWPTR() instead of RARRAY_PTR() because there is no new reference. * compile.c (iseq_set_exception_table): ditto. |
dda113e3ff954064f718c73a114bb01361b5d205
|
2013-07-25 |
* ext/openssl/ossl.c: support additional three thread synchronization functions. [ruby-trunk - Bug #8386] |
72293b69f8a6bd087bdccb9b0ccfec2e1d6af430
|
2013-07-25 |
* encoding.c (check_encoding): Check T_DATA or not. is_data_encoding(obj) assumes that `obj' is T_DATA. |
d320b2d9e9d4d6dbb73c85df433f8b5559f7d716
|
2013-07-26 |
* array.c (ary_memcpy): try to enable optimization. At least on my environments, I don't see any errors with many trials. Please tell us if you find any GC bugs. |
d462261395534207d71d07f4a47a6860cf9349bb
|
2013-07-26 |
* array.c (ary_memcpy): cast to int to suppress a warning. |
621da983093b0877d061c0fa081c0301ea8ffd3f
|
2013-07-26 |
* vm_exec.h, tool/instruction.rb: not an error, but a BUG if stack overflow checking failed just before/after the beginning of an instruction. It should be treated as a BUG. Please tell us if your code cause BUG with this problem. This check will removed soon (for performance). |
22468a4f92c7fa7a08e53a674285183b1af49ed4
|
2013-08-06 |
* vm_insnhelper.c (vm_push_frame): fix stack overflow check codes. Stack overflow check should be done *after* pushing a stack frame. However, some stack overflow checking codes checked *before* pushing a stack frame with iseq->stack_max. To solve this problem, add a new parameter `stack_max' to specify a possible consuming stack size. * vm_core.h (CHECK_VM_STACK_OVERFLOW0): add to share the stack overflow checking code. * insns.def: catch up this change. * vm.c, vm_eval.c: ditto. * test/ruby/test_exception.rb: add a stack overflow test. This code is reported by nobu. |
b7bc4706fa92d6e774ea7ca2e0f8929e360a50d1
|
2013-08-06 |
* vm_insnhelper.c (vm_push_frame): change type of stack_max to size_t. |
7a23eb1c41414a081662a5f89f35fadb59402759
|
2013-08-07 |
* thread.c (thread_start_func_2): use RARRAY_RAWPTR() instead of RARRAY_PTR() because there is no new reference. |
8741a39777e76c31f0bdc7b3dcc4ecb03a4c1784
|
2013-08-07 |
* random.c (random_load): use RARRAY_RAWPTR() instead of RARRAY_PTR() because there is no new reference. |
382abb7526eda9dd50c004f654b542297c77fac1
|
2013-08-07 |
* cont.c (rb_fiber_start): use RARRAY_RAWPTR() instead of RARRAY_PTR() because there is no new reference. * proc.c (curry): ditto. * proc.c (rb_proc_call): remove line break. |
c9d01961f18d4fe5a3390322ba84af4a1b1ed6b5
|
2013-08-08 |
* include/ruby/ruby.h: add old macro name `RUBY_EVENT_SWITCH'. This macro name is obsolete because it is renamed to RUBY_INTERNAL_EVENT_SWITCH, but it has compatibility problem using this macro name like ruby-prof. I want to remove this macro after ruby 2.1. |
3aea31c101ad28aa774a1c5fcbad5a0b53dc78be
|
2013-08-08 |
* include/ruby/ruby.h: define USE_RGENGC_LOGGING_WB_UNPROTECT. |
e0932e3ad38a0740e65478bd85897db734980083
|
2013-08-08 |
* string.c (rb_str_format_m): use RARRAY_RAWPTR() instead of RARRAY_PTR() because there is no new reference. |
2391ee2c6130797d2885da0fb1180bfba737971a
|
2013-08-08 |
* thread.c (rb_threadptr_pending_interrupt_check_mask): use RARRAY_RAWPTR() instead of RARRAY_PTR() because there is no new reference. |
568c5a8193006d12a47befaf493d1bbd76a5a5cd
|
2013-08-09 |
* proc.c: add Binding#local_variable_get/set/defined? to access local variables which a binding contains. Most part of implementation by nobu. * test/ruby/test_proc.rb: add a tests for above. * vm.c, vm_core.h (rb_binding_add_dynavars): add a new function to add a new environment to create space for new local variables. |
a39e724dfe64a7f50d9e024b73bfcad16ded2322
|
2013-08-09 |
* NEWS: update about new methods for Binding. |
9af743fe0e8c7aa7a25a6805a64d499aab3032af
|
2013-08-12 |
* class.c (rb_prepend_module): make T_ICLASS object shady because this T_ICLASS object seems to share method table with other class objects. It was causes WB miss. TODO: need to know the data structure. * test/ruby/test_module.rb: add a test for WB miss. |
5cd2fb2ebbedf5fd0fd12fd3a5d4a90bcbe2dca3
|
2013-08-15 |
* gc.c (gc_lazy_sweep): remove heap_increment() here because heap_inc may be 0. |
769715bda562feab2b30aefeda9f83c72624e163
|
2013-08-16 |
* test/profile_test_all.rb: refactoring memory profiling tool for test-all. Add profiling targets /proc/meminfo and /proc/self/status. * test/runner.rb: accept other than 'true'. |
55251d0c83cf4c0946a2aa6aebe1bdceb9777ea6
|
2013-08-16 |
* test/profile_test_all.rb: remove space characters from test names. |
ff377d9e81e9c0e58ba1034b1b58cfb68d63c301
|
2013-08-16 |
* test/profile_test_all.rb: fix typo. |
e4f51f80d08a34318ae9f10d0d8591faaf786f9d
|
2013-08-19 |
* test/profile_test_all.rb: add `failed?' information. |
158f3547e91792658b6881e32e20ca079af585da
|
2013-08-19 |
* test/ruby/test_fiber.rb: collect garbage fibers immediately. |
21ecf88ce0bb50dd2014a78e41c78db48f7b0bff
|
2013-08-19 |
* gc.c: fix around GC_DEBUG. * gc.c (RVALUE::line): should be VALUE. On some environment (such as mswin64), `int' introduces alignment mismatch. * gc.c (newobj_of): add an assertion to check VALUE alignment. * gc.c (aligned_malloc): `&' is low priority than `=='. * gc.c: define GC_DEBUG everytime and use it as value 0 or 1. |
326bf140b4c5b6c9858a0bddd9122c4f691af2cb
|
2013-08-20 |
* gc.c (rb_gcdebug_print_obj_condition): add printing information. |
30b1947df2da2192f7fcc812ac88dc1884715322
|
2013-08-20 |
* insns.def: fix regexp's once option behavior. fix [ruby-trunk - Bug #6701] * insns.def: remove `onceinlinecache' and introduce `once' instruction. `once' doesn't use `setinlinecache' insn any more. * vm_core.h: `union iseq_inline_storage_entry' to store once data. * compile.c: catch up above changes. * iseq.c: ditto. * vm.c, vm_insnhelper.c: ditto. fix `m_core_set_postexe()' which is depend on `onceinlinecache' insn. * test/ruby/test_regexp.rb: add tests. * iseq.c: ISEQ_MINOR_VERSION to 1 (should increment major?) |
7e5d63f48308c470b026de9b89a8e094f94363e0
|
2013-08-22 |
* compile.c (rb_iseq_compile_node): accept NODE_IFUNC to support custom compilation. * compile.c (NODE_POSTEXE): compile to "ONCE{ VMFrozenCore::core#set_postexe{...} }" with a new custom compiler `build_postexe_iseq()'. * vm.c (m_core_set_postexe): remove parameters (passed by a block). |
5a87332ef990798186844fc682175af0e009457f
|
2013-08-22 |
* compile.c (build_postexe_iseq): fix to setup the local table. |
c50d45fc96ad876bd919b95f4ede258a420317b3
|
2013-08-23 |
* array.c: introduce ARY_SHARED_OCCUPIED(shared). |
5bcdc68c6e41b1c2b1cb5ce82c64036df80e48de
|
2013-08-23 |
* array.c (ary_make_shared): shared ary as shady. Need more effort to make it normal object. * array.c (rb_ary_modify): use RARRAY_PTR_USE() without WB because there are not new relations. * array.c (ary_ensure_room_for_unshift): use RARRAY_RAWPTR() because there are not new relations. |
ad0ef29da7ac37b978c281b1e0070fbb6afbe2e6
|
2013-08-26 |
* array.c (rb_ary_splice): use RARRAY_PTR_USE() without WB because there are not new relations. * enum.c (enum_sort_by): ditto. * struct.c (setup_struct): use RARRAY_RAWPTR(). * vm_eval.c (yield_under): ditto. * ext/pathname/pathname.c (path_entries): use RARRAY_AREF(). * ext/pathname/pathname.c (path_s_glob): ditto. |
c4fe5260114482143943bead5b68a628a047c863
|
2013-08-27 |
* gc.c (gc_profile_clear): do rest_sweep() before clearing profile.current_record. |
69c8ab256d8e3609dec98a763288b87cd1278f6b
|
2013-08-27 |
* ext/stringio/stringio.c (strio_read_nonblock): declare local variables at the first of function. |
5da55dfcb480ab2c3a5c2162ee004b155c198099
|
2013-08-29 |
* struct.c (rb_struct_define_without_accessor_under): added. This function is similar to rb_define_class_under() against rb_define_class(). * include/ruby/intern.h: add a declaration of this function. |
41234c5ca3b40851a9e9bd16d95a10923754b937
|
2013-09-02 |
* vm_insnhelper.c (vm_search_super_method): use ci->argc instead of ci->orig_argc. ci->argc can be changed by splat arguments. [ruby-list:49575] This fix should be applied to Ruby 2.0.0 seriese. * test/ruby/test_super.rb: add a test for above. |
1e27eda2fa313865bda1246175b3d6ebfe8cc533
|
2013-09-19 |
* include/ruby/ruby.h: make Symbol objects frozen. [Feature #8906] I want to freeze this good day, too. * test/ruby/test_eval.rb: catch up this change. * test/ruby/test_symbol.rb: add a test to check frozen symbols. |
b23bbb12f2f146024743efccae3a793572f62dea
|
2013-09-19 |
* NEWS: add a news for r42974. |
d12d47c4beba330862f492fc556b862436652df2
|
2013-09-25 |
* test/rdoc/test_rdoc_generator_darkfish.rb: add a guard for windows. |
dc626dbab3caaf221c9c7b88a5500ae878615712
|
2013-09-25 |
* include/ruby/ruby.h: rename RARRAY_RAWPTR() to RARRAY_CONST_PTR(). RARRAY_RAWPTR(ary) returns (const VALUE *) type pointer and usecase of this macro is not acquire raw pointer, but acquire read-only pointer. So we rename to better name. RSTRUCT_RAWPTR() is also renamed to RSTRUCT_CONST_PTR() (I expect that nobody use it). * array.c, compile.c, cont.c, enumerator.c, gc.c, proc.c, random.c, string.c, struct.c, thread.c, vm_eval.c, vm_insnhelper.c: catch up this change. |
9215982a1f254b01e4e75ee49a86db8bbeab026b
|
2013-09-25 |
* README.EXT, README.EXT.ja: remove description of RARRAY_PTR() and add a caution of accessing internal data structure directly. Also add a description of rb_ary_store(). [Bug #8399] |
f365cd2c9aa4018044cc4005d1d2309faff6b58c
|
2013-09-27 |
* gc.c: simplify threshold of GC caused by malloc_increase. Now, malloc_limit is increased/decreased by mysterious logic. This fix simplify malloc_limit increase/decrease logic such as: if (malloc_increase > malloc_limit) /* so many malloc */ malloc_limit += malloc_limit * (GC_MALLOC_LIMIT_FACTOR-1); else malloc_limit -= malloc_limit * (GC_MALLOC_LIMIT_FACTOR-1)/4; Default value of GC_MALLOC_LIMIT_FACTOR is 1.8. malloc_limit is bounded by GC_MALLOC_LIMIT_MAX (256MB by default). This logic runs at before_sweeep(). So there are no effect from caused by lazy sweep. And we can remove malloc_increase2. * gc.c (HEAP_MIN_SLOTS, FREE_MIN, HEAP_GROWTH_FACTOR): rename to GC_HEAP_MIN_SLOTS, GC_FREE_MIN, GC_HEAP_GROWTH_FACTOR respectively. Check them by `#ifndef' so you can specify these values outside gc.c. * gc.c (ruby_gc_params_t): add initial_malloc_limit_factor and initial_malloc_limit_max. * gc.c (vm_malloc_prepare, vm_xrealloc): use vm_malloc_increase to add and check malloc_increase. |
752cc234f645b26b64dfbbf12b4fcdae4e96f8dc
|
2013-09-27 |
* gc.c: add some fine-grained profiling codes to tuning marking phase. If you enable RGENGC_PRINT_TICK to 1, then profiling results by RDTSC (on x86/amd64 environment) are printed at last. Thanks Yoshii-san. |
78a49728b2198db692cae1418601bf1b8c61cb08
|
2013-09-27 |
* gc.c (gc_before_sweep): cast to size_t to suppress warnings. |
a31ff891a17f0dcf8c070b882fe89be89837e7c5
|
2013-09-27 |
* gc.c (GC_MALLOC_LIMIT): 8,000,000 -> 8 * 1,024 * 1,024. |
2c0d74b7085edba6557b32a3f48ef8a03d194eb4
|
2013-09-27 |
* gc.c: add two GC tuning environment variables. RUBY_GC_MALLOC_LIMIT_MAX and RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR. See r43067 for details. * gc.c (rb_gc_set_params): refactoring. And change verbose notation. Mostly duplicated functions get_envparam_int/double is not cool. Please rewrite it. * test/ruby/test_gc.rb: fix a test for this change. |
1d90d0ced96691fb19c136698b341d6705ac6b30
|
2013-09-30 |
* gc.c (rb_gc_disable): do rest_sweep() before disable GC. This fix may solve a failure of TestTracepointObj#test_tracks_objspace_events [test/-ext-/tracepoint/test_tracepoint.rb:43]. |
1450e0b5ac0a49aa1f0d1db521b293b18f6fa99c
|
2013-09-30 |
* ext/objspace/object_tracing.c: add new 3 methods to control tracing. * ObjectSpace::trace_object_allocations_start * ObjectSpace::trace_object_allocations_stop * ObjectSpace::trace_object_allocations_clear And some refactoring. * test/objspace/test_objspace.rb: add a test for new methods. * NEWS: add a description for new methods. |
1d4e3d48c20325d541a24130de68ec81e92551b4
|
2013-09-30 |
* ext/objspace/object_tracing.c: [DOC] add some nots for ObjectSpace::trace_object_allocations. |
8c0033a7b625ebf8d3f809791a90512464efdbed
|
2013-10-02 |
* gc.c: relax GC condition due to malloc_limit. * gc.c (GC_MALLOC_LIMIT_MAX): change default value (256MB -> 512MB) and permit zero to ignore max value. * gc.c (vm_malloc_increase, vm_xrealloc): do not cause GC on realloc. * gc.c (gc_before_sweep): change debug messages. |
fa105e6c203ea14deb1baf04aeb1ef2a471d1a1c
|
2013-10-03 |
* gc.c: define gc_profile_record::allocated_size if CALC_EXACT_MALLOC_SIZE is true. |
12f368d6a48d7eb35a9c802d1ae4824b876f7c74
|
2013-10-07 |
* iseq.c, internal.h: change to public (but internal) functions * VALUE rb_iseq_path(VALUE iseqval); * VALUE rb_iseq_absolute_path(VALUE iseqval); * VALUE rb_iseq_label(VALUE iseqval); * VALUE rb_iseq_base_label(VALUE iseqval); * VALUE rb_iseq_first_lineno(VALUE iseqval); And new (temporary) function: * VALUE rb_iseq_klass(VALUE iseqval); * iseq.c. vm_core.h (int rb_iseq_first_lineno): remove function `int rb_iseq_first_lineno(const rb_iseq_t *iseq)'. Use `VALUE rb_iseq_first_lineno(VALUE iseqval)' instead. * proc.c. vm_insnhelper.c, vm_method.c: catch up this change. |
40b1aa9adf04fbd02dcd4bab1197659625951200
|
2013-10-07 |
* proc.c: catch up last commit. Type of return value of rb_iseq_first_lineno() is now VALUE. * vm_insnhelper.c (argument_error): ditto. * vm_method.c (rb_method_entry_make): ditto. |
774bff0adb44eaf5c806afb1bf9eff65d26b2f1f
|
2013-10-07 |
* include/ruby/debug.h: add backtrace collecting APIs for profiler. * int rb_profile_frames(int start, int limit, VALUE *buff, int *lines); Collect information of frame information. * VALUE rb_profile_frame_path(VALUE frame); * VALUE rb_profile_frame_absolute_path(VALUE frame); * VALUE rb_profile_frame_label(VALUE frame); * VALUE rb_profile_frame_base_label(VALUE frame); * VALUE rb_profile_frame_first_lineno(VALUE frame); * VALUE rb_profile_frame_classpath(VALUE frame); * VALUE rb_profile_frame_singleton_method_p(VALUE frame); Get information about each frame. These APIs are designed for profilers, for example, no objectallocation, and enough information for profilers. In this version, this API collects only collect Ruby level frames. This issue will be fixed after Ruby 2.1. * vm_backtrace.c: implement above APIs. * iseq.c (rb_iseq_klass): return local_iseq's class. |
ef7df5a414852b172a330fb93a8901d203f8e4c9
|
2013-10-07 |
* ext/-test-/debug/profile_frames.c: test/-ext-/debug/test_profile_frames.rb: add a test for new C-APIs. |
6b5d5e53223eb4c50832f6e1f24a66638131a44e
|
2013-10-07 |
* test/-ext-/debug/test_profile_frames.rb: rename class C to something long name because one test depends on absence of class ::C. |
cff2b2b66626e5aee5598f98b1f855249ca2f282
|
2013-10-08 |
* vm_backtrace.c, include/ruby/debug.h: add new APIs * VALUE rb_profile_frame_method_name(VALUE frame) * VALUE rb_profile_frame_qualified_method_name(VALUE frame) * iseq.c (rb_iseq_klass), internal.h: add new internal function rb_iseq_method_name(). * ext/-test-/debug/profile_frames.c (profile_frames), test/-ext-/debug/test_profile_frames.rb: add a test. |
b753b9606e6329c62d385512ea173171c7c07146
|
2013-10-09 |
* include/ruby/debug.h, vm_backtrace.c (rb_profile_frame_full_label): add new C API rb_profile_frame_full_label() which returns label with qualified method name. Note that in future version of Ruby label() may return same return value of full_label(). * ext/-test-/debug/profile_frames.c, test/-ext-/debug/test_profile_frames.rb: fix a test for this change. |
dcad4bda588c999d396dc3405bb1bfd241ae5c8b
|
2013-10-09 |
* test/ruby/test_rand.rb: fix r43224. local variable `e' is no longer available. |
fa7bf880b4f351cd99978f7d096510aad137ca18
|
2013-10-10 |
* vm_trace.c (postponed_job): use preallocated buffer. Pre-allocate MAX_POSTPONED_JOB (1024) sized buffer and use it. If rb_postponed_job_register() cause overflow, simply it fails and returns 0. And maybe rb_postponed_job_register() is signal safe. * vm_core.h: change data structure. |
4599d3efd7bfda591fd29e5647af2d5aa8be486c
|
2013-10-10 |
* vm.c (vm_exec): support :b_return event for "lambda{return}.call". [Bug #8622] * test/ruby/test_settracefunc.rb: add a test. |
19ae2748c7da2eaba7a62c07c242230731cf56b2
|
2013-10-11 |
revert r43248. Should not set interrupt_flag. |
76f9281b925680a49103e344b44fc1dc4a356721
|
2013-10-11 |
* vm_trace.c (rb_postponed_job_flush): simplify. |
542b31ca278ef5b2314ac3186067cda5615b040a
|
2013-10-11 |
* vm_trace.c (rb_postponed_job_flush): fix bit operation. |
33ab98f9e690b6505804a10b08e66fb366f9838b
|
2013-10-11 |
* ext/objspace/gc_hook.c: prohibit reentrant. |
f44b0e5b4fbeb58fa1b5cff2be44c359f9438cf7
|
2013-10-11 |
* gc.c, parse.y: support generational Symbol relatetd marking. Each symbols has String objects respectively to represent Symbols. These objects are marked only when: * full marking * new symbols are added This hack reduce symbols (related strings) marking time. For example, on my Linux environment, the following code "20_000_000.times{''}" with 40k symbols (similar symbol number on Rails 3.2.14 app, @jugyo tells me) boosts, from 7.3sec to 4.2sec. |
f6fcb9cc94e1934ebb06d6df7106a7634ec681f9
|
2013-10-11 |
* gc.c: use __GNUC__ instead of __GCC__. |
432834dd35937665abcc30b0393fd857e1921553
|
2013-10-11 |
* gc.c: use terminology `full_mark' instead of `minor_gc' in mark functions. |
588586d9d4a15fdf982291eb59484fd6f7273417
|
2013-10-11 |
* internal.h, parse.y: use `full_mark' instead of `full_marking'. |
7aecb95637e222bcc46453059a8b306e9197b063
|
2013-10-11 |
* class.c, variable.c, gc.c (rb_class_tbl): removed. rb_class_tbl is no longer used. |
9d70a17541782493c7cf5d0dceafadccc2424bd8
|
2013-10-11 |
revert r43259 because it is possible to mark miss classes defined in C-exts. Thanks charliesome. |
86b2e9d090e9a614400d2ca6f0d24ee5698ad1dd
|
2013-10-11 |
* vm_method.c (rb_gc_mark_unlinked_live_method_entries): revert last commit to introduce debug prints. |
52c1331763d8b9b8d6362987e6f8847b65ed7f57
|
2013-10-11 |
* class.c, variable.c, gc.c (rb_class_tbl): removed. * vm.c, vm_core.h (rb_vm_add_root_module): added to register as a defined root module or class. This guard helps mark miss from defined classes/modules they are only refered from C's global variables in C-exts. Basically, it is extension's bug. Register to hash object VM has. Marking a hash objects allows generational GC supports. * gc.c (RGENGC_PRINT_TICK): disable (revert). |
f24101682560b68dfec4667895d746a42e6ab7b1
|
2013-10-15 |
* gc.h (rb_objspace_reachable_objects_from_root): added. This API provides information which objects are root objects. `category' shows what kind of root objects. * gc.c (gc_mark_roots): separate from gc_marks_body(). |
ede6826186a7a2f4380d23a9f46f0bc4b9e50473
|
2013-10-16 |
* ext/objspace/objspace.c: add a new method `reachable_objects_from_root'. ObjectSpace.reachable_objects_from_root returns all objects refered from root (called "root objects"). This feature is for deep object analysis. * test/objspace/test_objspace.rb: add a test. |
c6b599e1b60c6cd99f0276290c53d95731a26238
|
2013-10-16 |
* NEWS: add a line into NEWS for last commit. |
955a38da08b64a1c4092f6f8cc3527ce50598092
|
2013-10-16 |
* error.c, internal.h (rb_bug_reporter_add): add a new C-API. rb_bug_reporter_add() allows to register a function which is called at rb_bug() called. * ext/-test-/bug_reporter/bug_reporter.c: add a test for this C-API. * ext/-test-/bug_reporter/extconf.rb: ditto. * test/-ext-/bug_reporter/test_bug_reporter.rb: ditto. |
f928c326ca3b6af1610ceb7e8b945aba30bb0ff1
|
2013-10-16 |
* bootstraptest/runner.rb: check nil before calling `signal?' for a process status. |
17e1c7237b6d3186b76af46ec0d087df1f526eeb
|
2013-10-16 |
* ext/objspace/object_tracing.c: add new method ObjectSpace.trace_object_allocations_debug_start for GC debugging. If you encounter the BUG "... is T_NONE" (and so on) on your application, please try this method at the beggining of your app. |
f9718bf703a9cffdc47b6fb69f77ffcb0a838655
|
2013-10-16 |
* error.c (rb_bug_reporter_add): return simply 0 if failed. Please check return value. |
82d06c5adeaa54e451e9f873d63b27e3e47f91db
|
2013-10-16 |
* gc.c (objspace_each_objects): do not skip empty RVALUEs. |
3304eb208af0b9062093cc9cd2042ba6d7e42418
|
2013-10-16 |
* ext/objspace/object_tracing.c (newobj_i): add workaround. some bugs hits this check. * ext/objspace/object_tracing.c (object_allocations_reporter_i): cast as pointer. |
3f2828078273ec2b92afe27d3b081049bca2bcd2
|
2013-10-17 |
* ext/objspace/object_tracing.c (newobj_i): fix memory leak. There is possibility to remain info due to missing FREEOBJ event. FREEOBJ events are skipped while suppress_tracing state, for example, during trace events are invoking. |
8ac4f421e13adc2216b4056ab241136066548e7e
|
2013-10-17 |
* gc.c, internal.h: add new internal memory mangement functions. * void *ruby_xsizedrealloc(void *ptr, size_t new_size, size_t old_size) * void ruby_xsizedfree(void *x, size_t size) These functions acccept additional size parameter to calculate more accurate malloc_increase parameter which control GC timing. [Feature #8985] |
3de7ec0a3f74932d1b65089e606f194cb816e165
|
2013-10-17 |
* array.c, string.c: use ruby_xsizedfree() and ruby_xsizedrealloc(). * internal.h (SIZED_REALLOC_N): define a macro as REALLOC_N(). |
76b06555d05bbf320e2014762efd310de11f0068
|
2013-10-17 |
* gc.c, internal.h: rename ruby_xsizefree/realloc to rb_sized_free/realloc. * array.c: catch up these changes. * string.c: ditto. |
cf0106827d805eb8965e8a3b00baaef694c1c710
|
2013-10-17 |
* string.c (STR_HEAP_SIZE): includes TERM_LEN(str). * string.c (rb_str_memsize): use STR_HEAP_SIZE(). |
ee4da732e3fce5cf30bb8a9f854f6134ec1d4933
|
2013-10-17 |
* gc.c (CALC_EXACT_MALLOC_SIZE_CHECK_OLD_SIZE): introduced. This macro enable checker compare with allocated memory and declared old_size of sized_xfree and sized_xrealloc. |
b443d83a770092d02cfccd9ac3cbc96cb51c0d5e
|
2013-10-18 |
* gc.c: change terminology of heap. Change "slot" to "page". "Slot" is a space of RVALUE. 1. "Heap" consists of a set of "heap_page"s (pages). 2. Each "heap_page" has "heap_page_body". 3. "heap_page_body" has RVALUE (a.k.a. "slot") spaces. 4. "sorted" is a sorted array of "heap_page"s, sorted by address of heap_page_body (for "is_pointer_to_heap"). See https://bugs.ruby-lang.org/attachments/4008/data-heap_structure.png. |
14c08fdb8864b3765e28ae6818ce7d1eefbf4e3e
|
2013-10-18 |
* gc.c: fix rb_objspace_t. * make "struct heap" and move most of variables in rb_objspace_t::heap. * rename rb_objspace_t::heap::sorted to rb_objspace_t::heap_sorted_pages and make a macro heap_sorted_pages. * rename rb_objspace_t::heap::range to rb_objspace_t::heap_range and rename macros lomem/himem to heap_lomem/heap_himem. |
f5b15f0e3f6d3f3b3467059802e24c8de0d9d361
|
2013-10-22 |
* vm_trace.c: exterminate Zombies. There is a bug that T_ZOMBIE objects are not collected. Because there is a pass to miss finalizer postponed job with multi-threading. This patch solve this issue. * vm_trace.c (rb_postponed_job_register_one): set RUBY_VM_SET_POSTPONED_JOB_INTERRUPT(th) if another same job is registered. There is a possibility to remain a postponed job without interrupt flag. * vm_trace.c (rb_postponed_job_register_one): check interrupt carefully. * vm_trace.c (rb_postponed_job_register_one): use additional space to avoid buffer full. * gc.c (gc_finalize_deferred_register): check failure. * thread.c (rb_threadptr_execute_interrupts): check `postponed_job_interrupt' immediately. There is a possibility to miss this flag. |
d6fe84b6f3694211ec7b6746c02018cb04a82a86
|
2013-10-22 |
* gc.c: allow multiple heaps. Now, objects are managed by page. And a set of pages is called heap. This commit supports multiple heaps in the object space. * Functions heap_* and rb_heap_t manages heap data structure. * Functions heap_page_* and struct heap_page manage page data strcuture. * Functions heap_pagse_* and struct rb_objspace_t::heap_pages maintains all pages. For example, pagaes are allocated from the heap_pages. See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design and https://bugs.ruby-lang.org/attachments/4015/data-heap_structure_with_multiple_heaps.png for more deitals. Now, there is only one heap called `eden', which is a space for all new generated objects. |
3d85d6edb5064848fea9a27727eb0a7a6d525417
|
2013-10-22 |
* gc.c (Init_heap): move logics from heap_pages_init() and remove heap_pages_init(). |
29ffa2c2733cbeaf0c018579b65d9719ed6c7902
|
2013-10-23 |
* gc.c (gc_prof_sweep_timer_stop): catch up recent changes to compile on GC_PROFILE_MORE_DETAIL=1. |
69d787ff6d144924b19bbace7dbe03b3bb43da4d
|
2013-10-23 |
* gc.c: introduce tomb heap. Tomb heap is where zombie objects and ghost (freed slot) lived in. Separate from other heaps (now there is only eden heap) at sweeping helps freeing pages more efficiently. Before this patch, even if there is an empty page at former phase of sweeping, we can't free it. Algorithm: (1) Sweeping all pages in a heap and move empty pages from the heap to tomb_heap. (2) Check all exsisting pages and free a page if all slots of this page are empty and there is enough empty slots (checking by swept_num) To introduce this pach, there are several tuning of GC parameters. |
99c4e43d6aacf4c510cf86be0076ec61dad42730
|
2013-10-23 |
* gc.c (heap_pages_free_unused_pages): cast to (int) for size_t variable `i'. |
602241142febadfcca9c0536c92d78d672456d3a
|
2013-10-23 |
* gc.c: move increment from heap to heap_pages. Share `increment' information with heaps. * gc.c: change ratio of heap_pages_free_min_page to 0.80. This change means slow down page freeing speed. |
98feb2b9bfca61414c3909b538b158ea212d6663
|
2013-10-25 |
* gc.c (gc_before_heap_sweep): fix freelist management. After rb_gc_force_recycle() for a object blonging to heap->freelist, `heap->using_page->freelist' is not null. |
6c458aec30a95695a3a7d20b6cf37fb4dbfd753a
|
2013-10-26 |
* gc.c (vm_malloc_increase): do gc_rest_sweep() before GC. gc_rest_sweep() can reduce malloc_increase, so try it before GC. Otherwise, malloc_increase can be less than malloc_limit at gc_before_sweep(). This means that re-calculation of malloc_limit may be wrong value. |
286d567bbffb1baef497ecfe9a91fa690ecb7526
|
2013-10-26 |
* gc.c: tuning parameters. * gc.c (GC_MALLOC_LIMIT): change default value to 16MB. * gc.c (GC_MALLOC_LIMIT_GROWTH_FACTOR): change default value to 2.0. * gc.c (gc_before_sweep): change decrease ratio of `malloc_limit' from 1/4 to 1/10. |
d03912898e8fd37ad9ad82a9e6765fe8f1d78536
|
2013-10-26 |
* gc.c (gc_sweep, gc_heap_lazy_sweep): fix measurement code. We only need one sweep time measurement without lazy sweep. |
b848aad5bf2c4379ca48ff69b4188aa614a18ee9
|
2013-10-26 |
* gc.c (gc_profile_dump_on): use "Page" terminology. |
97f0de6d90d9e804386f708172b5a75c277cb38c
|
2013-10-29 |
* gc.c (heap_page_resurrect): return a page in tomb heap even if freelist is NULL. |
5aa527fadee91ef03e4a3acb173b8da5f56a43ac
|
2013-10-29 |
* gc.c (vm_malloc_increase): decrease it more carefully. |
52811ab159e7a9927eba9aa30bc14684ff0852fe
|
2013-10-29 |
* include/ruby/ruby.h: introduce new flags for T_TYPEDDATA. * RUBY_TYPED_FREE_IMMEDIATELY: free the data given by DATA_PTR() with dfree function immediately. Otherwise (default), the data freed at finalizaton point. * RUBY_TYPED_WB_PROTECTED: make this object with FL_WB_PROTECT (not shady). * gc.c (obj_free): support RUBY_TYPED_FREE_IMMEDIATELY. |
5c1b9b38d69dc2d4b9d6e8f4330ae9e11a22da09
|
2013-10-29 |
* vm_trace.c (tp_free): remvoed because empty free function. Use RUBY_TYPED_NEVER_FREE instead. |
0c6940b718a5a552c4c15e84a5f0eec81a26ad0f
|
2013-10-29 |
* include/ruby/ruby.h: fix typo (FL_WB_PROTECT -> FL_WB_PROTECTED). |
c5e08b764eb342538884b383f0e6428b6faf214b
|
2013-10-29 |
* add RUBY_TYPED_FREE_IMMEDIATELY to data types which only use safe functions during garbage collection such as xfree(). On default, T_DATA objects are freed at same points as fianlizers. This approach protects issues such as reported by [ruby-dev:35578]. However, freeing T_DATA objects immediately helps heap usage. Most of T_DATA (in other words, most of dfree functions) are safe. However, we turned off RUBY_TYPED_FREE_IMMEDIATELY by default for safety. * cont.c: ditto. * dir.c: ditto. * encoding.c: ditto. * enumerator.c: ditto. * error.c: ditto. * file.c: ditto. * gc.c: ditto. * io.c: ditto. * iseq.c: ditto. * marshal.c: ditto. * parse.y: ditto. * proc.c: ditto. * process.c: ditto. * random.c: ditto. * thread.c: ditto. * time.c: ditto. * transcode.c: ditto. * variable.c: ditto. * vm.c: ditto. * vm_backtrace.c: ditto. * vm_trace.c: ditto. * ext/bigdecimal/bigdecimal.c: ditto. * ext/objspace/objspace.c: ditto. * ext/stringio/stringio.c: ditto. * ext/strscan/strscan.c: ditto. |
667a519db301292b33ed88614af776df1c5f0563
|
2013-10-31 |
* vm_method.c (rb_method_entry_make): fix to pass an ISeq value. OBJ_WRITTEN() accepts only VALUE. |
cecbcc420e3e49b1b73d54b66a54c397d6799685
|
2013-10-31 |
* benchmark/gc/gcbench.rb: print HWM (high water mark) if possible. |
42bd731dc53406d04e4397ec673b3acbb3a79bfc
|
2013-11-04 |
* include/ruby/ruby.h: rename FL_OLDGEN to FL_PROMOTED. This flag represents that "this object is promoted at least once." * gc.c, debug.c, object.c: catch up this change. |
30456e9607308d79cb3e5a40bdb73023780d243a
|
2013-11-04 |
* node.h: catch up comments for last commit. |
325d2cfcdfd2beeca4aa45368276d2f2c928ae59
|
2013-11-04 |
* gc.c: add 3gen GC patch, but disabled as default. RGenGC is designed as 2 generational GC, young and old generation. Young objects will be promoted to old objects after one GC. Old objects are not collect until major (full) GC. The issue of this approach is some objects can promoted as old objects accidentally and not freed until major GC. Major GC is not frequently so short-lived but accidentally becoming old objects are not freed. For example, the program "loop{Array.new(1_000_000)}" consumes huge memories because short lived objects (an array which has 1M elements) are promoted while GC and they are not freed before major GC. To solve this problem, generational GC with more generations technique is known. This patch implements three generations gen GC. At first, newly created objects are "Infant" objects. After surviving one GC, "Infant" objects are promoted to "Young" objects. "Young" objects are promoted to "Old" objects after surviving next GC. "Infant" and "Young" objects are collected if it is not marked while minor GC. So that this technique solves this problem. Representation of generations: * Infant: !FL_PROMOTED and !oldgen_bitmap [00] * Young : FL_PROMOTED and !oldgen_bitmap [10] * Old : FL_PROMOTED and oldgen_bitmap [11] The macro "RGENGC_THREEGEN" enables/disables this feature, and turned off as default because there are several problems. (1) Failed sometimes (Heisenbugs). (2) Performance down. Especially on write barriers. We need to detect Young or Old object by oldgen_bitmap. It is slower than checking flags. To evaluate this feature on more applications, I commit this patch. Reports are very welcome. This patch includes some refactoring (renaming names, etc). * include/ruby/ruby.h: catch up 3gen GC. * .gdbinit: fix to show a prompt "[PROMOTED]" for promoted objects. |
5ba523967ec02f9abed15a219f776c3242e0e742
|
2013-11-04 |
* gc.c (GC_MALLOC_LIMIT_MAX): fix default value 512MB -> 384MB. 512MB is huge. |
d1674ef67b61df4ff27e93772c0946ae74869c5d
|
2013-11-05 |
* gc.c: add support to estimate increase of oldspace memory usage. This is another approach to solve an issue discussed at r43530. This feature is diabled as default. This feature measures an increment of memory consuption by oldgen objects. It measures memory consumption for each objects when the object is promoted. However, measurement of memory consumption is not accurate now. So that this measurement is `estimation'. To implement this feature, move memsize_of() function from ext/objspace/objspace.c and expose rb_obj_memsize_of(). Some memsize() functions for T_DATA (T_TYPEDDATA) have problem to measure memory size, so that we ignores T_DATA objects now. For example, some functions skip NULL check for pointer. The macro RGENGC_ESTIMATE_OLDSPACE enables/disables this feature, and turned off as default. We need to compare 3gen GC and this feature carefully. (it is possible to enable both feature) We need a help to compare them. * internal.h: expose rb_obj_memsize_of(). * ext/objspace/objspace.c: use rb_obj_memsize_of() function. * cont.c (fiber_memsize): fix to check NULL. * variable.c (autoload_memsize): ditto. * vm.c (vm_memsize): ditto. |
692aab90101bb9b75a4a008855aca8220aace8e0
|
2013-11-05 |
fix typos in ChangeLog. |
400a9a7bc285b16a692cdd3d5253de88728990d7
|
2013-11-05 |
* benchmark/gc/gcbench.rb: add some options to make quiet. |
8c6157e048db72e42f898e8c9e08ee9ceed8fe1c
|
2013-11-05 |
* gc.c (Init_GC): add GC::OPTS to show options. |
3db0e56472061462e69a3fb9b92a505384490e08
|
2013-11-06 |
* gc.c: define RGENGC_ESTIMATE_OLDSPACE == 0 if USE_RGENGC is 0. |
df6722d9fc3d03c1804f5b988d4cdb5b4dff9fd9
|
2013-11-06 |
* benchmark/bm_vm1_gc_short_lived.rb: added. These GC benchmarks do not reflect practical applications. They are only for tuning. * benchmark/bm_vm1_gc_short_with_complex_long.rb: added. * benchmark/bm_vm1_gc_short_with_long.rb: added. * benchmark/bm_vm1_gc_short_with_symbol.rb: added. * benchmark/bm_vm1_gc_wb_ary.rb: added. * benchmark/bm_vm1_gc_wb_obj.rb: added. * benchmark/bm_vm_thread_queue.rb: added. Thie benchmark is added to know how fast C verion of thread.so. |
a6698bc6761eb944563b1fff5e33cb4dc4e6722c
|
2013-11-07 |
* gc.c: modify malloc_limit strategy. * fix default vaues: GC_MALLOC_LIMIT_GROWTH_FACTOR GC_MALLOC_LIMIT: 8MB -> 16MB GC_MALLOC_LIMIT_MAX: 384MB -> 32MB * algorithm of malloc_limit increment. if (malloc_increase < malloc_limit) { next_malloc_limit = malloc_limit * factor if (malloc_limit > malloc_limit_max) { malloc_limit = malloc_increase } } This algorithm change malloc_limit from 16MB -> 32MB slowly. If malloc_limit exceeds malloc_limit_max, then increase with malloc_increase. |
bc319093665db0e8b4ed102e1bd093c5b0f04039
|
2013-11-07 |
* gc.c (vm_malloc_increase): check GVL before gc_rest_sweep(). vm_malloc_increase() can be called without GVL. However, gc_rest_sweep() assumes acquiring GVL. To avoid this problem, check GVL before gc_rest_sweep(). [Bug #9090] This workaround introduces possibility to set malloc_limit as wrong value (*1). However, this may be rare case. So I commit it. *1: Without rest_sweep() here, gc_rest_sweep() can decrease malloc_increase due to ruby_sized_xfree(). |
b3abb163f4e0e5cc52aa5b4dfacff4273c0510c9
|
2013-11-09 |
* benchmark/gc/gcbench.rb: output version description and GC::OPTS. |
9782d219f34aded1d0b80f7bdff809132550561e
|
2013-11-09 |
* gc.c (vm_malloc_increase): sweep immediately on GC due to malloc(). To reduce memory usage, sweep as soon as possible. This behavior is same as Ruby 2.0.0 and before. |
ac778eb2cf8f66a7c15573a73c620f237f9f17dd
|
2013-11-10 |
* vm_trace.c (symbol2event_flag): add secret feature. add a_call/a_return events. a_call is call | b_call | c_call, and same as a_return. |
301223df95b523ad355ccfe24da74028f4a77f5d
|
2013-11-19 |
* gc.c (rb_gc_resurrect): added. rb_fstring() used rb_gc_mark() to avoid freeing used string. However, rb_gc_mark() set mark bit *and* pushes mark_stack. rb_gc_resurrect() does only set mark bit if it is before sweeping. * string.c (rb_fstring): use rb_gc_resurrect. * internal.h: add decl. |
2d00e739ef2651277a267c45e8f625dfeedfebf8
|
2013-11-19 |
* gc.c (rb_objspace_reachable_objects_from_root): do major marking. |
2127b9cfc75da93e3fc43cc830ede0670010d010
|
2013-11-19 |
* gc.c (heap_is_swept_object): use heap_page::before_sweep flag. |
4e064fb0fdc67ab0d3984dc323a334d5728e86ac
|
2013-11-20 |
* parse.y (rb_gc_mark_symbols): set global_symbols.minor_marked only when full_mark is 0. rb_gc_mark_symbols() (with full_mark == 1) can be called by other than GC (such as rb_objspace_reachable_objects_from_root()). |
4c9d6d801b5152545ba939f8bc350f5442972fef
|
2013-11-21 |
* gc.c: change RGENGC_CHECK_MODE (>= 2) logic. Basically, make an object graph of all of living objects before and after marking and check status. [Before marking: check WB sanity] If there is a non-old object `obj' pointed from old object (`parent') then `parent' or `obj' should be remembered. [After marking: check marking miss] Traversible objects with the object graph should be marked. (However, this alert about objects pointed by machine context can be false positive. We only display alert.) [Implementation memo] objspace_allrefs() creates an object graph. The object graph is represented by st_table, key is object (VALUE) and value is referring objects. Referring objects are stored by "struct reflist". * gc.c (init_mark_stack): do not use push_mark_stack_chunk() at init. This pre-allocation causes failure on is_mark_stask_empty() without any pushing. |
5d1d1ed258e4c4a3fdef410b1ee9b623f88bc389
|
2013-11-21 |
* gc.c (gc_marks_check): do not dump all refs. * gc.c (allrefs_dump_i): fix output format. |
047cdaca14fbfccf177bc221fe0aa324d5258212
|
2013-11-21 |
* gc.c: enable "RGENGC_ESTIMATE_OLDSPACE" option as default. Without this option, some application consumes huge memory. (and there are only a few performance down) Introduced new environment variables: * RUBY_GC_HEAP_OLDSPACE (default 16MB) * RUBY_GC_HEAP_OLDSPACE_MAX (default 128 MB) * RUBY_GC_HEAP_OLDSPACE_GROWTH_FACTOR (default 1.2) * gc.c (initial_malloc_limit): rename to initial_malloc_limit_min. |
20fa0c26c9c4216926c5240678fbe27878ce9cca
|
2013-11-21 |
* gc.c: rename initial_xxx variables to gc_params.xxx. They are not only used initial values. Chikanaga-san: Congratulations on RubyPrize! |
b1529a30e08040b717adef8ac1fa8be1c060e7e1
|
2013-11-21 |
* gc.c: RGENGC_CHECK_MODE should be 0. |
a6ca9f9fce7bcef4a1c04384bb834b5ee0013b16
|
2013-11-22 |
* vm.c (ruby_vm_destruct): do not use ruby_xfree() after freeing objspace. * gc.c (ruby_mimfree): added. It is similar to ruby_mimmalloc(). * internal.h: ditto. |
c91ec25d19d0b0c2ecae1de8facb779d80665c78
|
2013-11-22 |
* gc.c (heap_set_increment): accept minumum additional page number. * gc.c (gc_after_sweep): allocate pages to allocate at least RUBY_HEAP_MIN_SLOTS. [Bug #9137] |
dbe9e6a5f8ed9912c86f508b3f4a092d58c79188
|
2013-11-23 |
* gc.c: fix gloval variable name. Now we have following environments (and related variable names). * RUBY_GC_HEAP_INIT_SLOTS * RUBY_GC_HEAP_FREE_SLOTS * RUBY_GC_HEAP_GROWTH_FACTOR (new from 2.1) * RUBY_GC_HEAP_GROWTH_MAX_SLOTS (new from 2.1) * obsolete * RUBY_FREE_MIN -> RUBY_GC_HEAP_FREE_SLOTS (from 2.1) * RUBY_HEAP_MIN_SLOTS -> RUBY_GC_HEAP_INIT_SLOTS (from 2.1) * RUBY_GC_MALLOC_LIMIT * RUBY_GC_MALLOC_LIMIT_MAX (new from 2.1) * RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR (new from 2.1) * RUBY_GC_OLDSPACE_LIMIT (new from 2.1) * RUBY_GC_OLDSPACE_LIMIT_MAX (new from 2.1) * RUBY_GC_OLDSPACE_LIMIT_GROWTH_FACTOR (new from 2.1) * test/ruby/test_gc.rb: catch up this change. |
c1382f3ab5cde26baf4c36ea86656bf5a2d09789
|
2013-11-24 |
* gc.c: change terminology OLDSPACE -> OLDMALLOC. (oldspace -> oldmalloc for variable names) OLDSPACE is confusing because it is not includes slots. To more clearly, rename such as (oldspace_limit -> oldmalloc_limit). It is clear that it measures (estimates) malloc()'ed size. |
15bbf34c694d69475d27ba2e79d1ddaa15ff8e3e
|
2013-11-24 |
* test/ruby/test_gc.rb: catch up last commit. Now RUBY_GC_OLDSPACE_LIMIT(...) is RUBY_GC_OLDMALLOC_LIMIT(...). |
f06002208d98a66532fa3f440454f2daa153e037
|
2013-11-24 |
* gc.c (gc_stat): add internal information. * heap_swept_slot * malloc_increase * malloc_limit * remembered_shady_object * remembered_shady_object_limit * old_object * old_object_limit * oldmalloc_increase * oldmalloc_limit * gc.c (gc_stat): rename names. * heap_live_num -> heap_live_slot * heap_free_num -> heap_free_slot * heap_final_slot -> heap_final_slot Quote from RDoc of GC.stat(): "The contents of the hash are implementation specific and may be changed in the future." * test/ruby/test_gc.rb: catch up this change. |
a87eaf88a0b50bd1a7f3e2c5aaefde58c231262b
|
2013-11-24 |
* gc.c: change terminlogy "..._num" to "..._slots" about slot opetaion. * final_num -> final_slots * objspace_live_num() -> objspace_live_slots() * objspace_limit_num() -> objspace_limit_slots() * objspace_free_num() -> objspace_free_slots() |
30e88ca8a71d152987e727b6d194cc783580567f
|
2013-11-24 |
* gc.c: continue to change OLDSPACE -> OLDMALLOC. RGENGC_ESTIMATE_OLDSPACE -> RGENGC_ESTIMATE_OLDMALLOC. * gc.c: add a new major GC reason GPR_FLAG_MAJOR_BY_OLDMALLOC. |
84b7d6d533208bb9f73e3573ad2352dcf9e2e1b0
|
2013-11-24 |
* test/-ext-/tracepoint/test_tracepoint.rb: catch up GC.stat changes at r43835. |
2bfd722d803ac26deabde267c3d84d1b1aa85f50
|
2013-11-25 |
* internal.h: do not use ruby_sized_xrealloc() and ruby_sized_xfree() if HAVE_MALLOC_USABLE_SIZE (or _WIN32) is defined. We don't need these function if malloc_usable_size() is available. * gc.c: catch up this change. * gc.c: define HAVE_MALLOC_USABLE_SIZE on _WIN32. * array.c (ary_resize_capa): do not use ruby_sized_xfree() with local variable to avoid "unused local variable" warning. This change only has few impact. * string.c (rb_str_resize): ditto. |
5b40cb6a2cc6085a346f0f34be03b6ffdaeda8ca
|
2013-11-26 |
* vm_trace.c: prohibit to specify normal events and internal events simultaneously. I will introduce special care for internal events later. * ext/-test-/tracepoint/tracepoint.c: test this behavior. * test/-ext-/tracepoint/test_tracepoint.rb: ditto. |
bd26be2b3479a0e4ce75179d56de9d6d10be528b
|
2013-11-26 |
* vm_trace.c: skip "exception check" and "reentrant check (only normal events) for internal events. Reentrant check for internal events are remaining. |
8ca8d7afb3135a518452a1773ce7cabb54dd2a31
|
2013-11-26 |
* ext/objspace/object_tracing.c (newobj_i): skip class_path if class is frozen. rb_class_path() can modify frozen classes (and causes errors). This patch is temporary. We need no-modification/no-allocation class path function. |
be26a374e994fe070f04928308700a37f46d75d0
|
2013-11-26 |
* common.mk: add useful config "set breakpoint pending on" for run.gdb. |
a4b0c3c26bcf7eab7c58b00eab2a75ed7d3c31b6
|
2013-11-26 |
* test/ruby/test_settracefunc.rb: add tests for a_call/a_return by Brandur <brandur@mutelight.org> [Feature #9120] |
5993c141f1c457d45807c3338cdc268052ac2a4e
|
2013-11-27 |
* gc.c (gc_stat): add new information heap_eden_page_length and heap_tomb_page_length. * test/ruby/test_gc.rb: fix to use GC.stat[:heap_eden_page_length] instead of GC.stat[:heap_length]. This test expects `heap_eden_page_length' (used pages size). |
da65a3d9067a25628a8e033c1a4c800f671acdbc
|
2013-11-27 |
* gc.c (gc_page_sweep): disable debug print. |
9e733b909167e0ef0cf3766f3e54c9dc4e180ce8
|
2013-11-27 |
* gc.c (gc_mark_stacked_objects): check only when check_mode > 0. |
d7df3e28306267d9e66d8493aa61642c32a145a3
|
2013-11-28 |
* string.c (rb_fstring): fstrings should be ELTS_SHARED. If we resurrect dying objects (non-marked, but not swept yet), pointing shared string can be collected. To avoid such issue, fstrings (recorded to fstring_table) should not be ELTS_SHARED (should not have a shared string). |
cda7250de0e7cd3f8842ee9b7c0ce8dc7cf920d1
|
2013-12-05 |
* gc.c (vm_malloc_size): added. return malloc_usable_size() if possible. * gc.c (MALLOC_ALLOCATED_SIZE): add new setting macro to enable GC.allocated_size. If platform supports `malloc_usable_size()' (or similar one), GC.allocated_size can be implemented with this function. Default is 0. * gc.c (vm_xmalloc, vm_xrealloc, vm_xfree): use vm_malloc_size() to detect collect allocated size. * gc.c (vm_malloc_increase): refactoring. |
53035271a8ae5379152c2fe0c80d1e50515f5fc2
|
2013-12-05 |
* gc.c: change function names vm_ prefix to objspace_ prefix. They are objspace_ functionality. |
b9cf1033aab2f2622aadd8093bd897590da028d0
|
2013-12-05 |
* gc.c (gc_info_decode): fix to avoid syntax error on VS2012. |
73d6dc252d0f5df5f15f0aa1401d93f86aa6ac65
|
2013-12-06 |
* gc.c (gc_start_internal, rb_gc): do not need heap_pages_free_unused_pages() here. It was done in after_sweep(). * gc.c (rb_gc): The reason is now GPR_FLAG_CAPI. |
0e20c2afa818cbe47cad65da93db8b6bb9fe2a5f
|
2013-12-06 |
* gc.c (gc_start_internal): do not use rb_gc_start() and rb_gc(). |
cb62399d90f6eeaf3c42ab44730c39c2c0317746
|
2013-12-06 |
* gc.c (atomic_sub_nounderflow): added to simplify atomic sub with care about underflow. * gc.c (objspace_malloc_increase): use it. |
2c616737e514faed0e9a7be0e097e3091334277b
|
2013-12-06 |
* gc.c (garbage_collect_body): bug fix. initialize after recording. |
e4720e1118d71f3a5eae8015cc4bf431e30730e7
|
2013-12-06 |
* gc.c (rb_objspace_alloc, Init_heap): initialize oldmalloc_increase_limit at Init_heap. rb_objspace_alloc() is not called on some platforms. |
f09058b877c41ba05cec24641ae84425f7ac356f
|
2013-12-06 |
* gc.c (atomic_sub_nounderflow): not 0 but val itself. |
b91e889c34c8efd199606b616848e331f7efb48f
|
2013-12-06 |
* gc.c: change oldmalloc meaning. Increase oldmalloc_increase with malloc_increase instead of using obj_memsize_of(). This change will avoid the danger of memory full without major GC. |
5dc77048a3854a74113c62f2d942f3a45d9ad9bf
|
2013-12-09 |
* vm.c (vm_stat): renamed from ruby_vm_stat. Should not use ruby_ prefix here. |
8d4253f7e15efa8284e111ba1bc965d81e55560c
|
2013-12-10 |
* gc.c (gc_marks_check): disable GC during checking and restore malloc_increase info. |
14979f2161e2d2f799f2b8b351d1cb451d13416b
|
2013-12-10 |
* gc.c (RGENGC_CHECK_MODE): separate checkers to different modes. * 2: enable generational bits check (for debugging) * 3: enable livness check * 4: show all references |
1b29c00f00e42ade9858142b512b6eab211fb223
|
2013-12-10 |
* gc.c (allrefs_add): push obj only if allrefs table doesn't have obj. * gc.c (allrefs_roots_i): ditto. |
a4cbd6412aa8b16893db47ff18243bb4d5371899
|
2013-12-11 |
* eval.c (rb_raise_jump): pop frame after setup exception. Patches by deivid (David Rodriguez). [Bug #8886] * test/minitest/test_minitest_unit.rb: catch up this change. * test/ruby/test_backtrace.rb: ditto. * test/ruby/test_settracefunc.rb: ditto. |
78d7aa8ae37ab7be93c7dbf038024ec087851731
|
2013-12-11 |
revert r44133. See https://bugs.ruby-lang.org/issues/8886 details |
919f1438ae30848b8f1b9e7071c27c302049a0f0
|
2013-12-11 |
* eval.c (rb_raise_jump): call c_return hook immediately after popping `raise' frame. Patches by deivid (David Rodriguez). [Bug #8886] * test/ruby/test_settracefunc.rb: catch up this fix. |
55a77f29c1f4b3ead0699755759daba27e9c4b13
|
2013-12-13 |
* gc.c: rename *shady* func/macros. * RVALUE_RAW_SHADY() -> RVALUE_WB_PROTECTED_RAW() * RVALUE_SHADY() -> RVALUE_RAW_SHADY() * rgengc_check_shady() -> rgengc_check_relation(). And fix some messages using "shady" to "non-WB-protected". |
3477670963c7cc4d929e5196369f5327421ff62d
|
2013-12-13 |
* array.c: fix comment to remove the word "shady". * variable.c: ditto. |
c7005118880ceeff65b300479317ca8387ec1246
|
2013-12-13 |
* gc.c (garbage_collect_body): use rb_bug() and explicit error message instead of using assert(). [Bug #9222] |
0aed7c6874ba75f1a85899d0ed0ea07b24a9f3ef
|
2013-12-13 |
* error.c: add Exception#backtrace_locations. Now, there are no setter and independent from Exception#backtrace. [Feature #8960] * eval.c (setup_exception): set backtrace locations for `bt_location' special attribute. * vm_backtrace.c (rb_backtrace_to_location_ary): added. * internal.h: ditto. * test/ruby/test_backtrace.rb: add a test for Exception#backtrace_locations. |
1448b0abf5247a4e4eec07a65aafa13d347a016a
|
2013-12-15 |
* ext/objspace/objspace.c (reachable_object_from_root_i): reachable objects should not include categories and category_objects because it is noisy information. In fact, objects created after calling ObjectSpace.reachable_objects_from_root should not be included as a returning hash objects. Currently, mswin64 platform has a problem because of this behaviour. Should we trace new objects? |
dfa892af437d7c6e01406134a5baded91b4db541
|
2013-12-16 |
* gc.c: introduce GC.verify_internal_consistency method to verify GC internal data structure. Now this method only checks geneartion (old/young) consistency. |
c979a67bb45669eb212c642da2fc6bed3277ae35
|
2013-12-16 |
* gc.c: use gc_verify_internal_consistency() instead of gc_check_before_marks_i() for check consistency on RGENGC_CHECK_MODE >= 2. |
d8eb7f3c0df627af7e2a961bfdcb069a9cde34ac
|
2013-12-16 |
* vm_method.c (rb_method_entry_make): fix WB miss. Note that rb_method_entry_t::klass is not constified. We may constify this field. * test/ruby/test_alias.rb: add a test. |
60b7bd2ea3ac0358427a5d344bebdc6225f6c1f2
|
2013-12-16 |
* gc.c (rb_objspace_each_objects): should not clear dont_lazy_sweep flag in nested case. |
1779f77fbb74382a69cbd4eaf673a4935ee9c541
|
2013-12-16 |
* gc.c (rb_objspace_markable_object_p): it should be live objects. |
1a209e496d9459843d98347e88a4e93ad05a119f
|
2013-12-16 |
* gc.c (rb_objspace_markable_object_p): fix last commit (build error). |
8d254db25b9e6810a49324f70ec314eacb2cf8d2
|
2013-12-16 |
* gc.c (gc_verify_internal_consistency): should not use rb_objspace_each_objects() because it call rest_sweep(). |
d4f80bd74e009152b72f0744e07ca3cea36438e7
|
2013-12-16 |
* ext/objspace/objspace.c (reachable_object_from_root_i): use compare_by_identity hash to avoid hash modify problem during iteration. [Bug #9252] * ext/objspace/objspace.c (reachable_objects_from_root): ditto. |
9ae9f7c9d3057f45afce56e6f696895b71c84489
|
2013-12-16 |
* gc.c (rb_objspace_markable_object_p): should check special_const_p first (by is_markable_object()). |
2648a803c12a9885712cdd0419a2edd35df54e2b
|
2013-12-18 |
* test/ruby/test_gc.rb (test_expand_heap): allow +/-1 diff. |
26e553d0ed235ce4f1100405c966c65ef8e01c2d
|
2013-12-18 |
* vm_exec.h (VM_DEBUG_STACKOVERFLOW): added. disable stack overflow check for every stack pushing as default. * vm_exec.c (vm_stack_overflow_for_insn): ditto. |
7bdb9fe17fe649023d3c5422b76a3634c48791ab
|
2013-12-18 |
* gc.c (gc_profile_clear, gc_profile_enable): remove rest_sweep(). * gc.c: check objspace->profile.current_record before inserting profiling record by new macro gc_prof_enabled(). |
661cf78bef8db2c55ae1511eadd1e918f63efa8d
|
2013-12-18 |
* gc.c (gc_profile_record_get): should return an empty array when profiling is active. |
a0a1d0f268994610932c2ae51df9d8f759591b01
|
2013-12-18 |
* gc.c (gc_profile_dump_major_reason): fix this function because major_reason can be OR of multiple reasons. * gc.c (gc_profile_dump_on): ditto. |
d767adf99017e24a7e3804891bf94fb6820aee4d
|
2013-12-18 |
* gc.c (garbage_collect_body): lazy_sweep setting should work without USE_RGENGC. |
49dcd2fee436faaf0937557f73b2cfb0b73c7971
|
2013-12-18 |
* test/runner.rb: fix commit miss on r44278. |
2ad4a1600bd407751f1aae01e758505fd2a5d61d
|
2013-12-19 |
* benchmark/gc/gcbench.rb: check GC::OPTS availability for not MRI 2.1.0. |
9797647e2546d44126e5d955e394c300a48d4201
|
2013-12-19 |
* gc.c (newobj_of): don't need to RBASIC_SET_CLASS() which includes WB here because created obj is always YOUNG/INFANT. |
0a8c1142b0b1d8b65cfb732b7b01f6be1441af26
|
2013-12-19 |
* gc.c (heap_get_freeobj): improve hot path performance. * gc.c (heap_get_freeobj_from_next_freepage): replace with heap_get_freepage(). It returns freeobj instead of freepage. This is not on hot path. |
b766cc4e70f18ab1b3be5aef35d2af8817d23714
|
2013-12-20 |
* include/ruby/ruby.h: add a comment for WB interfaces. |
c702005a7bbb807cab666537b5ef1877c14c40ba
|
2013-12-20 |
* include/ruby/ruby.h: rename OBJ_WRITE and OBJ_WRITTEN into RB_OBJ_WRITE and RB_OBJ_WRITTEN. * array.c, class.c, compile.c, hash.c, internal.h, iseq.c, proc.c, process.c, re.c, string.c, variable.c, vm.c, vm_eval.c, vm_insnhelper.c, vm_insnhelper.h, vm_method.c: catch up this change. |
f11b54213ad169975f98bbf0a39e1b303bc2795f
|
2013-12-20 |
* vm_method.c: check definition of GLOBAL_METHOD_CACHE_SIZE and GLOBAL_METHOD_CACHE_MASK. |
94e870b0004def9dbf6e909eba66244aea32bfe7
|
2013-12-21 |
* gc.c (ruby_gc_set_params): don't show obsolete warnings for RUBY_FREE_MIN/RUBY_HEAP_MIN_SLOTS if RUBY_GC_HEAP_FREE_SLOTS/RUBY_GC_HEAP_INIT_SLOTS are given. [Bug #9276] |
def62c3267e64128cc4f5aab187dad75bd7b2c39
|
2013-12-24 |
* include/ruby/ruby.h (RARRAY_ASET): try to avoid compiler warning. [Bug #9287] |
215c40b8130df5f5cbd4ffcfda9c263e68e4462f
|
2013-12-24 |
* README.EXT: add a document about RGenGC. Reviewed by havenwood. [misc #8962] * README.EXT.ja: ditto. |
777cd24ebb7090e08d8887d99ee3b8179d163bd0
|
2013-12-24 |
* README.EXT: add a refer to URL. |
485e6ebed846fd77e273177e07348a72786c1d97
|
2013-12-25 |
* vm_insnhelper.c (argument_error): insert dummy frame to make a backtrace object intead of modify backtrace string array. [Bug #9295] * test/ruby/test_backtrace.rb: add a test for this patch. fix test to compare a result of Exception#backtrace with a result of Exception#backtrace_locations. |
c2e72fb34302e444f6cc4c6477877e36902a7035
|
2014-01-09 |
* vm.c (rb_vm_pop_cfunc_frame): added. It cares c_return event. The patch base by drkaes (Stefan Kaes). [Bug #9321] * variable.c (rb_mod_const_missing): use rb_vm_pop_cfunc_frame() instead of rb_frame_pop(). * vm_eval.c (raise_method_missing): ditto. * vm_eval.c (rb_iterate): ditto. * internal.h (rb_vm_pop_cfunc_frame): add decl. * test/ruby/test_settracefunc.rb: add tests. provided by drkaes (Stefan Kaes). * vm.c, eval.c, include/ruby/intern.h (rb_frame_pop): move definition of rb_frame_pop() and deprecate it. It doesn't care about `return' events. |
f614957d120f9c2ea7bb1991429ea15011ba858c
|
2014-01-23 |
* test/ruby/test_settracefunc.rb: check the target thread. |
f061bec852cae077b529790a12d9c9caed742290
|
2014-01-23 |
* test/ruby/test_settracefunc.rb: check the target thread. |
37f32fd6a0b80b6a272505589b0195ae8b6d5b85
|
2014-01-23 |
* test/ruby/envutil.rb: try to wait a bit (0.1sec) when ruby process exits by signals because some SEGV tests fail because of not enough error output. |
c77a745aab4372227e7ed929ff4d532dc7753d70
|
2014-02-04 |
* string.c: remvoe STR_ASSOC related code. By r44804, string objects can not have STR_ASSOC flag. * internal.h: ditto. * ext/objspace/objspace_dump.c (dump_object): ditto. |
171a14b36cf61a1aae127d3b73b1aedd0657ab01
|
2014-02-04 |
* string.c: use STR_SHARED instead of ELTS_SHARED. (same value, but more clear meaning) |
fc4321ea3fc5be0868be8501536014ac04e9b46b
|
2014-02-04 |
* string.c: use long allocator names instead of numbered allocator names. * rb_str_new2 -> rb_str_new_cstr * rb_str_new4 -> rb_str_new_frozen * rb_str_new5 -> rb_str_new_with_class * str_new3 -> str_new_shared * str_new4 -> str_new_frozen_with_klass |
62bd0f180fcdbf3c55ba6cc400ae631986ad720b
|
2014-02-05 |
* string.c (rb_str_new_frozen): refactoring code. * Move code from str_new_frozen_with_klass() (and remove it) * `aux.shared' should not be 0 for STR_SHARED strings. |
906e88e376e9933e9664b477bc86357a9cd01bda
|
2014-02-05 |
* gc.c (gc_mark_children): STR_ASSOC is no longer available. Reported by @nagachika. http://d.hatena.ne.jp/nagachika/20140204 |
46fcec9a17919302dd7f9b15e6a4aa86d4ee4570
|
2014-02-05 |
* string.c (RESIZE_CAPA): should not resize shared string. |
84d8104ed6b2a6020e8c142a2cc759beb4b3d4a9
|
2014-02-05 |
* string.c: refactoring, especially about string flags. * string.c (STR_UNSET_NOCAPA): removed. Use FL_UNSET() with STR_SHARED. * string.c (rb_str_capacity): check STR_SHARED directly beacuse it is not a embed string. * string.c (rb_str_modify_expand): ditto. * string.c (rb_str_shared_replace): use STR_SET_SHARED(). * string.c (str_make_independent_expand): remove STR_UNSET_NOCAPA() because `str' is not shared string. |
38cd45a3cdacf6d0bea95e3da41d7ae09da90fb7
|
2014-02-05 |
* internal.h: remove macros STR_NOCAPA and STR_NOCAPA_P(). * string.c (rb_str_resize): remove `STR_SET_NOEMBED(str)' because str_make_independent_expand() set NOEMBED flag. * string.c (rb_str_resize): remove `STR_NOCAPA_P(str)' check because `str' is independent (not shared). |
3889ce2d156bef45c1f05463fc2cd54a309a1e7e
|
2014-02-05 |
* string.c (rb_str_free): use FL_TEST(str, STR_SHARED) directly because str is not embed. * string.c (str_replace): remove `FL_SET(str, STR_SHARED)' line because STR_SET_SHARED() set STR_SHARED. |
1ccaa4756aff30afdaa4f9a565c69722a6f6ebe8
|
2014-02-05 |
* internal.h, vm_core.h: move LIKELY/UNLIKELY/UNINITIALIZED_VAR() macros from vm_core.h to internal.h. * string.c: remove dependency to "vm_core.h". * common.mk: ditto. |
d76b38268366cc3226499b1eb00ce7798c71bcc2
|
2014-02-05 |
* ext/objspace/objspace_dump.c (dump_object): use STR_SHARED_P() instead of removed STR_NOCAPA_P() macro. |
ae411fb558b0444404097e19bbe94457056a2118
|
2014-02-05 |
* vsnprintf.c: remove duplicated def of `UNINITIALIZED_VAR()'. |
f167bc403d2d97ec27308a3c41b22ecc16294bbc
|
2014-02-06 |
* gc.c (ruby_gc_set_params): if RUBY_GC_OLDMALLOC_LIMIT is provided, then set objspace->rgengc.oldmalloc_increase_limit. Without this fix, the env variable RUBY_GC_OLDMALLOC_LIMIT does not work. * gc.c (get_envparam_int): accept a value equals to lowerbounds. * gc.c (get_envparam_double): ditto. |
cb410ff93206316d00355cb2c2d7b55e2101d0b2
|
2014-02-06 |
* gc.c (get_envparam_int): don't accept a value equals to lowerbound (changed by last commit) because "" or "foo" (not a number) strings are parsed as 0. They should be rejected. * gc.c (get_envparam_double): ditto. |
b31c66f7afc6fe5c55d238ae7bdf18c5a21b7c62
|
2014-02-06 |
* gc.c (get_envparam_int): correct warning messsages. * gc.c (get_envparam_double): ditto. |
c6f2c9383f446f92e482a6e1c7e13772affde8d7
|
2014-02-08 |
* gc.c, gc.h (rb_objspace_marked_object_p): added. This function *ONLY* works just after marking phase, before any sweeping. This function is highly depending current GC implementation and can be removed future version. |
3ee0444955b57decfc8ad5f4aff608f9b103f9e6
|
2014-02-17 |
* gc.c: introduce new environment variable "RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR" to control major/minor GC frequency. Do full GC when the number of old objects is more than R * N where R is this factor and N is the number of old objects just after last full GC. * test/ruby/test_gc.rb: add a test. |
1aebaf735555068fb82c3d1846166b5afc7af10e
|
2014-02-17 |
* gc.c (get_envparam_double): fix a warning message. |
131696f48f2f089a08a18df8b83e1c73c5770f6f
|
2014-02-17 |
* test/ruby/test_gc.rb: ignore warning messages for running with -w option such as chkbuild. |
8467d86f8aacf54657f247d69b7413a4ce879d6f
|
2014-02-26 |
* gc.c (heap_pages_free_unused_pages): check tomb page availability at first. And return immediately if we don't touch sorted list any more. |
57e557908a8c4c01390b7ea52b09f8370a3d7dd3
|
2014-03-17 |
* enumerator.c (enumerator_block_call): use PARRAY_CONST_PTR() 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. |
53bd4502d830d5aafae5deb9278a3ec10c9fb093
|
2014-03-20 |
* include/ruby/intern.h (rb_obj_call_init, rb_class_new_instance): 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. |
c813697d97832ffe4d660ab9bf0e5c3519448071
|
2014-03-20 |
* struct.c (rb_struct_alloc): use RARRAY_CONST_PTR() instead of RARRAY_PTR(). |
3e20c50d509708bc0c0dedb02ec8dbfbfe1ac301
|
2014-03-20 |
* gc.c (objspace_malloc_increase): should not invoke 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]. |
835186a322d8a812cdbeb2f00ecd642cffde9fee
|
2014-03-29 |
* gc.c (gc_before_sweep): cap `malloc_limit' to gc_params.malloc_limit_max. It can grow and grow with such case: `loop{"a" * (1024 ** 2)}' [Bug #9687] This issue is pointed by Tim Robertson. http://www.omniref.com/blog/blog/2014/03/27/ruby-garbage-collection-still-not-ready-for-production/ |
37067ed905954940bafb3b2cc4e1d67c374d31f9
|
2014-04-02 |
* gc.c, gc.h (rb_objspace_each_objects_without_setup): Add a new (hidden) C-API to iterate objspace snapshot. This API is not safe to call any C-APIs in a given callback function. Be careful to use this C-API. |
bdf4eb0615bea7a0f8b404282e92345f78ae5578
|
2014-04-08 |
* gc.c: rename `RGENGC_THREEGEN' to `RGENGC_AGE2_PROMOTION'. * gc.c (rgengc_rememberset_mark): don't promote, but remain in remember set for infant objects. * gc.c (RVALUE_PROMOTE_INFANT, RVALUE_PROMOTE_YOUNG): count numbers in these functions. |
52b6be0ad393508c66bb6d7f4f027985d09f0fd5
|
2014-04-09 |
* test/ruby/test_gc.rb: more long timeout. This test failed under RGENGC_CHECK_MODE >= 2. |
ddffb9bb9b065f266ff845415d508877bdadab20
|
2014-04-10 |
* gc.c (rb_gc_writebarrier_unprotect_promoted): disable to dump debug message when RGENGC_CHECK_MODE == 0. |
be512007850642da7a02dae0460a2d4f2eea538a
|
2014-04-10 |
* gc.c (gc_verify_internal_consistency): move lines and enable allrefs_dump() on RGENGC_CHECK_MODE >= 4. |
f19bf5ba5a59631e9d6340d3352b9d9ef20945af
|
2014-04-10 |
* array.c (rb_ary_modify): remember shared array owner if a shared array owner is promoted and a shared array is not promoted. Now, shared array is WB-unprotected so that shared arrays are not promoted. All objects referred from shared array should be marked correctly. [ruby-core:61919] [ruby-trunk - Bug #9718] * test/ruby/test_array.rb: add a test for above. |
5877dcbb130f394f74b9357636804099f1031968
|
2014-04-10 |
* test/ruby/test_array.rb: remove useless `assert'. |
6bc463204ae06fe9c5a72371a6a26a8f0b6b0d29
|
2014-04-11 |
* array.c: make shared arrays WB-protected objects. Shared arrays were WB-unprotected object because sharing array can modify shared array's buffer if it occupied shared array. [sharing array (ary)] -> [shared array (shared)] -> <buff> | A +---------------------------------------+ write `buff' with WB(ary, &buff[i], obj) -> if `ary' and `shared' are old, then only `ary' will be remembered. -> traverse from `ary'. But `shared' is old, so that written `obj' is not marked. It cause WB miss so that shared arrays were WB-unprotected. (WB-unprotected objects are marked everytime if it is living) This patch insert WB() for `shared' if it is needed. |
f2606d6250d5f4b2e7d02b97567b74de6435864a
|
2014-04-11 |
* array.c (ARY_SET): added. ARY_SET() is same functionality of RARRAY_ASET(), but it has an assertion (`ary' doesn't have shared array). |
d32ad2efcaf6cf9babc6272482582dddda241a8f
|
2014-04-21 |
* gc.c (objspace_malloc_increase): don't cause GC by malloc_increase when memop type is MEMOP_TYPE_REALLOC. GC at realloc is not well maintained. We need a time to make it safe. [ruby-dev:48117] |
ba6b0acdb6c371f9f7150bed6f555c7f34fe3781
|
2014-04-30 |
* vm.c (invoke_block_from_c): add VM_FRAME_FLAG_BMETHOD to record it is bmethod frame. * vm.c (vm_exec): invoke RUBY_EVENT_RETURN event if rollbacked frame is VM_FRAME_FLAG_BMETHOD. [Bug #9759] * test/ruby/test_settracefunc.rb: add a test for TracePoint/set_trace_func. * vm_core.h: renmae rb_thread_t::passed_me to rb_thread_t::passed_bmethod_me to clarify the usage. * vm_insnhelper.c (vm_call_bmethod_body): use renamed member. |
c47d59a0a736cefc7bbf80232f3175676a528ad1
|
2014-05-05 |
* benchmark/driver.rb: define File::NULL if not defiend and /dev/null is available to run benchmark driver on ruby 1.9.2. |
1ddb9c532233995a9c277e4a3b3367a37c4a44e4
|
2014-05-07 |
* benchmark/driver.rb: add '--rawdata-output=[FILE] option to output raw results into FILE. |
d4672274869816eb7ae3f336e3512bac9f0d21e6
|
2014-05-07 |
* benchmark/driver.rb: remove debug output and output results into specified file. |
8be5c76f06478c3f342b3533680b4fcfaebc5d99
|
2014-05-12 |
* gc.c: count young object correctly and show it in GC.stat on RGENGC_AGE2_PROMOTION. * gc.c (RVALUE_PROMOTE_YOUNG): decrement young object count on YOUNG->OLD. * gc.c (obj_free): decrement young object count when young object freed. * gc.c (gc_marks): should not clear young object count. * gc.c (gc_stat_internal): GC.stat :young_object information. |
b4d9f9ca1d8218d4a35bd361c363ebdba5165db9
|
2014-05-14 |
* gc.c (rgengc_rememberset_mark): promote remembered object earlier. |
1b03f51f823a326164d0a8fb51e8270b8f28d327
|
2014-05-14 |
* gc.c: enable RGENGC_AGE2_PROMOTION. |
7093a2cb5bdd85f84601815d08da90ef71c3322f
|
2014-05-14 |
* ext/openssl/depend: remove dependency from internal headers. [Feature #9612] * ext/openssl/ossl.c (ossl_fips_mode_set): ditto. * ext/coverage/depend: ditto. * include/ruby/thread_native.h: added. This header file only provides wrapper functions to control native threads. These wrapper functions are used by MRI implementation. * vm_core.h: use include/ruby/thread_native.h. * thread.c: ditto. * thread_pthread.h: ditto. * thread_win32.h: ditto. * thread_native.h: removed. |
28a180ed2f94acc2bd08fb3943329a68f83efeec
|
2014-05-15 |
* gc.c: introduce macros to remove magic number. GC_HEAP_FREE_SLOTS_MIN_RATIO = 0.3: guarantee minimum empty slots ratio after sweep. GC_HEAP_FREE_SLOTS_MAX_RATIO = 0.8: allow to free pages 0.2 (= 1-0.8) of current existing slots. |
8d81c976aae371002c604b44028fde07abb12534
|
2014-05-15 |
* gc.c (heap_extend_pages): calculate next growing heap size. * gc.c (heap_set_increment): accept addition pages instead of minimum pages. * gc.c (gc_after_sweep): use heap_etend_pages(). * gc.c (gc_heap_prepare_minimum_pages): add only 1 page. * gc.c (heap_ready_to_gc): add only 1 page. |
bceb547077c545c103e6329bac879b1fed3ce9d7
|
2014-05-15 |
* gc.c (garbage_collect_body): move gc_heap_prepare_minimum_pages() from gc_sweep(). |
be5ed87c2f2f8d17665fde4c939ac1605d402ac4
|
2014-05-16 |
* gc.c (gc_before_sweep): heap_pages_swept_slots should contains heap_pages_increment. For example, GC by exceeding malloc_limit can remain heap_pages_increment. |
a86d454538259e3269cbfc29ed01d1760676e5d0
|
2014-05-16 |
* gc.c (gc_marks, gc_marks_body): increase the counter of young objects at the major GC because AGE2Promotion changes all old objects into young objects at major GC. |
7af941da15ab3663281f229740b68c3d30813eea
|
2014-06-02 |
* eval.c (rb_using_refinement): add write-barriers for cref->nd_refinements. |
bbfe069ec1ffcf1519559632f2fd51fb01e251a0
|
2014-06-02 |
* vm.c (ruby_vm_destruct): remove useless call of rb_gc_force_recycle(). At this line, a VM object is already freed (is changed to T_NONE) by rb_gc_call_finalizer_at_exit(). |
d27a685b9545f365cbac04bb95c81c1aac96bda9
|
2014-06-03 |
* test/ruby/memory_status.rb: add $LOAD_PATH to load test/unit correctly for fiddle/import unavailable environments. |
baff4dfef950989f34657d6ade26c990f50900e4
|
2014-06-03 |
* gc.c: count old/young objects more correctly. * gc.c (RVALUE_DEMOTE_FROM_OLD): decrement old object count. * gc.c (RVALUE_DEMOTE_FROM_YOUNG): decrement young object count. * gc.c (rb_gc_resurrect): increment old object count. * gc.c (gc_marks_body): should not add old object count. This code is completely my misunderstanding. * gc.c (rb_gc_force_recycle): decrement young or old object count correctly. |
58390617efec4b13b8b2cd73015a49cbb56580b5
|
2014-06-03 |
* gc.c (check_gen_consistency): fix error message. |
a0bbf948b52437f0a8becf23fc8fbbddc0d0dda8
|
2014-06-03 |
* gc.c (obj_free): fix spacing. |
e7d8c473c17540dbc0b360efd689fbd2def69967
|
2014-06-03 |
* gc.c (objspace_live_slot): live slot count should not include final slot (contains T_ZOMBIE) count. |
3d42f2295d63a16823aae864aa53a3a67adb5b6a
|
2014-06-03 |
* gc.c (rb_gc_force_recycle): we only need to know the result (0/1) of RVALUE_OLD_P(). clang fails to compile it because is_old is `int' but RVALUE_OLD_P() returns VALUE. |
9d71a0ae331c137b8c736e6dca1b1c265053ebe4
|
2014-06-03 |
* gc.c: add verifying counters code in gc_verify_internal_consistency(). gc_verify_internal_consistency() counts all - live objects - young objects (if age2 promotion) - old objects in all pages and compares with objspace managing counters. * gc.c (gc_after_sweep): do gc_verify_internal_consistency() when RGENGC_CHECK_MODE >= 2. |
2e437f8b45ac2399011b32c6bacb68603c6728a5
|
2014-06-03 |
* gc.c: change the counting method for young objects. clear counter at the beggining of every GC and count promoted (infant->young) objects. Some promotions (infant->young) are transition of promoting to old objects. We should not count such promotions. With this technique, we don't need to check young objects at obj_free(). |
75604b077e665cefe239db67033d521463798be6
|
2014-06-03 |
* gc.c (rb_gc_call_finalizer_at_exit): add gc_verify_internal_consistency() when RGENGC_CHECK_MODE >= 2. |
29bee7e8ea26e9540b61add2c774860f4c61d4ff
|
2014-06-03 |
revert r46332 because RVALUE_OLD_P() returns int by r46334 |
a5fd4c45e37a53118e8385e9a91201fd6c99993c
|
2014-06-03 |
* test/ruby/test_gc.rb: allocate more objects to invoke GC by newobj. GC allows extending pages depends on heap_increment. |
7ad125d7d216915b12ef3417b9a4f2b4a9305cff
|
2014-06-03 |
* gc.c (rb_objspace_free): should not rest_sweep() here. Some data structures are already freed. |
2f73dbd084e64e8be1ced89c735d9d8b987ca94c
|
2014-06-04 |
* gc.c: introduce RZombie to manage zombie objects. Rewrite finalizing logics with this type. * gc.c (gc_verify_internal_consistency): verify zombie (finalizing) objects count. |
0e3debf15b880e2620c9a64537e613d83dd196ea
|
2014-06-05 |
* gc.c (obj_free): check also FL_PROMOTED bit by RVALUE_OLD_P(). |
72a77c25e5f9837539d7af523971f0a2ef35d66f
|
2014-06-05 |
* gc.c (gc_page_sweep): refactoring. * gc.c (gc_page_sweep): should not set, but add final_slots into sweep_page->final_slots. |
5b2a7458108fa13ac9ef194d544792a82243f5ff
|
2014-06-09 |
* gc.c: change full GC timing to keep lower memory usage. Extend heap only at (1) after major GC or (2) after several (two times, at current) minor GC Details in https://bugs.ruby-lang.org/issues/9607#note-9 [Bug #9607] |
c8c99520668f4a92f620ede01e5af2827a29b3fa
|
2014-06-10 |
* gc.c: invoke GC before memory allocation (xmalloc/xrealloc) when GC.stress = true. [Bug #9859] * test/ruby/test_gc.rb: add a test. |
ddae6a05d7442f25ac04eb3338ffa8a8b4895d3f
|
2014-06-13 |
* vm_trace.c: clear and restore recursive checking thread local data to avoid unexpected throw from TracePoint. [Bug #9940] * test/ruby/test_settracefunc.rb: add a test. * thread.c: adde * rb_threadptr_reset_recursive_data(rb_thread_t *th); * rb_threadptr_restore_recursive_data(rb_thread_t *th, VALUE old); * vm_core.h: ditto. |
4945572f3cc6dcd55ffac4876ae23f27e19120ad
|
2014-06-13 |
* vm_trace.c: add new method TracePoint.stat to debug TracePoint mechanism. Ruby users should not use this method. So I don't note this method in the NEWS file. * test/runner.rb: detect zombie active TracePoints with TracePoint.stat. |
3a1c08e58f805852c31287afab0efeb40e64d7dd
|
2014-06-16 |
* test/runner.rb: capture TracePoint stat before setup and compare it after teardown. |
dbf2578656cf3dc5ce77170947a97065219ef227
|
2014-06-16 |
* test/runner.rb: failure message should be passed as an argument. |
b905ac81a07bd6547f353ea30c163b47ac60b27d
|
2014-06-17 |
* gc.c (obj_memsize_of): memsize_of(T_ZOMBIE) returns 0, not a rb_bug. ObjectSpace.count_objects_size() uses memsize_of(T_ZOMBIE). This bug introduced at r46348. |
59bdf7eac8dfaf740e2c87da93efdfc96b1c9469
|
2014-06-19 |
* vm_core.h: add VM_FRAME_MAGIC_RESCUE to recognize normal block or rescue clause. * vm.c (vm_exec): use VM_FRAME_MAGIC_RESCUE on at rescue/ensure. * test/ruby/test_settracefunc.rb: should not invoke b_return at rescue clause. [Bug #9957] * vm_dump.c (control_frame_dump): check VM_FRAME_MAGIC_RESCUE. * vm_dump.c (vm_stack_dump_each): ditto. |
370212a8ae39939979cf0651bd98108316a8e535
|
2014-06-19 |
* vm.c (invoke_block_from_c): move call/return event timing for bmethod. It can invoke inconsistent call event if this call raises argument error. [Bug #9959] * vm_insnhelper.c (vm_call_bmethod_body): ditto. * test/ruby/test_settracefunc.rb: add a test. |
bef2e29aab53d2d15006fad7de9e56f2f44c7778
|
2014-06-19 |
* vm.c (rb_vm_rewind_cfp): add new function to rewind specified cfp with invoking RUBY_EVENT_C_RETURN. [Bug #9961] * vm_core.h: ditto. * eval.c (rb_protect): use it. * eval.c (rb_rescue2): ditto. * vm_eval.c (rb_iterate): ditto. * test/ruby/test_settracefunc.rb: add a test. * vm_core.h (rb_name_err_mesg_new): |
15397de07d599c17f6d6ffaaf02f84318247a3c0
|
2014-06-19 |
* vm_eval.c (rb_catch_protect): fix same problem of [Bug #9961]. * vm_eval.c (rb_iterate): ditto. |
13f0b628d7520f7a1777e39fbc6ce7b075e4bd47
|
2014-06-19 |
* compile.c (rb_iseq_compile_node): put start label of block after trace (b_call). [Bug #9964] * test/ruby/test_settracefunc.rb: add a test. added assert_consistent_call_return() method check call/return consistency. |
07413b1a5e535e103b3794f28a60b74e08202e0d
|
2014-06-19 |
* test/ruby/test_settracefunc.rb: rewrite tests with assert_consistent_call_return(). assert_consistent_call_return() is also modified to check consistency. |
2aa6f9c2b7149e37d8610154cfd5ead3c0fdd994
|
2014-06-20 |
* test/lib/tracepointchecker.rb: add to check TracePoint healthiness. * test/runner.rb: use it. |
4369806ff0ef10833f31897ae97527079d56897f
|
2014-06-30 |
* gc.c: support `USE_RGENGC == 0'. * test/ruby/test_gc.rb: ditto. |
51ae29a3cb4ee5821b2cdbd3fbdbb910c803a847
|
2014-06-30 |
* gc.c (gc_stat_internal): return size_t value instead of VALUE and remove `out' parameter. * gc.c: add braces for `if' statements. * gc.c (gc_stat_internal): fix comment. |
41fe52485793ff23590e7b760737b8390fd8cee1
|
2014-07-02 |
* gc.c (gc_heap_lazy_sweep): simplify logic. * gc.c (gc_page_sweep): return TRUE if empty slots are available. |
3e8a898bfe3fc6b5bbfd39a2c12fbc1fabe7f7b2
|
2014-07-04 |
* parse.y: remove unused code srounded by `#if ENABLE_SELECTOR_NAMESPACE' |
a227b16eba1cd836f12497d5b09f79dc6d89d6da
|
2014-07-04 |
* parse.y (must_be_dynamic_symbol): refactoring. * add `inline'. * use UNLIKELY(). * check only DYNAMIC_SYM_P(), otherwise it is a bug. * lookup_id_str() is not needed in second condition. |
cc462eed98ef713574e50eef178ffce36df53a18
|
2014-07-04 |
* parse.y (rb_pin_dynamic_symbol): should be `static' function. |
a99a88d49d39f7d007db34468554e5bc1093a49b
|
2014-07-04 |
* parse.y (must_be_dynamic_symbol): fix missed-condition. |
336f65eb57f1723527aab1b8182b03cdfb3946d0
|
2014-07-04 |
* parse.y: rename symbols::sym_id to symbols::str_id. This table is not {Symbol => ID} table, but {String => ID} table. * parse.y (lookup_sym_id): also rename lookup_sym_id() to lookup_str_id() because key is not Symbol, but String. |
a617afc643e17cea5c1960a60adcd5ffb25fdfe2
|
2014-07-06 |
* gc.c (rb_gc_register_mark_object): change data structure. From single array, to array of arrays. Each array only has 1024 entries. * vm.c (Init_vm_objects): change default capa from 1 to 128. |
38943e80d6f5704853ea25aaebacc838da20ef76
|
2014-07-06 |
* gc.c: rename is_dead_object() to is_dying_object(). This function is not opposite against is_live_object() because is_dying_object() does *not* check object type. * gc.c (is_dying_object): change condition. * gc.c (is_live_object): use T_NONE instead of 0. * gc.c (rb_objspace_dying_object_p): added. |
094949cb0a9d27a5e9575e22973a7640f33fd99d
|
2014-07-06 |
* gc.c (is_dying_object): fix missed condition. * gc.c (is_live_object): move frequent path first. |
2006bfe2f42d0458e061a1798680cb78b80fdbe8
|
2014-07-06 |
* gc.c: rename is_dying_object() to is_garbage_object(). * gc.h: rb_objspace_garbage_object_p() as an exported function. |
7ad35210a360db5a6b90eb3a9955636df930b133
|
2014-07-06 |
* string.c (fstr_update_callback): do not use rb_gc_resurrect() any more. Make new frozen string and replace with garbage frozen string. * common.mk: use gc.h from string.c. |
a31219c91c2c345e8531be47dce63adcab0f1122
|
2014-07-07 |
* parse.y: do not use rb_gc_resurrect(), but create a new dynamic symbol for garbage dynamic symbol. * common.mk: use gc.h by parse.y. |
2c551e4715bfb9d2dc213805dc551e62af73a861
|
2014-07-07 |
* parse.y: need to use updated (re-created) symbols. |
2e225e2c8b1623f42937b68d5511379d2a73de4c
|
2014-07-07 |
* gc.c: revert miss-commit. |
8572ed5c0d98a8edaee7e0e433d632c3ca3f5821
|
2014-07-07 |
* parse.y: remove global_symbols::pinned_dsym (and ::pinned_dsym_minor_marked). Mark pinned dsymbols by rb_gc_register_mark_object() because they are immortal. * prase.y (rb_gc_free_dsymbol): rename parameter name `ptr' to `sym'. |
fd7073f7aab5c6433a4a64a5b98c04404bbd4c14
|
2014-07-08 |
* parse.y (dsymbol_alloc): set global_symbols.minor_marked to 0. * parse.y (dsymbol_check): set RSYMBOL(sym)->fstr to 0 because we should not touch fstr after that. * parse.y (rb_gc_free_dsymbol): skip deleting str and sym from tables if fstr == 0. |
37f018fdf52d0f75d66d467055f992dee1c0a420
|
2014-07-09 |
* parse.y (symbols_i): delete garbage symbols for Symbol.all_symbols. |
76a929a7fca3c84630574e4daa9dab7a96b04fc8
|
2014-07-09 |
* parse.y: change Symbol <-> ID relationship to avoid exposing IDs from collectable symbols. [Bug #10014] Now, rb_check_id() returns 0 if corresponding symbol is pinned dynamic symbol. There is remaining intern_cstr_without_pindown(), it can return IDs from collectable symbols. We must be careful to use it (only used in parse.y). I think it should be removed if it does not have impact for performance. * parse.y: add: * STATIC_SYM2ID() * STATIC_ID2SYM() rename: * rb_pin_dynamic_symbol() -> dsymbol_pindown() * internal.h: remove: * rb_check_id_without_pindown() * rb_sym2id_without_pindown() add: * rb_check_symbol() * rb_check_symbol_cstr() * load.c: use rb_check_id() or rb_check_id_cstr(). * object.c: ditto. * struct.c: ditto. * thread.c: ditto. * vm_method.c: ditto. * string.c (sym_find): use only rb_check_symbol(). * sprintf.c (rb_str_format): use rb_check_symbol_cstr(). |
96815f1ebe945a802ca2e35a1bb6e3b564339732
|
2014-07-09 |
* symbol.c: remove rb_gc_mark_symbols(). fstrings refered by static symbols and pinned dynamic symbols are registerd by rb_gc_register_mark_object(). frstring refered by dynamic symbols (not pinned symbols) are refered from global_symbols.dsymbol_fstr_hash (Hash object). Note that fstrings refered from dynamic symbols must live loger than symbol objects themselves because rb_gc_free_dsymbol() uses fstring to remove from symbol tables. This is why we can not mark fstrings from dynamic symbols. This technique reduces root objects for GC marking. * gc.c (gc_mark_roots): ditto. * internal.h: ditto. |
9412551ee298619d827f892baad58c6a7687f017
|
2014-07-11 |
* benchmark/prepare_so_k_nucleotide.rb: use require_relative. * benchmark/prepare_so_reverse_complement.rb: ditto. |
88722e6a5dc9881e7d4a54e4cd90f5b4ebbb609c
|
2014-07-16 |
* gc.c (gc_mark_roots): call rb_vm_mark directly. * vm.c: remove mark function for RubyVM object because RubyVM object marked manually. |
20a9bd67636a82ca83c5cef4755a8206dc34eca7
|
2014-07-16 |
* iseq.c (rb_iseq_defined_string): use rb_gc_mark_object() instead of marking from vm_mark(). * vm.c (rb_vm_mark): ditto. |
01dc0a7104d09f59e5c94e286adcac7c04574eab
|
2014-07-16 |
* vm_core.h: remove rb_vm_t::trap_list[RUBY_NSIG], but add rb_vm_t::trap_list_cmds (an array) and rb_vm_t::trap_list_safes[RUBY_NSIG] (separate to two different array). This modification reduce root objects. * signal.c: ditto. * vm.c (rb_vm_mark): remove marking code for rb_vm_t::trap_list. |
239c98553dfe22ed77bb89e3b2c744eb279d9116
|
2014-07-16 |
revert r46834 because it does not pass tests |
c90cd20cc42d3c4dcf0fb8610df42f517d074e4b
|
2014-07-24 |
* gc.c: fix major GC flags. * add GPR_FLAG_MAJOR_BY_FORCE, which indicates major GC by METHOD, CAPI and so on (see GC_BY). * remove GPR_FLAG_MAJOR_BY_RESCAN because not used. * remove GPR_FLAG_MAJOR_BY_STRESS, use FORCE instead. * test/ruby/test_gc.rb: catch up. |
009bf7be44eb7f9019de23125a9238831ce90a82
|
2014-07-25 |
* gc.c (gc_mark_stacked_objects): fix error message. |
61a28934578f067f36f632f5a386366143798a69
|
2014-07-25 |
* gc.c (rb_gc_writebarrier_remember_promoted): should remember only OLD objects on RGENGC_AGE2_PROMOTION. |
41929aa6b60dd975bbb162a7d0a3cde11e2de6a8
|
2014-07-25 |
* gc.c: change objspace::rgengc::parent_object_is_old (boolean) to objspace::rgengc::parent_object (VALUE). Use Qfalse or RVALUE pointer instead of FALSE and TRUE. * gc.c (gc_marks_body): should clear parent_object just before gc_mark_roots() because there are no parents objects for root objects. |
2cb8ee942c7951ac552ab03176f827cbcf6aace3
|
2014-07-30 |
* gc.c: remove unused macros. |
b5e89e44f12a6e3a42e9515d1d3705d11f9442bf
|
2014-08-15 |
* array.c (rb_ary_tmp_new): added. This function creates internal use only array (which is completely hided by ObjectSpace.each_object) with filling nil. Otherwise, it can be incldues strange VALUEs. * internal.h: added. * node.h: use rb_ary_tmp_new_fill() for MEMO. |
6f7366c2064eb42231500e17ee3b3e5d55701f3f
|
2014-08-15 |
* string.c (setup_fake_str): fake strings should not set class by RBASIC_SET_CLASS() because it insert write barriers to fake (non-RVALUE) structure. It can cause unexpected behaviour. Ruby 2.1 also have a same problem (setup_fake_str() in parse.y). * symbol.c (setup_fake_str): ditto. |
3e759ed78d99193260ddda9b8dd80bc5710509fc
|
2014-08-15 |
* iseq.c (rb_iseq_clone): Should not insert write barrier from non-RVALUE data (to non-RVALUE data, of course). Ruby 2.1 also has a same problem. |
32dcb81d5851035de6b47ccfd760ee5b78f58d93
|
2014-08-22 |
* string.c (rb_fstring, fstr_update_callback): simply delete garbage key first. Garbage keys can be swept by lazy sweeping invoked by creating new fstring. So that simply do: (1) delete garbage key and return `fstr_update_callback' immediately (2) try again `fstr_update_callback()' to create a new fstr. This bug can be cause memory corruption, reported by http://u64.rubyci.org/~chkbuild/ruby-trunk/log/20140821T220302Z.fail.html.gz |
7bfaa467ce944bf9efbff2299865b5f4755473b3
|
2014-08-22 |
* string.c (rb_fstring): fix condition (easy to cause infinite loop!). |
68f55c4b35a70f97c8d7ea6fde91f56a94d74f49
|
2014-09-04 |
* dir.c (glob_helper): use #ifdef instead of #if. gcc's -Wundef option shows warning for undefined macro. * numeric.c (flo_is_finite_p): ditto. * vm_dump.c (rb_vmdebug_thread_dump_state): ditto. * vm_core.h: define VM_DEBUG_VERIFY_METHOD_CACHE to 0. |
123eeb1c1a904923754ce65148dbef045b56e083
|
2014-09-08 |
* gc.c: add incremental GC algorithm. [Feature #10137] Please refer this ticket for details. This change also introduces the following changes. * Remove RGENGC_AGE2_PROMOTION and introduce object age (0 to 3). Age can be count with FL_PROMOTE0 and FL_PROMOTE1 flags in RBasic::flags (2 bit). Age == 3 objects become old objects. * WB_PROTECTED flag in RBasic to WB_UNPROTECTED bitmap. * LONG_LIVED bitmap to represent living objects while minor GCs It specifies (1) Old objects and (2) remembered shady objects. * Introduce rb_objspace_t::marked_objects which counts marked objects in current marking phase. marking count is needed to introduce incremental marking. * rename mark related function and sweep related function to gc_(marks|sweep)_(start|finish|step|rest|continue). * rename rgengc_report() to gc_report(). * Add obj_info() function to get cstr of object details. * Add MEASURE_LINE() macro to measure execution time of specific line. * and many small fixes. * include/ruby/ruby.h: add flag USE_RINCGC. Now USE_RINCGC can be set only with USE_RGENGC. * include/ruby/ruby.h: introduce FL_PROMOTED0 and add FL_PROMOTED1 to count object age. * include/ruby/ruby.h: rewrite write barriers for incremental marking. * debug.c: catch up flag name changes. * internal.h: add rb_gc_writebarrier_remember() instead of rb_gc_writebarrier_remember_promoted(). * array.c (ary_memcpy0): use rb_gc_writebarrier_remember(). * array.c (rb_ary_modify): ditto. * hash.c (rb_hash_keys): ditto. * hash.c (rb_hash_values): ditto. * object.c (init_copy): use rb_copy_wb_protected_attribute() because FL_WB_PROTECTED is moved from RBasic::flags. * test/objspace/test_objspace.rb: catch up ObjectSpace.dump() changes. |
628dac10d38e46341cf3f76361c130c45123f4b1
|
2014-09-08 |
* benchmark/bm_app_lc_fizzbuzz.rb: added. This program is described closely in "Understanding Computation" chapter 6 by Tom Stuart. <http://computationbook.com/> Japanese translation will be published soon. <http://www.oreilly.co.jp/books/9784873116976/> |
f5ac3ea6e7c75d744fcb8222675ff76f960a423a
|
2014-09-08 |
* benchmark/bm_app_lc_fizzbuzz.rb: `answer.to_a' does not return a string, but an array. |
2a0cca3c89f55912e7baea5137f550617e505c68
|
2014-09-08 |
* benchmark/bm_app_lc_fizzbuzz.rb: should skip output on benchmark. |
dba3498944ff5533d8a5273e8317c8af779d6fdf
|
2014-09-09 |
* test/ruby/test_object.rb: extend timeout. |
c5e13c3270dc26d59682fea7b2aac7c25daf1f97
|
2014-09-09 |
* gc.c: pack boolean values into rb_objspace_t::flags with bit fields to improve cache locality. |
71990d0ed1735fb73627fe3286801fcf62c4a24e
|
2014-09-09 |
* gc.c (gc_sweep_rest): remove wrong modification of during_gc flag. |
335ca560deb729bee3ab049af1bc7cedae3a869d
|
2014-09-09 |
* gc.c: rename gc_stat entries and check stat transition. |
0c391a55d3ed4637e17462d9b9b8aa21e64e2340
|
2014-09-09 |
* gc.c: remvoe ruby_disable_gc_stress and add ruby_disable_gc to speed-up newobj_of(). * gc.c (ready_to_gc): check ruby_disable_gc. * signal.c: use ruby_disable_gc. |
ddac04d2c279c9bf86d00157240f316a7f0bb34d
|
2014-09-09 |
* gc.c: add rb_objspace_t::flags::gc_stressfull and ruby_gc_stressfull macro. Rename objspace->gc_stress to objspace->gc_stress_mode. If objspace->gc_stress_mode is true (!nil and !false) then ruby_gc_stressfull becomes TRUE. ruby_gc_stressfull will speedup newobj_of() slightly. * gc.c: initialize ruby_gc_stress(full|_mode) by gc_params.gc_stress even if ENABLE_VM_OBJSPACE is false. |
3238a4a729e39315168e126ae4c562cc203dad89
|
2014-09-09 |
* gc.c: move rb_objspace_t::flags::gc_stressfull after during_gc to make accesssing both parameters easy. * gc.c (heap_get_freeobj): add LIKELY() hint. * gc.c (heap_get_freeobj_from_next_freepage): ditto. * gc.c (newobj_of): check both parameters at once for exceptional case. |
15e4903cbab45f84a0b13c8092652b9584a77864
|
2014-09-09 |
* gc.c: fix layout of rb_objsapce_t to improve cache locality. newobj_of() accesses: (1) rb_objspace_t::flags (2) rb_objspace_t::eden_heap::freelist (3) and rb_objspace_t::eden_heap::free_pages if freelist is NULL. |
886e27995bd86327344e08314dc295182cf95a78
|
2014-09-09 |
* gc.c: continue layout changing. newobj_of() also touch: (4) increment total_allocated_object_num (5) check hook_events And gather fields related to marking phase. |
8ee9071cbe0a3a51af11127f9e336e68758c1bc9
|
2014-09-09 |
* gc.c (rb_objspace_t::heap_pages): rename field names: * used -> allocated_pages * increment -> allocatable_pages * length -> sorted_length And remove unused `limt' field. * gc.c: rename macros: * heap_pages_used -> heap_allocated_pages * heap_pages_length -> heap_pages_sorted_length * heap_pages_increment -> heap_allocatable_pages * gc.c (gc_stat_internal): fix symbol names ref: [Feature #9924] https://docs.google.com/spreadsheets/d/11Ua4uBr6o0k-nORrZLEIIUkHJ9JRzRR0NyZfrhEEnc8/edit?usp=sharing Yellow color fields in this table are changed. * test/ruby/test_gc.rb: catch up this change. |
727497607caa9aebbde51fb9b6d6892aba605e80
|
2014-09-09 |
* gc.c (gc_stat_internal): fix symbol names * heap_final_slot -> heap_final_slots * heap_swept_slot -> heap_swept_slots |
97fef1cdfbdfb654bf39ec14e556cc792c75b750
|
2014-09-09 |
* gc.c: rename * total_allocated_object_num -> total_allocated_objects * total_allocated_object_num_at_gc_start -> total_allocated_objects_at_gc_start * total_freed_object_num -> total_freed_objects * gc.c (gc_stat_internal): * rename total_allocated_object -> total_allocated_objects * rename total_freed_object -> total_freed_objects |
9b6bc26f878d96a25d4721396296266a22b2c05f
|
2014-09-09 |
* gc.c: rename rb_objspace_t::marked_objects to marked_slots. * gc.c (gc_marks_start): should be clear first. * gc.c (gc_marks_start): remembered shady objects are also marked. * gc.c (gc_stat_internal): add heap_marked_slots. |
6b4a7aa2a6e1f9ac0ff1d84a7e22238e401f5606
|
2014-09-09 |
* gc.c: refactoring for RGENGC_PROFILE > 0. * rename rb_objspace_t::profile::..._count to rb_objspace_t::profile::total_..._count * rename promote_infant_types to promote_types * gc.c (gc_remember_unprotected): count remembered shady objects here. |
6c6254274fdd37d0542b3a63654a2aacab69a73a
|
2014-09-10 |
* gc.c (objspace_total_slot): rename objspace_available_slots. * gc.c (objspace_live_slot, objspace_free_slot): rename ..._slot() to ..._slots(). * gc.c (objspace_free_slot): should subtract heap_pages_final_slots. * gc.c (gc_stat_internal): * add `heap_available_slots' field * rename heap_live_slot to heap_live_slots * rename heap_free_slot to heap_free_slots ref: [Feature #9924] |
83f02b98b14afe116c12f2f90ca9565418c8ed05
|
2014-09-10 |
* test/ruby/test_gc.rb: catch up last fix. |
2d581d6c2a7d93965b6e4679bb4b8a867feef7d8
|
2014-09-10 |
* gc.c (gc_stat_internal): support: * total_allocated_pages * total_freed_pages ref: [Feature #9924] |
6b398398b90aa5adc9f18fd206b9f6f31af8a653
|
2014-09-10 |
* gc.c (gc_stat_internal): rename: * remembered_shady_object -> remembered_wb_unprotected_objects * remembered_shady_object_limit -> remembered_wb_unprotected_objects_limit * old_object -> old_objects * old_object_limit -> old_objects_limit ref: [Feature #9924] |
ed729d398699aadb60ac79e19c276d4854083530
|
2014-09-10 |
* gc.c (gc_stat_internal): rename `heap_used' to `heap_allocated_pages'. ref: [Feature #9924] * test/ruby/test_gc.rb: add constraints test for gc stat information. |
52c41f1e8f2d64f6435a2c6d9521c7973bd4500d
|
2014-09-10 |
* gc.c (gc_stat_internal): rename: * malloc_increase -> malloc_increase_bytes * malloc_limit -> malloc_increase_bytes_limit * oldmalloc_increase -> oldmalloc_increase_bytes * oldmalloc_limit -> oldmalloc_increase_bytes_limit ref: [Feature #9924] |
c1b05c53b795fdb1137819bc2973d591af2712d0
|
2014-09-10 |
* gc.c (gc_stat): update rdoc. |
cf692592dcb0dcafe460eb8bf4b21851ccea9721
|
2014-09-10 |
* test/ruby/test_gc.rb: fix condition. |
6f7eda7b304388e640ec3164562ac5515364f84e
|
2014-09-10 |
* compile.c (rb_vm_addr2insn): rename to rb_vm_insn_addr2insn to clear what address. |
cc3088ea519efa279e4aa71fb994328a9080483f
|
2014-09-11 |
* include/ruby/ruby.h: freeze nil/true/false. * gc.c (should_be_finalizable): check frozen after checkin FL_ABLE. * object.c (rb_obj_taint): check OBJ_TAINTABLE(obj). * object.c (rb_obj_freeze): remove immediate_frozen_tbl because all of immediate values are frozen. YAY! * object.c (rb_obj_frozen_p): ditto. * test/ruby/test_eval.rb: skip instance_variable_set for frozen objects. * test/ruby/test_weakmap.rb: check ArgumentError instead of RuntimeError. |
8e3c057de880effb179d5c0aeb59e1d4c489eb09
|
2014-09-11 |
add reference to the ticket. |
970d8cb6136837b78787c1d1744db5fca1348968
|
2014-09-11 |
* include/ruby/ruby.h, gc.c: add new internal events RUBY_INTERNAL_EVENT_GC_ENTER and RUBY_INTERNAL_EVENT_GC_EXIT. When invoking GC process, GC_ENTER event is called. When exiting from GC process, GC_EXIT event is called. Incremental GC (incremental marking and lazy sweep) can call these events many times. For example (minor marking): (1) GC_ENTER - (2) GC_START (minor GC) (minor marking) - (3) GC_END_MARK (start lazy sweep) (4) GC_EXIT (ruby process) (5) GC_ENTER (lazy sweep) (6) GC_EXIT (ruby process) (... repeat (5), (6)) (7) GC_ENTER (finish lazy sweep) - (8) GC_END_SWEEP (9) GC_EXIT 2nd example (incremental major marking): (1) GC_ENTER - (2) GC_START (minor GC) (start incremental marking) (3) GC_EXIT (ruby process) (4) GC_ENTER (incremental marking) (5) GC_EXIT (ruby process) (... repeat (4), (5)) (6) GC_ENTER (finish incremental marking) - (7) GC_END_MARK (start lazy sweep) (8) GC_EXIT (ruby process) (9) GC_ENTER (lazy sweep) (10) GC_EXIT (ruby process) (... repeat (9), (10)) (11) GC_ENTER (finish lazy marking) - (12) GC_STOP_SWEEP (13) GC_EXIT Thease internal events enable to measure GC pause time completely. |
51101947bb964dde5808a8a9bd8b67879498f58f
|
2014-09-11 |
* gc.c (gc_mark_ptr): rename to gc_mark_set. * gc.c (gc_mark): add gc_mark_ptr() to skip is_markable_object() check. gc_mark_maybe() can use gc_mark_ptr() directly because passed pointer is checked by is_pointer_to_heap(). |
c653db51b0b32bea9a8469dbc236538b011cc0b1
|
2014-09-11 |
* gc.c (rb_gc_mark_values): added. This function is similar to rb_gc_mark_locations(), but not conservertive. * internal.h: ditto. * vm.c (env_mark): use rb_gc_mark_values() because env values should be Ruby VALUEs. |
8c6c9c46d8aecccfa66e9e34a76e7768025671b1
|
2014-09-11 |
* vm.c (rb_vm_register_special_exception): make new function to make and register special exceptions. * vm.c (rb_vm_mark): do not need to mark special exceptions because they are registerd by rb_gc_register_mark_object(). * eval.c (Init_eval): use rb_vm_register_special_exception(). * gc.c (Init_GC): ditto. * proc.c (Init_Proc): ditto. * thread.c (Init_Thread): ditto. |
e45fb73d7bc80b0f41b938279884bb4ea03c192e
|
2014-09-11 |
* vm.c (rb_thread_mark): use rb_gc_mark_values() to mark VM stack. |
45246bc04daee213dbfa47a576d631a8a9b037f6
|
2014-09-11 |
update NEWS for new GC related features. |
7b5b3eb3afa35ff0a57e963e57d7f1f7b1c6e837
|
2014-09-11 |
update NEWS for frozen nil/true/false. |
c566990f0214bae62c10fdde9de5dfd58c7e35c1
|
2014-09-11 |
add revision number. |
3edcd548f73846a98cb1a33057fa0019d4ef5cc0
|
2014-10-27 |
* gc.c: is_incremental_marking(), will_be_incremental_marking(): use `&&' with GC_ENABLE_INCREMENTAL_MARK intead of using #if/#else/#endif. |
ed8da2d12ae041b0536d3303659dc98411c2ec4f
|
2014-10-27 |
* test/ruby/test_super.rb: add a test to check block passing. |
90373dadfb1111420464d1c6fb80e83cdffe901d
|
2014-11-02 |
* gc.c (obj_info): show T_STRING more details. |
16377c36b9ca280407d80948fbc904ed15179441
|
2014-11-02 |
* sample/simple-bench.rb: added to measure performance of simple lines. |
fbebd502f9f374d1eef31c63c10c7d8adcd63280
|
2014-11-02 |
* rewrite method/block parameter fitting logic to optimize keyword arguments/parameters and a splat argument. [Feature #10440] (Details are described in this ticket) Most of complex part is moved to vm_args.c. Now, ISeq#to_a does not catch up new instruction format. * vm_core.h: change iseq data structures. * introduce rb_call_info_kw_arg_t to represent keyword arguments. * add rb_call_info_t::kw_arg. * rename rb_iseq_t::arg_post_len to rb_iseq_t::arg_post_num. * rename rb_iseq_t::arg_keywords to arg_keyword_num. * rename rb_iseq_t::arg_keyword to rb_iseq_t::arg_keyword_bits. to represent keyword bitmap parameter index. This bitmap parameter shows that which keyword parameters are given or not given (0 for given). It is refered by `checkkeyword' instruction described bellow. * rename rb_iseq_t::arg_keyword_check to rb_iseq_t::arg_keyword_rest to represent keyword rest parameter index. * add rb_iseq_t::arg_keyword_default_values to represent default keyword values. * rename VM_CALL_ARGS_SKIP_SETUP to VM_CALL_ARGS_SIMPLE to represent (ci->flag & (SPLAT|BLOCKARG)) && ci->blockiseq == NULL && ci->kw_arg == NULL. * vm_insnhelper.c, vm_args.c: rewrite with refactoring. * rewrite splat argument code. * rewrite keyword arguments/parameters code. * merge method and block parameter fitting code into one code base. * vm.c, vm_eval.c: catch up these changes. * compile.c (new_callinfo): callinfo requires kw_arg parameter. * compile.c (compile_array_): check the last argument Hash object or not. If Hash object and all keys are Symbol literals, they are compiled to keyword arguments. * insns.def (checkkeyword): add new instruction. This instruction check the availability of corresponding keyword. For example, a method "def foo k1: 'v1'; end" is cimpiled to the following instructions. 0000 checkkeyword 2, 0 # check k1 is given. 0003 branchif 9 # if given, jump to address #9 0005 putstring "v1" 0007 setlocal_OP__WC__0 3 # k1 = 'v1' 0009 trace 8 0011 putnil 0012 trace 16 0014 leave * insns.def (opt_send_simple): removed and add new instruction "opt_send_without_block". * parse.y (new_args_tail_gen): reorder variables. Before this patch, a method "def foo(k1: 1, kr1:, k2: 2, **krest, &b)" has parameter variables "k1, kr1, k2, &b, internal_id, krest", but this patch reorders to "kr1, k1, k2, internal_id, krest, &b". (locate a block variable at last) * parse.y (vtable_pop): added. This function remove latest `n' variables from vtable. * iseq.c: catch up iseq data changes. * proc.c: ditto. * class.c (keyword_error): export as rb_keyword_error(). * common.mk: depend vm_args.c for vm.o. * hash.c (rb_hash_has_key): export. * internal.h: ditto. |
5d1f152fa342f6bb5fa9b546e3971843ee81c6b1
|
2014-11-02 |
* test/ruby/test_method.rb: r48239 makes this test green. |
831e33c7809a92da6d14f0e518f960034c5dabd0
|
2014-11-02 |
* vm_core.h: change iseq parameter data structure. https://bugs.ruby-lang.org/issues/10440#change-49694 * change terminology `arg' to `param'. * move rb_iseq_t::arg_* to rb_iseq_t::param. * move rb_iseq_t::arg_size to rb_iseq_t::param::size. * move rb_iseq_t::argc to rb_iseq_t::param::lead_num. * move rb_iseq_t::arg_opts to rb_iseq_t::param::opt_num. * move rb_iseq_t::arg_rest to rb_iseq_t::param::rest_start. * move rb_iseq_t::arg_post_num to rb_iseq_t::param::post_num. * move rb_iseq_t::arg_post_start to rb_iseq_t::param::post_start. * move rb_iseq_t::arg_block to rb_iseq_t::param::block_start. * move rb_iseq_t::arg_keyword* to rb_iseq_t::param::keyword. rb_iseq_t::param::keyword is allocated only when keyword parameters are available. * introduce rb_iseq_t::param::flags to represent parameter availability. For example, rb_iseq_t::param::flags::has_kw represents that this iseq has keyword parameters and rb_iseq_t::param::keyword is allocated. We don't need to compare with -1 to check availability. * remove rb_iseq_t::arg_simple. * compile.c: catch up this change. * iseq.c: ditto. * proc.c: ditto. * vm.c, vm_args.c, vm_dump.c, vm_insnhelper.c: ditto. * iseq.c (iseq_data_to_ary): support keyword argument. |
ef25be739196ce019f1918736151e0daa0e93f19
|
2014-11-03 |
* vm_core.h: change semantics of opt_num and opt_table. `opt_num' was the number of optional parameters + 1. `opt_table' has "opt_num" entries. Change them to: `opt_num' is the number of optional parameters. `opt_talbe' has "opt_num + 1" entries. This change simplify parameter fitting logics. * compile.c: catch up this change. * iseq.c: ditto. * proc.c: ditto. * vm_args.c: ditto. |
af97388bc40d5f0ce2e9e3c452e9849f0f1166b1
|
2014-11-03 |
* iseq.c (iseq_memsize): catch up recent changes. |
86e9a1c0056bdb2f6623bb5644297fff1b4e4e70
|
2014-11-03 |
* iseq.c (iseq_free): resolve memory leak. |
a11aa75662f88ead04d340330c81bf243806ad57
|
2014-11-09 |
* gc.c (is_incremental_marking): use #if/#else because rb_objspace_t::flags::during_incremental_marking is not defined when GC_ENABLE_INCREMENTAL_MARK is 0. * gc.c (will_be_incremental_marking, is_full_marking): similar fix. |
495548ace4587df43d30b021cfa6b2f84c9d9d44
|
2014-11-11 |
* string.c (sym_equal): use rb_obj_equal(). rb_obj_equal() is specially optimized in opt_eq_func()@vm_insnhelper.c. This fix is made from this discussion: https://www.omniref.com/ruby/2.1.4/symbols/Symbol/%3D%3D#line=8361. |
b887f4fb45e091eb644313699192fff538a92934
|
2014-11-13 |
* gc.c: Tuning RincGC parameters. Before this patch, gc_marks_step() marks (white -> grey) fixed number objects. However, this strategy does not fit practical cases, for example too slow to make progres. This patch changes this strategy how many objects the gc_marks_step() should handle. We can estimate how many times gc_marks_step() is called during this major marking (== C) with the free slot number in pooled pages. We also can estimate the living object number (== L) using last marked_slots value. We can solve this problem (how many objects should be process in gc_marks_step()) by L/C. * gc.c (rb_objspace_t): add rb_objspace_t::rincgc::pooled_sltos and step_slots. |
97c2eac2dfe48dcaddb7454035b5cec005976246
|
2014-11-13 |
* gc.c: refactoring. * gc.c: use GC_ENABLE_INCREMENTAL_MARK instead of USE_RINCGC. * gc.c (gc_start): check FORCE_MAJOR_GC. |
4314ded83616c601de604f9b931251695d0bf087
|
2014-11-14 |
* gc.c: guard by #if/#endif with GC_ENABLE_INCREMENTAL_MARK to hide unused codes. * gc.c: similar to GC_ENABLE_LAZY_SWEEP. |
5d5c95f28e9f40bbe867ce05feaa351d76fd53dd
|
2014-11-14 |
* gc.c (gc_stat_internal): add compatible layer. From Ruby 2.2, keys of GC.stat are changed [Feature #9924]. To provide compatible layer, GC.stat add a default_proc (if default_proc of given Hash object is not set). At first use of this compatible layer of interpreter process, show a warning message like that: program: GC.stat[:total_allocated_object] warning message: "warning: GC.stat keys were changed from Ruby 2.1. In this case, you refer to obsolete `total_allocated_object' (new key is `total_allocated_objects'). Please check <https://bugs.ruby-lang.org/issues/9924> for more information." Pleaes correct my English message :) * hash.c (rb_hash_set_default_proc): export (in internal). * internal.h: ditto. |
a84b2a6afd1557829cd30843e0bee27e960adbe8
|
2014-11-14 |
* gc.c (gc_stat_internal): support comatible layer for GC.stat(symbol) type acess. |
43a5972a3e85c6a5f5eed0cc5bb833d4ec9dfe24
|
2014-11-18 |
* gc.c (gc_record): add information for debug print. |
d95aae32ce582b2116169836c8ac6fac7f9abe02
|
2014-11-25 |
* NEWS: add an "Implementation changes" section. |
f0071d3b311ab5af39a83481ce2363cbe4aab1b2
|
2014-11-26 |
* compile.c (iseq_set_sequence): use "nop" insn instead of "jump to next insn". https://bugs.ruby-lang.org/issues/8543#change-50085 |
42a15516c05609dd2fc5a8c5863e453444c24761
|
2014-11-26 |
* test/ruby/test_gc.rb (test_latest_gc_info): do test separately to avoid mysterious behavior. |
9c6deac2d1ea29002f4af33b9c1c15aa2d4c34b7
|
2014-11-27 |
* vm_core.h: add rb_thread_t::local_storage_recursive_hash to speed up Thread#[:__recursive_key__] access. [Bug #10511] * thread.c (threadptr_local_aref): add fast path for :__recursive_data__. * thread.c (threadptr_recursive_hash, threadptr_recursive_hash_set): add special accessor for recursive hash. * cont.c: store/restore local_storage_recursive_hash. * vm.c: init and mark local_storage_recursive_hash. * vm_trace.c (rb_threadptr_exec_event_hooks_orig): clear and restore local_storage_recursive_hash directly. |
3a26241da3aec3d20dfc408a32de1c539455c89b
|
2014-11-27 |
* gc.c (objspace_malloc_increase): enable lazy sweep on GC by malloc() (malloc_increase) to make GC incrementally. This change can increase memory consumption. Report us if you find any problem. |
6115f65d7dd29561710c3e84bb27180e5bab4380
|
2014-11-27 |
* vm_args.c: fix backtrace location for keyword related exceptions. For example, the following program def foo(k1: 1); end # line 1 foo(k2: 2) # line 2 causes "unknown keyword: k2 (ArgumentError)". Before this patch, the backtrace location is only line 2. However, error should be located at line 1 (over line 2 in stack trace). This patch fix this problem. * class.c (rb_keyword_error_new): separate exception creation logic from rb_keyword_error(), to use in vm_args.c. * vm_insnhelper.c (rb_arg_error_new): rename to rb_arity_error_new(). * vm_args.c (argument_arity_error): rename to argument_arity_error(). * vm_args.c (arugment_kw_error): added to fix backtrace. * test/ruby/test_keyword.rb: add tests. |
ea290804891b259cce4a156790ba024c1d52ad27
|
2014-11-27 |
* compile.c (iseq_compile_each): remove duplicated line event. [Bug #10449] * test/ruby/test_settracefunc.rb: add and fix tests. |
1de3e801c40e5a0121198ae08cd5b32dd92a42a2
|
2014-12-10 |
* vm_core.h: introduce new field rb_thread_t::local_storage_recursive_hash_for_trace to store recursive hash to avoid creating new recursive (nested) hashes for each trace events. [Bug #10511] * vm_trace.c (rb_threadptr_exec_event_hooks_orig): use it. * cont.c: catch up this fix. * vm.c (rb_thread_mark): ditto. |
1b6aa03eb91c13a78d6a13158f04a5930fc9c3ef
|
2014-12-11 |
* class.c (class_alloc): Strat from age == 2. Class and Module objects can be living long life. * iseq.c: Same for ISeq objects. * gc.c (RVALUE_AGE_RESET): added. * gc.c (newobj_of): allow to generate (age != 0) objects. * gc.c (rb_copy_wb_protected_attribute): reset age for wb unprotected objects. * include/ruby/ruby.h: add RUBY_TYPED_PROMOTED1 as an unrecommended flag. |
37b6f50ae51edf5793eb9f5d6a22b60cc8256dba
|
2014-12-12 |
* gc.c (gc_latest_gc_info): return :state field to show current GC state (none/marking/sweeping). [Feature #10590] |
85b42fe17b67688143e26f72b47aad766744ac3a
|
2014-12-15 |
* ext/objspace/objspace.c: ObjectSpace.memsize_of(obj) returns with sizeof(RVALUE). [Bug #8984] * gc.c (obj_memsize_of): ditto. * NEWS: add a NEWS entry. * test/objspace/test_objspace.rb: catch up this fix. * test/ruby/test_file_exhaustive.rb: ditto. |
97877237857a9603c13fcb867656af095436b950
|
2014-12-16 |
* test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): extend timeout seconds to 60 for RGENGC_CHECK_MODE > 0 environment. |
6eac885ebef2b5189bb68acadcba0530bcc4bfb1
|
2014-12-17 |
* compile.c (iseq_compile_each): check iseq->compile_data->option->specialized_instruction for opt_* insn. * test/ruby/test_iseq.rb: check no specialized_instructions option. |
9c6eaad72372576a3d351bc6044e74814718c137
|
2014-12-24 |
* hash.c (rb_hash_delete): return Qnil if there are no corresponding entry. [Bug #10623] * hash.c (rb_hash_delete_entry): try delete and return Qundef if there are no corresponding entry. * internal.h: add rb_hash_delete_entry()'s declaration. * symbol.c: use rb_hash_delete_entry(). * thread.c: use rb_hash_delete_entry(). * ext/-test-/hash/delete.c: use rb_hash_delete_entry(). |
5d77730f69889d7357dc7235728c2d4db3721c80
|
2014-12-24 |
* gc.c: remove unused rb_objspace_t::rgengc::old_objects_at_gc_start. |
37360f82aa3e41eed4497a945dbc80a81423aacf
|
2015-01-05 |
* test/fiddle/test_handle.rb: fix syntax. |
c7124d811fbfcbc02a7d1e5cf0d79cb62de73016
|
2015-01-16 |
vm.c, vm_core.h: constify VM_CF_LEP, VM_CF_PREV_EP, VM_CF_BLOCK_PTR and rb_vm_control_frame_block_ptr. |
513fefdd1f0feb68fe4bd9a233dd1cbfeb7390ba
|
2015-02-22 |
* gc.c (rb_objspace_call_finalizer): control GC execution during force firnalizations at the end of interpreter process. [Bug #10768] 1) Prohibit incremental GC while running Ruby-level finalizers to avoid any danger. 2) Prohibit GC while invoking T_DATA/T_FILE data structure because these operations break object relations consistency. This patch can introduce another memory consuming issue because Ruby-level finalizers can run after (2), GC is disabled. However, basically object consistency was broken at (2) as I described above. So that running Ruby-level finalizers contains danger originally. Because of this point, I need to suggest to remove these 3 lines (invoking remaining finalizers). And add a rule to add that finalizers should not add new finalizers, or say there is no guarantee to invoke finalizers that added by another finalizer. |
fbc8841a8ff3ec72b640904f2a46166c46e4caec
|
2015-02-24 |
* vm_insnhelper.c (lep_svar_place, lep_svar_get): do not create additional T_NODE object (svars holder) when only getting svars. |
ca6b174078fa15f33655be704d9409fdbc4f9929
|
2015-02-27 |
* vm_core.h: define vm_svar_index. * vm_insnhelper.c, vm.c, compile.c: use vm_svar_index names. * iseq.h: remove DEFAULT_SPECIAL_VAR_COUNT. use VM_SVAR_FLIPFLOP_START instead. |
8f88ff4e37a5374e49025076905c57941379336a
|
2015-03-05 |
* internal.h: remove struct method_table_wrapper. struct method_table_wrapper was introduced to avoid duplicate marking for method tables. For example, `module M1; def foo; end; end` make one method table (mtbl) contains a method `foo`. M1 (T_MODULE) points mtbl. Classes C1 and C2 includes M1, then two T_ICLASS objects are created and they points mtbl too. In this case, three objects (one T_MODULE and two T_ICLASS objects) points same mtbl. On marking phase, these three objects mark same mtbl. To avoid such duplication, struct method_table_wrapper was introduced. However, created two T_ICLASS objects have same or shorter lifetime than M1 (T_MODULE) object. So that we only need to mark mtbl from M1, not from T_ICLASS objects. This patch tries marking only from M1. Note that one `Module#prepend` call creates two T_ICLASS objects. One for refering to a prepending Module object, same as `Module#include`. We don't nedd to care this T_ICLASS. One for moving original mtbl from a prepending class. We need to mark such mtbl from this T_ICLASS object. To mark the mtbl, we need to use `RCLASS_ORIGIN(klass)` on marking from a prepended class `klass`. * class.c: ditto. * eval.c (rb_using_refinement): ditto. * gc.c: ditto. * include/ruby/ruby.h: define m_tbl directly. The definition of struct RClass should be moved to (srcdir)/internal.h. * method.h: remove decl of rb_free_m_tbl_wrapper(). * object.c: use RCLASS_M_TBL() directly. |
b4d1c024de88e305f761fcbe8e9e35a5ce60ceb6
|
2015-03-05 |
add Changelog |
01c6f504959e180c769f1adc35a3f69161868ee3
|
2015-03-05 |
* gc.c (obj_info): show node name too. |
4bb910816e98c5b059f263ab65ff8076349be9c2
|
2015-03-06 |
* test/ruby/test_beginendblock.rb: do not change directory. Run system command in the directory mounted by vboxfs on Windows 7 and get warning like that "warning: Insecure world writable dir...". |
3859d767e11c09b2a824172af86204939e1a5c98
|
2015-03-06 |
* test/webrick/test_filehandler.rb: on vboxsf (on VirtualBox on Windows 7), file name and permissions are strange (can access by short file name and so on). Simply skip on such tests on such FS. To detect strange FS, this patch use a part of code `File.executable?(__FILE__)`. Please correct them if there are better ways. |
d84f9b16946bca06ce0557ebe99152d7d445c9ec
|
2015-03-06 |
* fix namespace issue on singleton class expressions. [Bug #10943] * vm_core.h, method.h: remove rb_iseq_t::cref_stack. CREF is stored to rb_method_definition_t::body.iseq_body.cref. * vm_insnhelper.c: modify SVAR usage. When calling ISEQ type method, push CREF information onto method frame, SVAR located place. Before this fix, SVAR is simply nil. After this patch, CREF (or NULL == Qfalse for not iseq methods) is stored at the method invocation. When SVAR is requierd, then put NODE_IF onto SVAR location, and NDOE_IF::nd_reserved points CREF itself. * vm.c (vm_cref_new, vm_cref_dump, vm_cref_new_toplevel): added. * vm_insnhelper.c (vm_push_frame): accept CREF. * method.h, vm_method.c (rb_add_method_iseq): added. This function accepts iseq and CREF. * class.c (clone_method): use rb_add_method_iseq(). * gc.c (mark_method_entry): mark method_entry::body.iseq_body.cref. * iseq.c: remove CREF related codes. * insns.def (getinlinecache/setinlinecache): CREF should be cache key because a different CREF has a different namespace. * node.c (rb_gc_mark_node): mark NODE_IF::nd_reserved for SVAR. * proc.c: catch up changes. * struct.c: ditto. * insns.def: ditto. * vm_args.c (raise_argument_error): ditto. * vm_eval.c: ditto. * test/ruby/test_class.rb: add a test. |
9113098e654b6601a86f60a91f7b2b61de1d3a3f
|
2015-03-06 |
* class.c (rb_prepend_module): need a WB for klass -> origin. |
ae166317a4cceeaa195760f675f89a4afec0feee
|
2015-03-08 |
* internal.h: define CREF accessor macros. * CREF_CLASS(cref) * CREF_NEXT(cref) * CREF_VISI(cref) * CREF_VISI_SET(cref, v) * CREF_REFINEMENTS(cref) * CREF_PUSHED_BY_EVAL(cref) * CREF_PUSHED_BY_EVAL_SET(cref) * CREF_OMOD_SHARED(cref) * CREF_OMOD_SHARED_SET(cref) * CREF_OMOD_SHARED_UNSET(cref) This is process to change CREF data type from NODE. |
2324c14d00c301467ac9a3a5fc95d812109e116f
|
2015-03-08 |
* vm_insnhelper.h (COPY_CREF_OMOD): fix translation miss. |
8dced4d2c0f284bd17a3cb4a4fbed6d459cc71e0
|
2015-03-08 |
* internal.h: define rb_cref_t and change to use it. rb_cref_t is data type of CREF. Now, the body is still NODE. It is easy to understand what is CREF and what is pure NODE. |
2262aba6a282aaad0ac7fedee9101e7927c48a4b
|
2015-03-08 |
* vm_insnhelper.c (lep_svar_set): add WBs. |
5856347f16368783a1d9d6691e3d5e125f720897
|
2015-03-08 |
* vm_insnhelper.h: define struct SVAR for SVAR. This data type is also same layout of NODE (NODE_IF). * vm_insnhelper.c: catch up this change. |
c5c5e96643fd674cc44bf6c4f6edd965aa317c9e
|
2015-03-09 |
* vm_insnhelper.c (ep_cref): rename to lep_cref() because it should be local ep. |
04e348e61ad5cfde94311b38c9b4f8581e205c0d
|
2015-03-10 |
* thread.c (thread_join): Fixnum (except TAG_FATAL) and NODE should not be reached here. |
46cdb8f18766383a9e11b5a6e9a0c010e7e8653a
|
2015-03-10 |
* vm_insnhelper.h: define struct THROW_DATA to represent throwing data. Also define accessor functions. * eval_intern.h: move related changes into vm_insnhelper.h. Now these MACROs (functions) are only used in vm*.c. There is only THROW_DATA_P(err) to check this data type or not. * vm.c: catch up these changes. * vm_eval.c: ditto. * vm_insnhelper.c: ditto. |
ed130faf2878c383cab52fa5ed887837e04f303d
|
2015-03-10 |
* proc.c: use RUBY_VM_IFUNC_P() to recognize IFUNC or not. * vm.c: ditto. * vm_dump.c: ditto. * vm_insnhelper.c: ditto. * vm_core.h: use RB_TYPE_P() instead of BUILTIN_TYPE(). |
e2c50946986bd9ba29d21ecef9bd32831e760f4b
|
2015-03-10 |
* eval_intern.h (THROW_DATA_P): use RB_TYPE_P() instead of BUILTIN_TYPE(). * thread.c (thread_join): use THROW_DATA_P(). |
b8fa8865ee9e76b83cdd64d54d563ca3ef648831
|
2015-03-10 |
* vm_insnhelper.h: define struct IFUNC. * vm_eval.c (rb_iterate): use it. * vm_insnhelper.c (vm_yield_with_cfunc): ditto. |
a74fe7546d0583d0b8e0f0dbc6ee19758888ad4a
|
2015-03-10 |
* vm_eval.c (rb_catch_protect): use THROW_DATA_VAL(). |
9f21759c53934597aa2db6a68fffc2edd662b3ed
|
2015-03-10 |
* vm_insnhelper.h (THROW_DATA_STATE): return int, not VALUE. * vm_insnhelper.h (THROW_DATA_STATE_SET): accept int value. |
97e21517a3c79b9b144b7160afd545c283815413
|
2015-03-11 |
* internal.h: define struct MEMO. * enum.c: use MEMO. * enumerator.c: ditto. * load.c: ditto. * node.h: return (struct MEMO *) pointer. |
5922c954614e5947a548780bb3b894626affe6dd
|
2015-03-11 |
* gc.c: fix memory leak by prepend method. It is easy to reproduce with such script: module M; def bar; end; end loop{ Class.new do def foo; end prepend M end } * gc.c (obj_free): free T_ICLASS::m_tbl if it is created by prepend. To recognize it, check RICLASS_IS_ORIGIN flag. * gc.c (gc_mark_children): T_ICLASS objects only need to mark T_ICLASS::m_tbl if RICLASS_IS_ORIGIN is set. * gc.c (obj_memsize_of): count T_ICLASS if RICLASS_IS_ORIGIN is set. * internal.h (RCLASS_SET_ORIGIN): add to set RCLASS_SET_ORIGIN. TODO: The word `origin' seems not good name. We need to invent another good name. * class.c: use RCLASS_SET_ORIGIN(). * class.c (class_alloc): zero clear rb_classext_t. |
0952b43b9be23688702368f6fcae3fde2dd69fb5
|
2015-03-11 |
* include/ruby/ruby.h: introduce new type T_IMEMO. T_IMEMO is Internal Memo type, internal use only. T_IMEMO has same purpose of NODE_MEMO. To insert T_IMEMO, type numbers are modified a little. * internal.h: define struct RIMemo. Each RIMemo objects has imemo_type. We can observe it by the imemo_type() function. * gc.c (rb_imemo_new): added. * node.h: remove NODE_CREF and NEW_CREF(). * node.c (rb_gc_mark_node): ditto. * vm.c (vm_cref_new): use rb_imem_new(). * vm_eval.c: ditto. * vm_eval.c (eval_string_with_cref): * vm_eval.c (rb_type_str): * vm_insnhelper.c: use RIMemo objects for CREF. * ext/objspace/objspace.c: support T_IMEMO. |
734146a459564e8b6aa221d8a5d4d55c8610d557
|
2015-03-11 |
fix ChangeLog entry |
ac28b985bdc2f85eada8070d40f6de9f11dab7f8
|
2015-03-11 |
* vm_insnhelper.c: use T_IMEMO to create SVAR. * internal.h, vm_insnhelper.h: move definition `struct SVAR' from vm_insnhelper.h to internal.h. And rename it to strcut vm_svar. new imemo_type imemo_svar is added. * gc.c (gc_mark_children): mark imemo_svar. * node.c (rb_gc_mark_node): remove useless marking. |
ce179b3d04e0875d7cb332f5b57c9df89bb4de07
|
2015-03-11 |
* vm_insnhelper.h: use T_IMEMO to create THROW_DATA. Add THROW_DATA_NEW(). * internal.h: move defnition of `struct THROW_DATA' from vm_insnhelper.h to internal.h. Rename `THROW_DATA' to `vm_throw_data'. * eval_intern.h (THROW_DATA_P): move to internal.h. THROW_DATA is no longer T_NODE, so check T_IMEMO. * gc.c (gc_mark_children): mark THROW_DATA. * vm.c: catch up these changes. * vm_eval.c: ditto. * vm_insnhelper.c: ditto. |
48cb7391190612c77375f924c1e202178f09f559
|
2015-03-11 |
* internal.h, eval_intern.h: move CREF accessors. List IMEMO supported types in internal.h. |
7790f37efdd8dd42a0a43c3206f6afdd43f8e86a
|
2015-03-11 |
* node.h: remove NODE_IFUNC, NEW_IFUNC. * internal.h: use T_IMEMO for IFUNC. rename `struct IFUNC' to `struct vm_ifunc' and move the definition from vm_insnhelper.h. Add imemo_ifunc. * gc.c (gc_mark_children): mark imemo_ifunc type T_IMEMO object. * compile.c: catch up these changes. * proc.c: ditto. * vm_core.h (RUBY_VM_IFUNC_P): ditto. * vm_eval.c (rb_iterate): ditto. * vm_insnhelper.c: ditto. * ext/objspace/objspace.c: ditto. |
eabfb049f44bf498597c0319d23c794f4a90248c
|
2015-03-11 |
* eval.c (frame_called_id): it should use vm_ifunc type. * eval.c (frame_func_id): ditto. |
08f3cfb5859332c0f7a9a574dc64a2a002c50354
|
2015-03-11 |
* internal.h: use T_IMEMO to represent `struct MEMO' value. memo->v1 and memo->v2 is WB protected values. So use MEMO_V1/V2_SET() macros to set these values. memo->u3 is ambiguous (sometimes a VALUE, sometimes an integer value), so use gc_mark_maybe() in gc.c to mark it. Rename NEW_MEMO() to MEMO_NEW(). Move MEMO_FOR and NEW_MEMO_FOF macros from node.h. Export a rb_imemo_new() function for ext/ripper. * node.h: remove NODE_MEMO. * enum.c: catch up these change. * enumerator.c: ditto. * load.c: ditto. * ext/objspace/objspace.c (count_nodes): ditto. * gc.c (gc_mark_children): mark imemo_memo type. * parse.y (new_args_gen): use T_IMEMO. (I'm not sure it is working correctly...) |
fea779829b8d1a1d0901c33ca4ffe212fa4813ee
|
2015-03-11 |
* gc.c: RGENGC_CHECK_MODE should be 0. |
146a259568da5f56b3e9a7ee29451a98ab8b16b9
|
2015-03-11 |
* load.c: removed unused header file "node.h". * method.h: ditto. * symbol.c: ditto. |
f61df4b0a6e1a9b707f13961d77aebffe7644c9c
|
2015-03-12 |
* common.mk: remove unused dependency. |
724012a23d8274543002eb42ef71d87308481d40
|
2015-03-12 |
* internal.h, node.h: move a definition of `struct rb_global_entry' and related functions from node.h to internal.h. * variable.c: remove unused include pragma. * common.mk: remove unused dependency. |
f6e9452b23e4aeb84c2c3cd12eaa10d802115fa6
|
2015-03-17 |
* benchmark/bm_vm1_gc_wb_ary(_promoted).rb: separate fastpath and slowpath for WB. Before this change bm_vm1_gc_wb_ary.rb tried to check the performance for WB slowpath (making a reference from oldobj to newobj). However, from Ruby 2.2, 3 GCs are needed to promote new objects because only 3 age objects are promted objects. To compare fastpath and slowpath, introduce new "promoted" version benchmark. bm_vm1_gc_wb_ary.rb is for fastpath and bm_vm1_gc_wb_ary_promoted.rb is for slowpath. * benchmark/bm_vm1_gc_wb_obj(_promtoed).rb: ditto. |
0db407836bf7871fdee9e32357bd90c3ddaa1e11
|
2015-03-17 |
* include/ruby/ruby.h: use rb_gc_writebrrier() simply. For incremental GC, we need to get a pointer to the objspace. We can share this pointer for the following WB process. And considering icache hit ratio, prcess in the GC. * gc.c (rb_gc_writebarrier): added. * gc.c (gc_writebarrier_generational, gc_writebarrier_incremental): make them NOINLINE because inlining them into rb_gc_writebarrier() makes a prologue code of rb_gc_writebarrier() longer (storing callee save registers). This patch improve the performance of WB on micro-benchmarks. name ruby 2.1 trunk modified vm1_gc_wb_ary* 0.511 0.632 0.532 vm1_gc_wb_ary_promoted* 0.578 0.701 0.674 vm1_gc_wb_obj* 0.419 0.575 0.492 vm1_gc_wb_obj_promoted* 0.537 0.664 0.618 (sec) |
1e98a25e9fff7e4c9c858f67c9ca7c6b9ee793f8
|
2015-03-17 |
* string.c: introduce STR_FAKESTR to show string is FAKESTR or not. * string.c (STR_SET_SHARED): ignore FAKESTR because only Ruby objects can use write barrier. |
89a603d2e69dfb791050ae276c565a6981f6ebbb
|
2015-03-18 |
* string.c: add a comment about RSTRING_FSTR. |
683e823669caa8f42497de4dab4a173a664ee741
|
2015-03-18 |
* benchmark/bm_vm1_gc_wb_ary.rb: run GC to finish "marking" phase. * benchmark/bm_vm1_gc_wb_obj.rb: ditto. * benchmark/bm_vm1_gc_wb_ary_promoted.rb: add parameter full_mark: false to invoke only minor GC. * benchmark/bm_vm1_gc_wb_obj_promoted.rb: ditto. |
3857777781e75a1638e914b8ed238a357a95aea9
|
2015-03-18 |
* gc.c (check_rvalue_consistency): do not need to check is_sweeping(). |
3b1e28036e318d06b5e2f4f65f709ad483aa40ec
|
2015-03-18 |
* gc.c (RVALUE_PROMOTE_RAW): rename to RVALUE_OLD_LONG_LIVED_SET() to make clear. |
ec4624b0f47ee6a99036b1711bd5746cdd99da33
|
2015-03-18 |
* gc.c (gc_writebarrier_generational): add an alternative write barrier (WB) implementation. When finding reference from [Old obj] to [New obj] by WB, current implementation marks [Old obj] as remembered old objects and marks chilldren of [Old obj] at the beggining of marking. Added (but disabled) code changes current behaviour. This fix promote [New obj] to old and marks as a remembered old object. We can assume "new objects referred from old objects are maybe long-lived old objects". Disadvantage of added algorithm is we may promote unwilling short-lived objects. For example, consider many new objects push and pop to an old stack object. All of new objects (short-lived objects) promote to old objects unexpectedly. To compare these behaviour, I add this new code (but disabled it). |
975c4179573ea1d3c661e7e6851ff5b104fbad06
|
2015-03-18 |
* gc.c: rename terminologies. * long_lived -> uncollectible: because this bitmap does not mean "long lived objects in past", but means "prohibit collection thse objects until next major GC". Uncollectible objects consist of two types objects, one is old objects (WB protected objects which age == 3) and another is uncollectible WB unprotected objects which are referred from old objects * remembered_wb_unprotected_objects -> uncollectible_wb_unprotected_objects: because uncollectible objects does not mean remembered objects. |
92fa998ce7ae9238532f1a9447685441eecfe189
|
2015-03-18 |
* gc.c (check_rvalue_consistency): refactoring. * not inline on RGENGC_CHECK_MODE > 0. * check SPECIAL_CONST_P(obj) first. * add a check that remembered_bit is only TRUE when old (age == 3). * gc.c (RVALUE_DEMOTE): should clear RVALUE_REMEMBERED bit. remembered_bit should be TRUE only for old (age == 3) objects. Actually there are no effect because demoted objects will be uncollectible WB unprotected objects (marked at the begginig of every minor GC). |
9c64155f30207cc14ea56af4a8258ad184453546
|
2015-03-18 |
* enum.c (enum_sort_by): add WBs. |
33aaa89a79b4969655b1c4ee1ba52f6b22d17a4a
|
2015-03-18 |
* gc.c (RGENGC_OLD_NEWOBJ_CHECK): add check mechanism. If RGENGC_OLD_NEWOBJ_CHECK > 0, then create old objects (not new objects) periodically. Create one old objects per RGENGC_OLD_NEWOBJ_CHECK objects are created. |
05704f51fb2d3e183535fa52fd43ac0b7227cdb7
|
2015-03-18 |
* internal.h (IMEMO_DEBUG): added. * internal.h: remove unused FL_IMEMO_MARK_V[0-3]. * gc.c (rb_imemo_new_debug): added. * gc.c (obj_info): show imemo type name. |
4690e6228402bf045403e7d5eae9b44519c69c6b
|
2015-03-18 |
* iseq.c (iseq_mark): skip some marking if iseq->orig is available. * iseq.c (rb_iseq_clone): need WB for iseq1->klass = iseq0->klass (done in MEMCPY). |
5f879f76d7e7a546fcf3ecb67de8d3cbe475b6c4
|
2015-03-18 |
* test/objspace/test_objspace.rb: flag name was changed (long_lived -> uncollectible). |
6964df9a21633be9c77eba96e56f8a62db8901d1
|
2015-03-18 |
* object.c (rb_obj_clone): do not touch age (FL_PROMOTED[01]) because rb_obj_alloc() can return old object in debug. |
38cfec906d1cc99a5743d66c44f3245eea90e56d
|
2015-03-19 |
* gc.c (rb_copy_wb_protected_attribute): need demote for old objects. |
f537854ff33fce2723ac7ff46180a990b5b0df5d
|
2015-03-19 |
* gc.c (newobj_of): fix RGENGC_OLD_NEWOBJ_CHECK logics. * skip on incremental marking because not sure what happen :p * rb_gc_writebarrier_remember() is enough to mark children. |
9546ba46052d82bcc771b173485b6e93ff7319c9
|
2015-03-19 |
* gc.c (obj_info): show allocation site if GC_DEBUG is not 0. |
1643234fe3b513e03d1e4bd343fee5f9869b8b2d
|
2015-03-19 |
* gc.c, internal.h: export rb_gc_verify_internal_consistency(). |
531f775fd4ed171a1f297e1aa00940ce9f2a457b
|
2015-03-19 |
* gc.c (rb_copy_wb_protected_attribute): demote `dest' object. |
8ed4c1a42042e66ecbafd65ed5602154c39b4e65
|
2015-03-19 |
* gc.c (rb_copy_wb_protected_attribute): `dest' can be WB unprotected. |
77205540e0a1ff85b2441e3cbc3e16941fbc42a7
|
2015-03-20 |
* gc.c (obj_info): show class name and T_DATA type_name. |
a38a1fbcc2e404c2ba7fc40699bd439ffdee8f61
|
2015-03-20 |
* gc.c (obj_info): obj_info() can receive internal objects. * gc.c (check_rvalue_consistency): obj_info() returns const char *. |
1ab760bb51f7b51bf00ad8a6eb04a3fa5304385c
|
2015-03-20 |
revert r50031 because it includes unexpected patch |
30da8b833c1cbfd4df8e008f685a522a2b1ff4c2
|
2015-03-20 |
* gc.c (obj_info): obj_info() can receive internal objects. * gc.c (check_rvalue_consistency): obj_info() returns const char *. |
fce98c9e882f1ea8c4d73409e6b782701391204c
|
2015-03-24 |
* gc.c (gc_writebarrier_generational): fix messages for rb_bug(). Remove `rb_' prefix. * gc.c (gc_writebarrier_incremental): ditto. |
633574eee5ed28367d868bbe6391b3e8f7bba08f
|
2015-04-06 |
* vm_args.c: protect value stack from calling other methods during complex parameter setting process (splat, kw, and so on). [Bug #11027] * vm_core.h: remove rb_thead_t::mark_stack_len. With this modification, we don't need to use th->mark_stack_len. * test/ruby/test_keyword.rb: add a test. * cont.c (cont_capture): catch up this fix. * vm.c (rb_thread_mark): ditto. |
0d382f4878e176a286344fd6c8da27d0a6f91175
|
2015-04-08 |
* test/ruby/test_symbol.rb: fix syntax error. |
93df5a0a906587244feff91e2bc1eecb11e31d28
|
2015-04-10 |
* vm.c (vm_exec): check other events when RETURN is thrown. [Bug #10724] * test/ruby/test_settracefunc.rb: add a test. |
1a688f001c5f7ba76cba57e6433977c69f4ad620
|
2015-04-10 |
* ext/objspace/objspace.c (setup_hash): unify common routine. |
7f75a1a810fa031bb6ff31166d8ada09a27e9f35
|
2015-04-10 |
* ext/objspace/objspace.c: add ObjectSpace.count_imemo_objects method to count imemo objects for each type. * test/objspace/test_objspace.rb: add a test. * NEWS: describe about this addition. |
adabc801be4a6536c786ea5c6c858ba71a186336
|
2015-04-10 |
* test/objspace/test_objspace.rb: remove debug prints. |
0e7889959191ba74307ef450817833164eddb9f4
|
2015-04-15 |
* vm_trace.c (rb_tracepoint_new): Add documentation for rb_tracepoint_new C level API [ci skip] Provided by @emilsoman. [fix GH-869] |
3004c29afda80310da014d564d4ae7088c932e5b
|
2015-04-15 |
* vm_trace.c (rb_tracepoint_new): fix documentation. Commented by @emilsoman. |
62c2b2e80a03c6f4e5a304bcf113e6f3a9d6cbee
|
2015-04-23 |
* gc.c (gc_mark_roots): fox to work PRINT_ROOT_TICKS. |
87944f8e61f4686adc7fd69081e21f53ae863361
|
2015-05-12 |
* method.h: remove unused declaration. |
08f923bdc16ae54dc01d421248f0d00e0ad27b7d
|
2015-05-20 |
* iseq.c (exception_type2symbol): show correct bug message. |
8147bd1e491718521bea4aa97fe98010dbbb6625
|
2015-05-21 |
* proc.c (method_proc): rename to method_to_proc. |
0dba10a47f8f1269eb90f1617ddfb484bd3d8229
|
2015-05-21 |
* proc.c (rb_method_get_iseq): rename to rb_method_iseq. * iseq.c: catch up this fix. |
c0ce9a722767c085830eb4be06cbf2f35811a22a
|
2015-05-21 |
commit miss. iseq.h should be commit with last commit. |
1cc326a35117dcd8fdb22e7cce4430df2c24b57f
|
2015-05-21 |
fix ChangeLog, too |
f6e95240265ce9da8a8832125928bd9e31881124
|
2015-05-21 |
* proc.c: rename functions. * method_get_def() -> method_def() * method_get_iseq() -> method_def_iseq() * method_get_cref() -> method_cref() |
928d89c77b81b7ef560c0f40b0119dfcd31f3605
|
2015-05-21 |
* proc.c: fix issues caused by binding created from Method#to_proc. [Bug #11163] * vm.c (vm_cref_new_toplevel): export as rb_vm_cref_new_toplevel(). * test/ruby/test_method.rb: add some assersions. |
7239111ef5384ff9bde6139ba11c05e387dcb9b6
|
2015-05-21 |
* iseq.c: constify. * iseq.h: ditto. * method.h: ditto. * proc.c: ditto. * vm_method.c: ditto. |
c722f8ad1d6bdf3b18ec8141751b0f8c9e6f6913
|
2015-05-21 |
fix indent |
5ea16ea6de794451b8a9040eeb951b1b045c647c
|
2015-05-23 |
* debug.c (ruby_debug_print_id): use rb_id2name() for fprintf(). |
6abf7938bface30fe562eb612bfb0ed66c6ff8d7
|
2015-05-28 |
* ext/objspace/objspace.c: add two methods to debug internals. * ObjectSpace.internal_class_of: return RBASIC_CLASS(obj). * ObjectSpace.internal_super_of: return RCLASS_SUPER(cls). * NEWS: add information about both methods. * test/objspace/test_objspace.rb: add tests for both methods. |
7fd053a01832a4899cca28f62af246592f8e3f59
|
2015-05-29 |
* tool/make_hgraph.rb: added. |
9cf6751f8393dd28294b6ed0c40650f7b4235b20
|
2015-05-30 |
* method.h, vm_method.c (rb_free_method_entry): constify a parameter. * vm_method.c (rb_unlink_method_entry): constify a parameter. * vm_core.h: remove useless declaration about rb_unlink_method_entry(). |
744d63aacfa441fdbcd2541f477f3c1e057ad566
|
2015-05-30 |
fix ChangeLog message. |
255c16b5989f218208a1d595e6a84f61a1e23204
|
2015-05-30 |
* vm_method.c (rb_unlink_method_entry): make it static. |
f1d4e8b3b3be402621b043e858a8da5fc8797662
|
2015-05-30 |
* method.h: add VM_METHOD_TYPE_ALIAS rb_method_definition_t::type to fix [Bug #11173]. Now, inter class/method alias creates new method entry VM_METHOD_TYPE_ALIAS, which has an original method entry. * vm_insnhelper.c (find_defiend_class_by_owner): added. Search corresponding defined_class from owner class/module. * vm_method.c (rb_method_entry_get_without_cache): return me->klass directly for defined_class. Now, no need to check me->klass any more. * vm_method.c (method_entry_set0): separated from method_entry_set(). * vm_method.c (rb_alias): make method entry has VM_METHOD_TYPE_ALIAS. * vm_method.c (release_method_definition): support VM_METHOD_TYPE_ALIAS. * vm_method.c (rb_hash_method_definition): ditto. * vm_method.c (rb_method_definition_eq): ditto. * vm_method.c (release_method_definition): ditto. * vm_insnhelper.c (vm_call_method): ditto. * vm_insnhelper.c (vm_method_cfunc_entry): ditto. * vm_eval.c (vm_call0_body): ditto. * gc.c (mark_method_entry): ditto. * proc.c (method_def_iseq): ditto. * proc.c (method_cref): ditto. * proc.c (rb_method_entry_min_max_arity): ditto. * test/ruby/test_alias.rb: add tests. * test/ruby/test_module.rb: fix a test to catch up current behavior. |
3da0f60bb9e6619e1ddbfb2d96e6dcdbff22f255
|
2015-05-30 |
* method.h: fix typo of comments. |
9794af357e7b9dab52b62a62a2031d7e7903c5c2
|
2015-05-30 |
fix indent |
c542165757c6978d57c077688f41e5c8ee1064ff
|
2015-05-31 |
* test/ruby/test_gc.rb: increase timeout seconds for GC stressful debugging. |
3d410dde5c35e60fcfdcb3640ab3edcb40550055
|
2015-05-31 |
* gc.c , gc.h (rb_obj_info): export obj_info(VALUE) for debugging. |
258131446c394684678736507723ab404c892301
|
2015-05-31 |
* class.c (rb_class_has_methods): added to reduce depenedency to internal class data structure. * internal.h: ditto. * hash.c (has_extra_methods): use added function. |
ac6990c75f6850a845c4c7d09d96ebc5e17cea0a
|
2015-05-31 |
* vm_core.h (VM_FRAME_MAGIC_DUMMY): introduce new frame type to recognize dummy frame. * vm.c (th_init): use new frame type. * vm_args.c (raise_argument_error): ditto. |
1611735b293128f8638f68b21d66e34817eb8f86
|
2015-05-31 |
* eval_intern.h, vm_method.c: move macros to functions. * SCOPE_TEST(f) -> rb_frame_visibility_test(flag). * SCOPE_CHECK(f) -> rb_frame_visibility_check(flag). * SCOPE_SET(f) -> rb_frame_visibility_set(flag). * load.c (load_ext): use it. |
cd909b553f85cff810c5f588ece29994f68d1fe8
|
2015-06-01 |
* class.c: remove needless include pragmra for method.h. * struct.c: ditto. * vm_method.c: ditto. |
105a2c079ddeb7ce425a32ab2bf557b4fe918180
|
2015-06-01 |
* internal.h: move class related definitions. |
7221252ab1ab473f82eb8c2def387a2719a7fa19
|
2015-06-01 |
* vm_method.c (rb_method_entry_make): do not show warning message when method_entry is an alias. |
4777bdce272e21f55df4dca7280c76ae706dac0c
|
2015-06-01 |
* gc.c (gc_mark_children): remove a garbage character introduced at the last commit. |
57b817f4c550e54ff57642b50723cc7c92bdd2fe
|
2015-06-02 |
* method.h: make rb_method_entry_t a VALUE. Motivation and new data structure are described in [Bug #11203]. This patch also solve the following issues. * [Bug #11200] Memory leak of method entries * [Bug #11046] __callee__ returns incorrect method name in orphan proc * test/ruby/test_method.rb: add a test for [Bug #11046]. * vm_core.h: remvoe rb_control_frame_t::me. me is located at value stack. * vm_core.h, gc.c, vm_method.c: remove unlinked_method... codes because method entries are simple VALUEs. * method.h: Now, all method entries has own independent method definititons. Strictly speaking, this change is not essential, but for future changes. * rb_method_entry_t::flag is move to rb_method_definition_t::flag. * rb_method_definition_t::alias_count is now rb_method_definition_t::alias_count_ptr, a pointer to the counter. * vm_core.h, vm_insnhelper.c (rb_vm_frame_method_entry) added to search the current method entry from value stack. * vm_insnhelper.c (VM_CHECK_MODE): introduced to enable/disable assertions. |
8ff3ab515cc291cd7309352836f73235597faaa5
|
2015-06-02 |
* proc.c (proc_curry): remove a debug line. |
ac88162198a6b5f1b8f3e17eaac5fe4b0b411934
|
2015-06-02 |
* method.h: remove rb_method_iseq_t::iseqval. While making a r50728, iseqval is needed (to mark correctly), but now just iseqptr is enough. * class.c: catch up this fix. * gc.c: ditto. * proc.c: ditto. * vm_method.c: ditto. |
721e096ffd0c853ec90252f4f88e1cd6438eca93
|
2015-06-02 |
* vm_method.c (rb_alias): rename parameter names. |
15164bf33cf27f38cd5657e2b58acfd9a312f2ed
|
2015-06-02 |
* insns.def (defined), vm_insnhelper.c (vm_defined): move instruction body to the vm_defined() function. |
5bcae57c6f0c5270763737c058f091fa86d1ce8a
|
2015-06-02 |
* vm_insnhelper.c (vm_defined): skip respond_to_missing? when a method is available. [Bug #11211] * test/ruby/test_defined.rb: add a test for this fix. |
a54da1c05058d9f873f28c317677c5393d7327c9
|
2015-06-02 |
* vm_insnhelper.c (vm_defined): check respond_to_missing? at defined?(func()). * test/ruby/test_defined.rb: add a test for this fix. |
d67641086b5739b3ffa12c155428eeeebb330008
|
2015-06-02 |
add a ticket number |
18bbd05709a4d52704ac217f30c0d9f35830b7f0
|
2015-06-03 |
* method.h: split rb_method_definition_t::flag to several flags. `flag' contains several categories of attributes and it makes us confusion (at least, I had confused). * rb_method_visibility_t (flags::visi) * NOEX_UNDEF -> METHOD_VISI_UNDEF = 0 * NOEX_PUBLIC -> METHOD_VISI_PUBLIC = 1 * NOEX_PRIVATE -> METHOD_VISI_PRIVATE = 2 * NOEX_PROTECTED -> METHOD_VISI_PROTECTED = 3 * NOEX_SAFE(flag)) -> safe (flags::safe, 2 bits) * NOEX_BASIC -> basic (flags::basic, 1 bit) * NOEX_MODFUNC -> rb_scope_visibility_t in CREF * NOEX_SUPER -> MISSING_SUPER (enum missing_reason) * NOEX_VCALL -> MISSING_VCALL (enum missing_reason) * NOEX_RESPONDS -> BOUND_RESPONDS (macro) Now, NOEX_NOREDEF is not supported (I'm not sure it is needed). Background: I did not know what "NOEX" stands for. I asked Matz (who made this name) and his answer was "Nothing". "At first, it meant NO EXport (private), but the original meaning was gone." This is why I remove the mysterious word "NOEX" from MRI. * vm_core.h: introduce `enum missing_reason' to represent method_missing (NoMethodError) reason. * eval_intern.h: introduce rb_scope_visibility_t to represent scope visibility. It has 3 method visibilities (public/private/protected) and `module_function`. |
419b0da453599835b007f6df54c23ab7badc1d7f
|
2015-06-03 |
fix typo in ChangeLog |
b5cd6ba21412b24c5dc44971fe96812e2548cc7e
|
2015-06-03 |
* method.h: change fileds order to gather frequent acces fields. * vm_insnhelper.c (vm_call_method): add LIKELY(). |
5ac1972c1a7b56aa1aace73b30c1a8fcd8705ac8
|
2015-06-03 |
* vm_core.h: rename enum missing_reason to enum method_missing_reason. * vm_core.h: use enum method_missing_reason for rb_thread_t::method_missing_reason. * vm_eval.c: catch up this fix. * vm_insnhelper.c: ditto. |
c3cc282f7f23abb36c10e4df489c04976b9b4004
|
2015-06-03 |
* class.c (clone_method): remove redundant check for me->def != NULL. Now, all `me` have `me->def`. * proc.c (rb_method_entry_location): ditto. * vm.c (rb_vm_check_redefinition_opt_method): ditto. * vm.c (add_opt_method): ditto. * vm_eval.c (vm_call0_body): ditto. |
4ab762de21ecf321cf88b8f17750f6f4ea9ebf3f
|
2015-06-03 |
* vm_method.c: rename `rb_frame_...' to `rb_scope_...'. * eval_intern.h: move decl. of rb_scope_visibility_set() to method.h. * load.c: catch up this fix. |
4e870d302b94d90513534ea68416df36dbe3ce61
|
2015-06-03 |
* vm_core.h (rb_vm_rewrite_cref_stack): rename to rb_vm_rewrite_cref(). * class.c (clone_method): use renamed name. * vm_insnhelper.c (rb_vm_rewrite_cref): do not use `node' in variable names. |
93f88afbd6f126e753648d6f921595fe57aa45bd
|
2015-06-03 |
* class.c (clone_method): do not use me->klass, but use explicitly passed argument. |
332210d4410b1b6aa520264e5f09bafa61626a73
|
2015-06-03 |
* class.c (method_entry_i): mtbl should not have `me' as NULL. |
bd1e9d638ee3c7c61d0ed2cf2716460e78ced6fe
|
2015-06-03 |
* vm_insnhelper.c (def_iseq_ptr): `iseqval' is not available any more. |
4ef6a68235fb8790d9b937569ba4deb2148b4c49
|
2015-06-03 |
add a fix to last commit |
9e73d45e0f38fddc7a117c5bc2eab103573e5986
|
2015-06-03 |
* method.h: introduce rb_method_refined_t for refined method entry. * class.c (move_refined_method): catch up this fix. * gc.c (mark_method_entry): ditto. * vm_eval.c (vm_call0_body): ditto. * vm_insnhelper.c (vm_call_method): ditto. * vm_method.c: ditto. |
3619a8b52d876469193b3cecaa80d7ff13f09002
|
2015-06-04 |
* method.h: constify rb_method_refined_t::orig_me. Also constify the following functions. * rb_resolve_refined_method() * rb_method_entry_with_refinements() * rb_method_entry_without_refinements() * rb_method_entry_copy()'s parameter. * class.c: catch up this fix. * vm_insnhelper.c: ditto. * vm_method.c: ditto. |
0f419d39b4eebe9b3726bec19472de48bb23ad03
|
2015-06-04 |
* vm_method.c (rb_add_method_iseq): use intermediate struct to avoid initializing struct with variables. [Bug #11217] * method.h: add a comment about it. |
54a9ac76559d7016fdcd9fdd7aab9b8217079779
|
2015-06-04 |
* vm_insnhelper.c (vm_defined): show additional messages on rb_bug(). |
63e1601049d084a6b1db7f2226ceed179dd21c09
|
2015-06-04 |
* vm_insnhelper.c (vm_defined): no need to use cast. |
99ee18afcb50e454f00ea1ea85c14a2387ed101c
|
2015-06-04 |
* test/lib/envutil.rb (assert_no_memory_leak): change default value of limit from 1.5 to 2.0. It is ad-hoc fix to solve test failure in travis-ci. |
b6b76e3a85130dc24dbacd60a82033c780581e9b
|
2015-06-05 |
* internal.h: move definition of rb_cref_t to method.h. * eval_intern.h: move definition of rb_scope_visibility_t to method.h. * method.h: change rb_cref_t::scope_visi from VALUE to rb_scope_visibility_t. [Bug #11219] * vm.c (vm_cref_new): accept rb_method_visibility_t directly. * vm_insnhelper.c (rb_vm_rewrite_cref): don't use 0, but METHOD_VISI_UNDEF. * vm_method.c (rb_scope_visibility_set): don't need to use cast. * vm_method.c (rb_scope_module_func_set): ditto. |
eb774ceb222ff36f391313ff6fcebd3d9bcdcc02
|
2015-06-05 |
* class.c (ins_methods_push): change 3rd parameter's type from long to rb_method_visibility_t. * class.c (ins_methods_i): catch up this fix. * class.c (method_entry_i): cast to st_data_t instead of `long'. |
ea67fb97d96b8439bd9ae035651063bdd1b4ddfb
|
2015-06-05 |
* gc.c: remove struct mark_tbl_arg and pass objspace directly to avoid indirect access overhead. |
1f9af2a9530073951c6f63b1ab9d1d2c6f14c177
|
2015-06-06 |
* class.c (ins_methods_push): Change type and name of parameters to make more clear. |
c9044a247286ac7b02964c80361c8acede98043f
|
2015-06-06 |
* class.c: ins_methods_push() needs rb_method_visibility_t type on 2nd arg. |
c19d37375074987b36413af6bf83df7262ce227d
|
2015-06-06 |
* method.h: back to share rb_method_definition_t by rb_method_entry_t. r50728 changed sharing `def's to isolating `def's on alias and so on. However, this change conflicts future improvement plan. So I change back to sharing approach. * method.h: move rb_method_definition_t::flags to rb_method_entry_t::attr::flags. rb_method_entry_t::attr is union with VALUE because this field should have same size of VALUE. rb_method_entry_t is T_IMEMO). And also add the following access macros to it's fileds. * METHOD_ENTRY_VISI(me) * METHOD_ENTRY_BASIC(me) * METHOD_ENTRY_SAFE(me) * vm_method.c (rb_method_definition_addref): added instead of rb_method_definition_clone(). Do not create new definition, but increment alias_count. * class.c (clone_method): catch up this fix. * class.c (method_entry_i): ditto. * proc.c (mnew_internal): ditto. * proc.c (mnew_missing): ditto. * vm_eval.c: ditto. * vm_insnhelper.c: ditto. * vm_method.c: ditto. |
0d3591f250bfe90805cac3c2d5bbfcadb720df37
|
2015-06-07 |
* gc.c (obj_info): print method id for T_IMEMO/ment. |
62a81ad98c2421077acd637c11e06022e19a4977
|
2015-06-10 |
* vm_insnhelper.c (check_frame): check type of cref_or_me first. |
85647d9f2b4b2da17827cc1d613f425748a39b3f
|
2015-06-10 |
* vm_core.h: define VM_ASSERT() for assertion enabled only when (VM_CHECK_MODE > 0). * vm_insnhelper.c: move definition VM_CHECK_MODE from vm_insnhelper.c to vm_core.h. * vm.c: remove <assert.h> |
c7edd997e87d609feee894bf61b45f7f0a956eba
|
2015-06-10 |
* vm.c: use VM_ASSERT instead of assert(). * vm_args.c: ditto. * vm_insnhelper.c: ditto. * vm_method.c: ditto. |
a5fa5f34b051e4d77ea0d768deb006a45acd9245
|
2015-06-10 |
* method.h: embed rb_method_entry_t::attr::flags (5 bits) into rb_method_entry_t::flags to make one word spare space. Add some macros to access these flags. * vm_method.c: use these macros. * internal.h: define IMEMO_FL_USHIFT and IMEMO_FL_USER[0-4] for T_IMEMO local flags. |
5421cea25246b62fd86700777aa21469629a98b0
|
2015-06-11 |
* method.h (METHOD_ENTRY_BASIC_SET): should clear last bit. |
0991d0a8ee73977ab3e2aed2fbe361985f6f0d0d
|
2015-06-11 |
* method.h (METHOD_ENTRY_BASIC_SET): fix last commit (unbalanced parens). |
5a174881895346234523ea01ae9ebc528132c917
|
2015-06-16 |
* test/objspace/test_objspace.rb: relax pattern because uncollectible flag and marked flag can be false at major GC. |
cbffea05bd83e8d546dcf05757e4dbad31e13643
|
2015-06-16 |
add ref to [Bug #10852]. |
37b38306e85c80c809db0cc0a61d0aa562ef5158
|
2015-06-18 |
* ext/objspace/objspace.c (count_imemo_objects): support imemo_ment. |
c8590d60f1bc365cd462de7302351f6a15c9bf4e
|
2015-06-18 |
* method.h: constify rb_method_alias_struct::original_me and rb_method_refined_struct::orig_me. * class.c (move_refined_method): use RB_OBJ_WRITE() for me->def->body.refined.orig_me. |
58ba24f8858ed4e9cae3dfe5aa8e62e0c6316878
|
2015-06-18 |
* vm.c (rb_vm_control_frame_id_and_class): remove usless codes. `me' knows ID and owner class. |
c78e0d37130bdbbfd3169abb74bd1d9e473b9040
|
2015-06-18 |
* bootstraptest/test_method.rb: remove a test because $SAFE=2 was obsolete. Please check btest, too. |
8b0cfe9042aa04a8f574fe4169ecea43b550b638
|
2015-06-24 |
* gc.c (gc_mark_ptr): add a check code for #11244. It should be removed later. But we can remain this check because it is only a branch. |
4a8b0481069eb4b01d1a4da8ee5a2a4ae5aac319
|
2015-06-24 |
* gc.c (gc_mark_children): add additional debug code for #11244. |
9a2638717c929a29247507a030f33777b7d11e98
|
2015-06-24 |
* gc.c (RGENGC_OBJ_INFO, obj_info): add a macro to enable/disable rich obj_info() output. At the default, the value of RGENGC_OBJ_INFO is (RGENGC_DEBUG | RGENGC_CHECK_MODE). * gc.c (RGENGC_OBJ_INFO): force enable it to debug #11244. * gc.c (gc_mark_ptr): print more details with obj_info(). * gc.c (gc_mark_children): remove useless debug prints. |
988267d462efdb29c1d7c716cbc720e4bbd69bdc
|
2015-06-24 |
* vm_method.c (rb_method_definition_reset): need a WB for VM_METHOD_TYPE_ATTRSET. |
04deaf5d516ba1b26d0e656aa029b913888a54f4
|
2015-06-24 |
* gc.c (obj_info): show more details for T_IMEMO/imemo_ment. |
93a460f7742dd72b6c3f7667cde69417010c2f76
|
2015-06-24 |
* gc.c (obj_info, method_type_name): show method type name in a string instead of a number. |
f4d71ad509c929444c43f37befc0f14571cec797
|
2015-06-25 |
* vm_method.c: make a rb_method_definition_t data (def) *after* making a rb_method_entry_t data (me). Normally, `me' points `def'. Some Ruby objects pointed from `def' and objects are marked by `me' (mark_method_entry() in gc.c). However, `def' is built before making a `me', then nobody can mark objects pointed from `def' before making (and pointing from) `me'. I hope this patch solve #11244. * vm_method.c: remove `rb_' prefix from some static functions. * method.h (rb_method_entry_create): constify * gc.c (mark_method_entry): add checking `def' and `def->body.iseq.iseqptr' availability because they can be NULL. |
7bba6adc56b20606101131069ef8f1f96ff71fa2
|
2015-06-25 |
* vm_method.c (rb_method_entry_create): need to call method_definition_reset() if def is given. Actually, `me' is a new object, so we don't need to call it. It is just to make sure. * vm_method.c (method_definition_reset): remove duplicated insertion. * vm_method.c (rb_method_entry_clone): assgine dst->def here, not in method_definition_reset(). |
771fceba59dd3e39bacccf37cb42fe903bba2452
|
2015-07-02 |
* gc.c (rb_raw_obj_info): separated from rb_obj_info(). Fill internal object information into passed buffer. * gc.h: declare rb_raw_obj_info(). |
c36c43dcb7c1f13d2bcd34e99e1e05303d3572d8
|
2015-07-02 |
* gc.c: remove `#define RGENGC_OBJ_INFO 1' line introduced to debug Bug #11244. |
5e8a147480f87f19a8b96ad3fb33a25fb4bb19b9
|
2015-07-03 |
* method.h: introduce rb_callable_method_entry_t to remove rb_control_frame_t::klass. [Bug #11278], [Bug #11279] rb_method_entry_t data belong to modules/classes. rb_method_entry_t::owner points defined module or class. module M def foo; end end In this case, owner is M. rb_callable_method_entry_t data belong to only classes. For modules, MRI creates corresponding T_ICLASS internally. rb_callable_method_entry_t can also belong to T_ICLASS. rb_callable_method_entry_t::defined_class points T_CLASS or T_ICLASS. rb_method_entry_t data for classes (not for modules) are also rb_callable_method_entry_t data because it is completely same data. In this case, rb_method_entry_t::owner == rb_method_entry_t::defined_class. For example, there are classes C and D, and incldues M, class C; include M; end class D; include M; end then, two T_ICLASS objects for C's super class and D's super class will be created. When C.new.foo is called, then M#foo is searcheed and rb_callable_method_t data is used by VM to invoke M#foo. rb_method_entry_t data is only one for M#foo. However, rb_callable_method_entry_t data are two (and can be more). It is proportional to the number of including (and prepending) classes (the number of T_ICLASS which point to the module). Now, created rb_callable_method_entry_t are collected when the original module M was modified. We can think it is a cache. We need to select what kind of method entry data is needed. To operate definition, then you need to use rb_method_entry_t. You can access them by the following functions. * rb_method_entry(VALUE klass, ID id); * rb_method_entry_with_refinements(VALUE klass, ID id); * rb_method_entry_without_refinements(VALUE klass, ID id); * rb_resolve_refined_method(VALUE refinements, const rb_method_entry_t *me); To invoke methods, then you need to use rb_callable_method_entry_t which you can get by the following APIs corresponding to the above listed functions. * rb_callable_method_entry(VALUE klass, ID id); * rb_callable_method_entry_with_refinements(VALUE klass, ID id); * rb_callable_method_entry_without_refinements(VALUE klass, ID id); * rb_resolve_refined_method_callable(VALUE refinements, const rb_callable_method_entry_t *me); VM pushes rb_callable_method_entry_t, so that rb_vm_frame_method_entry() returns rb_callable_method_entry_t. You can check a super class of current method by rb_callable_method_entry_t::defined_class. * method.h: renamed from rb_method_entry_t::klass to rb_method_entry_t::owner. * internal.h: add rb_classext_struct::callable_m_tbl to cache rb_callable_method_entry_t data. We need to consider abotu this field again because it is only active for T_ICLASS. * class.c (method_entry_i): ditto. * class.c (rb_define_attr): rb_method_entry() does not takes defiend_class_ptr. * gc.c (mark_method_entry): mark RCLASS_CALLABLE_M_TBL() for T_ICLASS. * cont.c (fiber_init): rb_control_frame_t::klass is removed. * proc.c: fix `struct METHOD' data structure because rb_callable_method_t has all information. * vm_core.h: remove several fields. * rb_control_frame_t::klass. * rb_block_t::klass. And catch up changes. * eval.c: catch up changes. * gc.c: ditto. * insns.def: ditto. * vm.c: ditto. * vm_args.c: ditto. * vm_backtrace.c: ditto. * vm_dump.c: ditto. * vm_eval.c: ditto. * vm_insnhelper.c: ditto. * vm_method.c: ditto. |
b07e78fa32f842629bc058430dea89ae9fa820bd
|
2015-07-06 |
* method.h, proc.c (rb_method_entry_location): make it static and remoev prefix `rb_' because it is used only in proc.c. |
c8854d2ca4be9ee6946e6d17b0e17d9ef130ee81
|
2015-07-06 |
* vm_insnhelper.c (vm_search_super_method): do not skip calling same methods in super. [Bug #3351] * test/ruby/test_super.rb: fix a test. |
202643de00ee1a241aa4c082e74967eda02c4ebb
|
2015-07-06 |
* cont.c (fiber_init): initialize control frame correctly. This fix does not affect any ordinal execution, but affects debug prints. |
02d5868962417298cf041ce723d406e16a635693
|
2015-07-06 |
* vm_core.h: remove rb_iseq_t::klass to reduce dynamic data. * internal.h, iseq.c (rb_iseq_klass): remove it because rb_iseq_t::klass is removed. * vm_insnhelper.c (vm_super_outside): do not see cfp->iseq, but check callable method entry on a frame. This fix simplify the logic to search super class. * test/ruby/test_method.rb: support super() from Proc. Now, [Bug #4881] and [Bug #3136] was solved. * proc.c (rb_mod_define_method): catch up this change. * vm.c (vm_define_method): ditto. * vm_backtrace.c (rb_profile_frames): now, each `frame' objects are rb_callable_method_entry_t data or iseq VALUEs. This fix introduce minor compatibility issue that rb_profile_frame_label() always returns rb_profile_frame_base_label(). * test/-ext-/debug/test_profile_frames.rb: catch up this change. |
ce45744254edebad3265cfa75a3868023144cbfa
|
2015-07-06 |
* vm_core.h: remove a useless declaration. |
5c4d7b9a9ed82ef09d483e02a49cf8578fd07c7a
|
2015-07-06 |
* vm_core.h: remove rb_iseq_t::defined_method_id because it is not needed. * eval.c (frame_func_id): simplify. rb_callable_method_entry_t has enough information. * eval.c (frame_called_id): ditto. * iseq.c (prepare_iseq_build): catch up this fix. * proc.c (rb_mod_define_method): ditto. * vm.c (vm_define_method): ditto. |
57f2c60727bb856d1ace83d03045b03d11fb8768
|
2015-07-06 |
* vm.c (vm_define_method): remove an unused local variable. |
16a68369d2c12dd6aae1b902aac5fe72b9ee9ec9
|
2015-07-07 |
* iseq.c, internal.h (rb_iseq_clone): removed because we don't need to clone iseq any more. * class.c (clone_method): share iseq between cloned methods. All of method dependent information are able to refer from method entry. |
f395c5be87dac498debc538d2d57953a74f97cb0
|
2015-07-07 |
* vm_core.h: remove rb_iseq_t::orig because rb_iseq_clone() no longer exists. * iseq.c: don't use rb_iseq_t::orig. |
c5dad98c41a720a15c9dcc96d3df570cd9e23df3
|
2015-07-07 |
* proc.c (rb_method_call): because data->me should be non-NULL, do not check data->me * proc.c (method_inspect): ditto. |
135c75727d44d84422355465a42f8e9c485e8f79
|
2015-07-07 |
* cont.c (cont_free): remove mysterious fflush() introduced at r19890, maybe accidentaly. |
548497d545b72aa3a73ee7514cc4aacbe1c7536e
|
2015-07-07 |
* vm_backtrace.c: remove debug flag introduced accidentaly. |
dc2eb0c653bf3ae308b960ba7f2222fb35c6bcfc
|
2015-07-09 |
* vm_core.h (rb_control_frame_t): fix comments (layout index). |
d53e1a7937b8c68ed5230fb3e7a1f9fb9524a898
|
2015-07-09 |
* vm_core.h: remove rb_call_info_t::klass because rb_callable_method_entry_t has information about defined class. * vm_insnhelper.c (vm_search_method): don't set ci->klass because it is removed. * vm_insnhelper.c (rb_equal_opt): ditto. * vm_insnhelper.c (vm_search_superclass): removed because it is too simple to write code directly. * vm_insnhelper.c (vm_defined): don't use vm_search_superclass(). This fix avoid searching current callable `me' twice. * vm_insnhelper.c (vm_search_super_method): ditto. |
f23adf745943174cdd4ecd88789c69acec69ad77
|
2015-07-09 |
* vm_insnhelper.c (vm_search_super_method): use CI_SET_FASTPATH(). |
a82ce7c55626086ad264a0d26de63b7603956de9
|
2015-07-14 |
* vm.c: refactoring Proc/Env related code. * vm_core.h: remove blockprocval field from rb_proc_t and rb_binding_t. Instead of this field, mark given block in Proc at rb_env_t::env. * vm.c (vm_make_env_each): make an Env object with this layout. And also simplify parameters. * proc.c: catch up this fix. * vm_core.h: remove rb_env_t::local_size because it is not used. * vm_dump.c (rb_vmdebug_env_dump_raw): catch up this fix. * vm_core.h (rb_vm_make_env_object): remove rb_vm_make_env_object() because it is only refered from vm.c. * vm_eval.c (eval_string_with_cref): catch up this fix. |
e07dad00ee37173a990cc8d4f147963d7f57a28c
|
2015-07-14 |
* vm_core.h, vm.c: remvoe rb_env_t::prev_envval because we can know it via env->ep. rb_vm_env_prev_envval(env) returns prev_envval via env->ep. * vm_core.h (rb_vm_env_local_variables): change parameter type from VALUE (T_DATA/env) to `const rb_env_t *' to make same as rb_vm_env_prev_envval(). * proc.c: catch up these changes. * vm_dump.c: ditto. * vm.c: rename macros. * ENV_IN_HEAP_P() to VM_EP_IN_HEAP_P() because it uses ep. * ENV_VAL() to VM_ENV_EP_ENVVAL() because it is too short. |
994460c4db639d098ec72ca54b3442f5ea05336f
|
2015-07-14 |
* vm_core.h, vm.c: remove rb_proc_t::envval because we can know it via rb_proc_t::block::ep. rb_vm_proc_envval(const rb_proc_t *proc) returns an Env object which the Proc object use. * proc.c: catch up this fix. * vm_dump.c (rb_vmdebug_proc_dump_raw): ditto. |
e262b29ed00fc09f64bd809d84233bdc56d21bab
|
2015-07-15 |
* vm.c (vm_make_env_each): add comments about env layout. Do not use `i' to specify `new_ep'. * vm.c (rb_proc_create, rb_vm_make_proc_lambda): envval is not used. |
7b08338ab19b635a9da4584ba3ac0ebf845b051e
|
2015-07-16 |
* iseq.c (rb_iseq_disasm): rename rb_iseq_t *iseqdat to iseq and VALUE *iseq to code. * iseq.c (rb_iseq_disasm_insn): ditto. |
c3e8cca95040dbae915cad793ccb72f56021bd4a
|
2015-07-16 |
* vm_core.h: constify rb_iseq_t::parent_iseq. rb_iseq_t::local_iseq is not constant data because local_iseq::flip_cnt can be modified (commentted). * compile.c: catch up this fix. * iseq.c: ditto. * vm_insnhelper.c: ditto. |
c0c20ccb519071802e82341f0bb584c9d833b3de
|
2015-07-21 |
* compile.c: constify the first parameter (iseq). * iseq_add_mark_object() * iseq_add_mark_object_compile_time() * iseq.c, iseq.h (rb_iseq_add_mark_object): ditto. |
46215c1e90183952be55bead4c04cc8b6a8b8ee5
|
2015-07-21 |
* gc.c (internal_object_p): Now a singleton classes appear by ObjectSpace.each_object. [Bug #11360] * test/ruby/test_objectspace.rb: add a test about it. |
c5618920ed9cdfafc539a7b43f0911fbdff7bd19
|
2015-07-21 |
* method.h: constify rb_method_iseq_t::iseqptr. * proc.c (rb_method_entry_min_max_arity): catch up this fix. * vm_insnhelper.c (def_iseq_ptr): constify. |
948bd807c3c564317e1c2e8d66ecaf85c49dead7
|
2015-07-21 |
* vm_core.h: constify rb_call_info_t::blockiseq and rb_iseq_t::iseq. * vm.c, vm_insnhelper.c: catch up this fix. * iseq.c (iseq_data_to_ary): constify the first iseq parameter. * vm_insnhelper.c (vm_make_proc_with_iseq): ditto. |
684c449c361ab8c29ddca6d7e9a77fb7ea82864c
|
2015-07-21 |
fix ChangeLog |
331fb4a2b3576ee364dc67f212b3c9c759fafdd8
|
2015-07-21 |
* vm_core.h: constify rb_call_info_t::kw_arg, rb_control_frame_t::iseq and rb_control_frame_t::block_iseq. * iseq.c (iseq_free): catch up this fix. * vm.c: ditto. * vm_dump.c: ditto. |
6053426a669386353a6b7fe11f3d3ea8d3c11e7c
|
2015-07-21 |
* ext/objspace/objspace.c (total_i): no need to skip singleton classes. |
e4198a73d406d9a9f61a6db2d2a243c0f5267679
|
2015-07-21 |
* make rb_iseq_t T_IMEMO object (type is imemo_iseq). All contents of previous rb_iseq_t is in rb_iseq_t::body. Remove rb_iseq_t::self because rb_iseq_t is an object. RubyVM::InstructionSequence is wrapper object points T_IMEMO/iseq. So RubyVM::ISeq.of(something) method returns different wrapper objects but they point the same T_IMEMO/iseq object. This patch is big, but most of difference is replacement of iseq->xxx to iseq->body->xxx. (previous) rb_iseq_t::compile_data is also located to rb_iseq_t::compile_data. It was moved from rb_iseq_body::compile_data. Now rb_iseq_t has empty two pointers. I will split rb_iseq_body data into static data and dynamic data. * compile.c: rename some functions/macros. Now, we don't need to separate iseq and iseqval (only VALUE). * eval.c (ruby_exec_internal): `n' is rb_iseq_t (T_IMEMO/iseq). * ext/objspace/objspace.c (count_imemo_objects): count T_IMEMO/iseq. * gc.c: check T_IMEMO/iseq. * internal.h: add imemo_type::imemo_iseq. * iseq.c: define RubyVM::InstructionSequnce as T_OBJECT. Methods are implemented by functions named iseqw_.... * load.c (rb_load_internal0): rb_iseq_new_top() returns rb_iseq_t (T_IMEMO/iesq). * method.h (rb_add_method_iseq): accept rb_iseq_t (T_IMEMO/iseq). * vm_core.h (GetISeqPtr): removed because it is not T_DATA now. * vm_core.h (struct rb_iseq_body): remove padding for [Bug #10037][ruby-core:63721]. |
0d775f2a3c402310b71a581e368f347c52af78e5
|
2015-07-22 |
* vm_core.h: separate rb_iseq_body into rb_iseq_constant_body and rb_iseq_variable_body (rb_iseq_t::variable_body). rb_iseq_variable_body can be modified after compilation. * compile.c: use rb_iseq_t::variable_body. * iseq.c: ditto. * thread.c: ditto. |
6f8b0aeb3b6a7c8539dd3b4f09429ce2f459335f
|
2015-07-22 |
* vm_core.h: remove unused declaration of iseq_compile_data_ensure_node_stack. |
c44360f62316f629441af47213a6c22ae1c3606b
|
2015-07-22 |
* vm_core.h: modify layout of rb_iseq_constant_body. Move frequent accesssing fields to upper part. |
18f6978625fe8adc4fe6e414e73e97d52b566592
|
2015-07-23 |
* vm_core.h: constify rb_iseq_constant_body::iseq_encoded and rb_control_frame_t::pc. * compile.c (rb_iseq_translate_threaded_code): catch up this fix. * iseq.c: ditto. * vm_exec.c (vm_exec_core): ditto. |
eed613f4b1fa65705fab0ce617ea370ac53b2dfa
|
2015-07-23 |
* vm_core.h: constify rb_iseq_constant_body::local_table and rb_iseq_param_keyword::table and rb_iseq_param_keyword::default_values. * compile.c: catch up this fix. * iseq.c: ditto. |
8fbf5dd9e5bd38c2ade0384f8a7503f7cc1db8a4
|
2015-07-24 |
* vm_core.h: constify rb_iseq_constant_body::catch_table. * compile.c (iseq_set_exception_table): catch up this fix. * iseq.c: ditto. * vm.c (vm_exec): ditto. |
efa31acaad8663602357fb193db8dd4320fa66d5
|
2015-07-24 |
* vm_core.h: constify rb_iseq_constant_body::param::opt_table and rb_iseq_constant_body::param::keyword. * compile.c: catch up this fix. |
14428f09b1c75071b7bcd86fb6c7a92790301d17
|
2015-07-24 |
* vm_core.h: constify rb_iseq_constant_body::line_info_table. * iseq.c: catch up this fix. |
22be6d06ab60ac22fbaa1cf29afa048a456d4319
|
2015-07-24 |
* vm_core.h: size should be unsigned. * rb_call_info_t::index * rb_iseq_constant_body::stack_max * rb_iseq_constant_body::local_size * rb_iseq_constant_body::param::size * rb_iseq_constant_body::local_table_size * rb_iseq_constant_body::is_size * rb_iseq_constant_body::callinfo_size * iseq.h: same for iseq_catch_table::size. * compile.c: catch up these fix. * iseq.c: ditto. * proc.c: ditto. * vm.c: ditto. * vm_args.c: ditto. * vm_eval.c: ditto. * vm_insnhelper.c: ditto. |
747b7b7316e81a3a304938ef5de10ecb9afc2de3
|
2015-07-27 |
* template/id.h.tmpl (ID2ATTRSET): remove an unused macro. |
033e093363b53024aa0f40599fc48d78418a61a9
|
2015-08-04 |
* proc.c (rb_block_clear_env_self): clear by Qfalse intead of Qnil. [Bug #11409] * test/ruby/test_eval.rb: add tests for this issue, written by @0x0dea. https://github.com/ruby/ruby/pull/988 |
91f209816f88288c6efacac783224bd3c9c56cd6
|
2015-08-04 |
* test/ruby/test_module.rb: should not expect a method table ordering. [Feature #11414] |
c35ff11ae516421809e0d03c278576a70fda45c4
|
2015-08-12 |
* id_table.h: introduce ID key table. [Feature #11420] This table only manage ID->VALUE table to reduce overhead of st. Some functions prefixed rb_id_table_* are provided. * id_table.c: implement rb_id_table_*. There are several algorithms to implement it. Now, there are roughly 4 types: * st * array * hash (implemented by Yura Sokolov) * mix of array and hash The macro ID_TABLE_IMPL can choose implementation. You can see detailes about them at the head of id_table.c. At the default, I choose 34 (mix of list and hash). This is not final decision. Please report your suitable parameters or your data structure. * symbol.c: introduce rb_id_serial_t and rb_id_to_serial() to represent ID by serial number. * internal.h: use id_table for method tables. * class.c, gc.c, marshal.c, vm.c, vm_method.c: ditto. |
408fa5e687dfc5548563bdb31d7ce2f280dd81ce
|
2015-08-12 |
* class.c, gc.c vm.c: use ID_TABLE_* instead of ST_* (such as ST_CONTINUE) for enum rb_id_table_iterator_result. |
2e2bd1c26b21ab3298b32f881bccebc14c7cac3d
|
2015-08-12 |
* class.c (move_refined_method): same as the last commit. |
e51491491986df97ecde29c3ef82036fe7c669d1
|
2015-08-12 |
* id_table.c (mix_id_table_insert): fix memory leak. |
17613125778e1c73d69a339b35e6bd92cb0b7f02
|
2015-08-12 |
* id_table.c: IMPL() macro accept op as _opname instead of opname because jemalloc seems to replace the word `free' to `je_free'. |
d22a09e189d772fe9c640aaf7b2c3fbbc5bcf039
|
2015-08-13 |
* vm_core.h (rb_call_info_kw_arg_bytes): move the definition to iseq.h because this function is shared with iseq.c and compile.c. |
416aa4591859f20ba4c86a139c4855f1c8ea56f1
|
2015-08-21 |
* vm_insnhelper.c (vm_invoke_block): we should not expect ci->argc is stable after invoking a block. [Bug #11451] * test/ruby/test_yield.rb: add a test. This test script is given by Alex Dowad. |
3af5298e8cc9d88fb0c763fb623b722a97912877
|
2015-08-21 |
* include/ruby/ruby.h, cont.c, vm_trace.c: add a new event fiber_switch. We need more discussion about this feature so that I don't write it on NEWS. [Feature #11348] * test/ruby/test_settracefunc.rb: add tests. |
885d781abcfce71458b705d227cb719b8d045214
|
2015-08-21 |
* ext/objspace/objspace.c: add a new method ObjectSpace.count_symbols. [Feature #11158] * symbol.c (rb_sym_immortal_count): added to count immortal symbols. * symbol.h: ditto. * test/objspace/test_objspace.rb: add a test for this method. * NEWS: describe about this method. |
7cf523c7db67c22ffc09b38a9c5bea057f578db2
|
2015-08-21 |
* vm_opts.h, iseq.c, iseq.h: add compile option to force frozen string literals. [Feature #11473] This addition is not specification change, but to try frozen string literal world discussed on [Feature #11473]. You can try frozen string literal world using this magical line: RubyVM::InstructionSequence.compile_option = {frozen_string_literal: true} Note that this is a global compilation option, so that you need to compile another script like that: p 'foo'.frozen? #=> false RubyVM::InstructionSequence.compile_option = {frozen_string_literal: true} p 'foo'.frozen? #=> false, because this line is already compiled. p eval("'foo'.frozen?") #=> true Details: * String literals are deduped by rb_fstring(). * Dynamic string literals ("...#{xyz}...") is now only frozen, not deduped. Maybe you have other ideas. Now, please do not use this option on your productions :) Of course, current specification can be changed. * compile.c: ditto. * test/ruby/test_iseq.rb: add a test. |
0de5e1cb87c24c650a32dfb73ea6fdbd651929ca
|
2015-08-21 |
* ext/thread/thread.c: move definitions of Queue, SizedQueue and ConditionalVariables to thread_tools.c. In other wowrds, such classes are built-in. [Feature #8919] At first, I planned to embed only a Queue class. However, rubygems requires 'thread.rb' (rubygems are required at first, when launch MRI without --disable-gems). So most of people require 'thread.rb' as an embedded library. Now, ext/thread/thread.c is empty, only for a dummy for compatibility. * thread.c: move a definition of Mutex class to thread_tools.c. And define Mutex class under Thread (so now Mutex is Thread::Mutex). Because other thread related classes are also defined under Thread. We remain ::Mutex as Thread::Mutex. Only an inspect result is changed. * common.mk: add dependency from thread.o to thraed_tools.c. |
fd7ac9f3c9e106a57869da762a383536636f0f3d
|
2015-08-26 |
* thread_tools.c: add Queue#close(exception=false) and SizedQueue#close(exception=false). [Feature #10600] Trying to deq from a closed empty queue return nil if exception parameter equals to false (default). If exception parameter is truthy, it raises ClosedQueueError (< StopIteration). ClosedQueueError inherits StopIteration so that you can write: loop{ e = q.deq; (using e) } Trying to close a closed queue raises ClosedQueueError. Blocking threads to wait deq for Queue and SizedQueue will be restarted immediately by returning nil (exception=false) or raising a ClosedQueueError (exception=true). Blocking threads to wait enq for SizedQueue will be restarted by raising a ClosedQueueError immediately. The above specification is not proposed specification, so that we need to continue discussion to conclude specification this method. * test/thread/test_queue.rb: add tests originally written by John Anderson and modify detailed behavior. |
d995d98a08088974311cd3282ea97ff9d1310e6c
|
2015-08-27 |
* compile.c (iseq_set_sequence): rename variable names to make it readable. |
868c98dccfb433772546e9abba935e0625ef310b
|
2015-08-28 |
* vm.c (hook_before_rewind): prevent kicking :return event while finishing vm_exec func because invoke_block_from_c() kick a :return event for bmethods. [Bug #11492] * test/ruby/test_settracefunc.rb: add a test. |
15e48288fdb528e7ae6564b3e2fee00471bdff12
|
2015-08-31 |
* class.c (move_refined_method): should insert a write barrier from an original class to a created (cloned) method entry. * test/ruby/test_refinement.rb: add a test. |
dcf6ac497505987033baebaf5a49f37ebfadb272
|
2015-09-01 |
* thread_tools.c: rename thread_tools.c to thread_sync.c. |
c37c67cef8f9aef160b198db4b100d8343d0022f
|
2015-09-01 |
* thread_sync.c (queue_do_close): ignore multiple close to allow multiple producers. https://bugs.ruby-lang.org/issues/10600#note-14 |
7ef01f83ace2b3823940762b00e07f531f45bbfb
|
2015-09-01 |
* test/thread/test_queue.rb: catch up last commit. |
0f35174060ff1d7910d257679090ecde20eb298e
|
2015-09-02 |
* vm_insnhelper.h (GET_PC_COUNT): remove unused macro. |
e25f9ceddfb5315a4022de87e547d4a029e03818
|
2015-09-03 |
* gc.c (rb_raw_obj_info): should support IMEMO/iseq. |
5f6dedda011f51de104dcaedf309bc0dad4cac45
|
2015-09-03 |
* gc.c (rb_raw_obj_info): iseq->body->location.first_lineno is Fixnum. |
970399a9ae739cbb4babc94159abe3b523d53d0f
|
2015-09-03 |
* iseq.c (iseq_memsize): functions for wrapper object should have iseqw_ prefix. |
eec17b718ae04b9bcff215114a156dcb25eb1458
|
2015-09-08 |
* vm_core.h: remove rb_call_info_t::blockiseq. * insns.def (send, invokesuper): pass blockiseq explicitly. * compile.c: catch up this fix. * iseq.c: ditto. * vm_args.c: ditto. * iseq.c (ISEQ_MINOR_VERSION): 2->3 because instruction spec was changed. |
22ea03bb7e213d60e49a9cdd1ec1b221ef802e2a
|
2015-09-11 |
* iseq.c: disable ISeq.load. It enabled accidentally at r51794. |
731c9288dab654a31e7ccbaf57072ff66c00cdf8
|
2015-09-11 |
* vm_core.h: remove rb_call_info_t::aux.opt_pc. * vm_insnhelper.c: introduce shortcut functions for opt_pc == 0 because opt_pc is always 0 on shortcut function. |
163d436d428b1e72bc342c51ebc6add818101913
|
2015-09-12 |
* vm_insnhelper.c (vm_call_iseq_setup_normal): do not clear local variables here. vm_push_frame() clears. * vm_insnhelper.c (vm_call_iseq_setup_tailcall): ditto. * vm_insnhelper.c (vm_push_frame): move check code to vm_check_frame(). Reorder initialization timing to reuse same values (sp). * compile.c (rb_iseq_compile_node): use iseq_set_exception_local_table() for ISEQ_TYPE_DEFINED_GUARD. |
d5ec9ec308dccaeea2a723e070a98df4159183de
|
2015-09-19 |
* vm_core.h: split rb_call_info_t into several structs. * rb_call_info (ci) has compiled fixed information. * if ci->flag & VM_CALL_KWARG, then rb_call_info is also rb_call_info_with_kwarg. This technique reduce one word for major rb_call_info data. * rb_calling_info has temporary data (argc, blockptr, recv). for each method dispatch. This data is allocated only on machine stack. * rb_call_cache is for inline method cache. Before this patch, only rb_call_info_t data is passed. After this patch, above three structs are passed. This patch improves: * data locarity (rb_call_info is now read-only data). * reduce memory consumption (rb_call_info_with_kwarg, rb_calling_info). * compile.c: use above data. * insns.def: ditto. * iseq.c: ditto. * vm_args.c: ditto. * vm_eval.c: ditto. * vm_insnhelper.c: ditto. * vm_insnhelper.h: ditto. * iseq.h: add iseq_compile_data::ci_index and iseq_compile_data::ci_kw_indx. * tool/instruction.rb: introduce TS_CALLCACHE operand type. |
bffa617d364b768fe8ab040088ea7a6e2f0f5d25
|
2015-09-19 |
* iseq.c (rb_iseq_free): free rb_iseq_t::body::cc_entries. |
9b77261a123ddd48b960a397f80b40b99d9f62b2
|
2015-10-05 |
* vm_insnhelper.c: solve goto spaghetti. Change all goto statement across blocks to tail call functions. |
0018a71184edbc4b46bbfd2b3a56e4a5a585d4f3
|
2015-10-05 |
* proc.c: enable optimization of Proc#call. [Feature #11569] * NEWS: write about this optimization and incompatibilities. * test/ruby/test_backtrace.rb: catch up this fix. |
a22d6f55e8d4e0dadea28c47dffd18d7ba1c0f4e
|
2015-10-05 |
* iseq.c (rb_iseq_free): free iseq::variable_body to avoid memory leak. |
72cf24c813aa788366ef4a6fc0be0491cdcaaf95
|
2015-10-06 |
* method.h: remove METHOD_ENTRY_SAFE(me) and related code because $SAFE = 3 and 4 is not available. Now, $SAFE is not checked on method dispatch at all. * vm_eval.c, vm_insnhelper.c, vm_method.c: ditto. |
2d855b08d0d91a987c305a21a83dff0bfb3fccf2
|
2015-10-06 |
* method.h: IMEMO_FL_USER3 and IMEMO_FL_USER4 is not needed any more. |
7432df370ded89ba0bcac4f287e1620e41899182
|
2015-10-06 |
* proc.c (Init_Proc): Proc#call and others should be public. |
603210060c08b2693bc9c597cf4200bf51efd362
|
2015-10-06 |
* vm_insnhelper.c (vm_call_method0): use switch() for visibilities (for readability). |
daa13ad2af2d850ffc181ee341d51575f94f4e14
|
2015-10-06 |
* proc.c (rb_method_entry_min_max_arity): should support OPTIMIZED_METHOD_TYPE_CALL. |
e5b941dfd7022402e16d8ef61a54ed458d7e6310
|
2015-10-06 |
* vm_args.c: remove an unused field args_info::calling. |
31ee824ef45868c9891e91f5f9ea1d21e9da1d6b
|
2015-10-06 |
* gc.h, gc.c: introduce new debug function rb_obj_info_dump(VALUE obj) which prints the result of rb_raw_obj_info(..., obj). |
e2cabc22be830ac2a1871dc6c8107cbd759da7ab
|
2015-10-07 |
* gc.c (newobj_of): divide fast path and slow path to avoid register savings for fast path. This idea is given by Kazuho Oku <kazuho@natadeco.co>. |
e8ba0b7b0437fbb62c09d2fb2cbf83aed2df6a65
|
2015-10-10 |
* import a github pull request https://github.com/ruby/ruby/pull/1050 by Kazuho Oku <kazuho@natadeco.co>. This pull request has the following commits. * gc.c: reduce # of args to 6 (max. of register args on x86-64) so that the `newobj_of_slowpass` can be called via TCO. * gc.c (newobj_of), string.c (str_duplicate): for performance, the hot functions must be inlined. * gc.c: for performance, preceding arguments of `.*newobj_of.*` must be same, so that the arg registers can be reused in case of TCO. |
a00fc76ce5059e504cbdc10e257624ac893f30c0
|
2015-10-10 |
* vm_insnhelper.c (vm_call_method0): do not propagate enable_fastpath, but pass dummy CC to prevent wrong caching. |
f6e57af98d6c5bb80dd2bcca079ca871455322ef
|
2015-10-10 |
* gc.c (newobj_of_slowpass): fix typo (pass -> path). Pointed out by Yukihiro Matsumoto <matz@ruby-lang.org>. * gc.c (newobj_of_...): `of' is unnecessary. |
cb223b7533d31f7388c835fa369af95a02b235d5
|
2015-10-10 |
* vm.c (invoke_block_from_c): split this function into several functions. * vm_insnhelper.c (vm_yield_callee_setup_arg): remove this function beacuse it is only delegation function. |
ad45aea45631a451ae0b4b4a5592468d0c4617c0
|
2015-10-10 |
* vm_insnhelper.c (vm_call_iseq_setup_normal): setup sp first for performance. |
0a40bcb20b27058f760ce855fc1860a540c49f43
|
2015-10-10 |
* vm_eval.c, internal.h (rb_yield_1): added for performance which doesn't check Qundef. * numeric.c (int_dotimes): use rb_yield_1. |
930595cd353a90070f7833510d8499064857feaa
|
2015-10-10 |
* vm_insnhelper.c (vm_push_frame): initialize other than sp (and ep) first for performance. |
9e1b06e17d27fb4ddf51e9244f205417e9c4dd5c
|
2015-10-23 |
* vm_core.h, vm_insnhelper.h: move definition of VMDEBUG from vm_insnhelper.h to vm_core.h. |
1e0600324b651310396329343fd407507a533318
|
2015-10-23 |
* vm_core.h: define vm_call_handler. |
f9697c5637f84d1ec9cb46a2115c76c7971aeb0f
|
2015-10-23 |
* vm_insnhelper.c: introduce new call handler for simple ISeqs. |
54716fe7ebbf20b5e91fdbe9b65e0bedb0c4836a
|
2015-10-23 |
* ruby.c: introduce --enable-frozen-string-literal-debug option. If this option is enabled, the modify error will be: can't modify frozen String (RuntimeError) => can't modify frozen String, created at test.rb:3 (RuntimeError) |
92d5da521dc68fc166009ce5796748993375c5f5
|
2015-10-23 |
* iseq.c (make_compile_option_value): include frozen_string_literal* in a made option value. |
106f033b89fed268fe376ebaf16cb95fda655e6a
|
2015-10-29 |
* gc.c (gc_mark_ptr): remove debug code for #11244. |
56eee285be2e18f727ef15d58e338b134c3ab210
|
2015-10-29 |
revert r52336 (commit miss) |
1be5cb6371048a35d9fb2859ca8a865e982608cf
|
2015-10-29 |
* gc.c (gc_mark_ptr): remove debug code for #11244. |
a3e88485b1aa37409cac5bef150431a5444e91eb
|
2015-10-29 |
* gc.c: add rb_objspace::flags::has_hook to represent hook availability. |
ffa87b40576976f5ab0bfeb7c7eca81021841500
|
2015-10-29 |
* gc.c: introduce rb_wb_unprotected_newobj_of() and rb_wb_protected_newobj_of(), pass the WB_PROTECTED information explicitly. |
5869f9a3baddf60def53d74f9be8b6afdd28aed1
|
2015-10-29 |
* gc.c (rb_imemo_new): should not pass FL_WB_PROTECTED flag. |
f9ca636ae772bef04bb7f8ff7f899ad000f6c051
|
2015-10-29 |
* internal.h: export rb_wb_(un)protected_newobj_of() because some extensions include internal.h. |
05b9b42918868a0a355a5cf9ce0d92baf4236328
|
2015-10-29 |
* encoding.c (rb_enc_check_str): add for performance. This function only accept T_STRING (and T_REGEXP). |
bce116617afc1fe3c94535094b095228c8034015
|
2015-10-29 |
* gc.c (gc_mark_ptr): specify NOINLINE so that gc_mark() can return immediately when obj is not a markable object. |
4b852f64da6872eea2f85e5f31eaf3c0452b310e
|
2015-10-29 |
* vm_insnhelper.c (vm_check_frame_detail): should require me for VM_FRAME_FLAG_BMETHOD type frame. |
b08d139cc5dd1fe26212a93b869e6fbcdeb0d412
|
2015-10-29 |
* vm.c: add ifndef guard for VM_CHECK_MODE. |
648aa500d60f48640e789ac6b478ad4e2cc54bb4
|
2015-10-29 |
* insns.def: nobody set ic->ic_value.value to Qundef. |
8da9e6d5499486ae5500f01fd6c59aae4649965a
|
2015-10-29 |
use NULL instead of 0 |
15d735de1506e063b47ba1c4124a6b9cca316eda
|
2015-10-29 |
* vm_insnhelper.c (vm_env_cref): make it inline for performance. |
f363bbdf1042562e40aaccbd1bdd7b783c096ff0
|
2015-10-29 |
* insns.def (getinlinecache/setinlinecache): compare ic->ic_cref and current cref only when cached CREF list includes singleton class. |
b872ad5861ffc6585063bb9f045b825278fbc842
|
2015-10-30 |
* gc.c (newobj_slowpath): reduce 1 parameter to use only registers for performance. |
e3e5d634f0334df6f2392150a31ec1c725498a0c
|
2015-10-30 |
* gc.c (heap_get_freeobj_from_next_freepage): not so UNLIKELY. |
a96ae767acf13442e29b8f1f632403a2ee8fa286
|
2015-10-30 |
* gc.c (newobj_slowpath): do not need to use flags hack (commit miss). |
f5b2da3a5325c1ccdca3042b1080639c82c00326
|
2015-10-31 |
* vm_insnhelper.c (vm_search_super_method): do not touch `ci' here. |
abbe73bf028ce05949fde6c067df3a0f302f6d7f
|
2015-10-31 |
revert r52402 |
840e6b63077347be513037f083056886eaf90732
|
2015-11-01 |
* id_table.c (mix_id_table_insert): do not touch list during list->hash transition because GC can run during transition. |
92861a11633b079c9dd50599baa6841a739c741d
|
2015-11-06 |
* include/ruby/ruby.h (RSTRUCT_PTR): need a close parenthese. |
2d4bc584eef5dcd11dbae4c92fe8b404f054ff46
|
2015-11-07 |
* vm_trace.c (rb_threadptr_exec_event_hooks_orig): maintain trace_running counter on internal events. |
1dd547fe5a3eca165488d6ac5951c61069b7f9c6
|
2015-11-07 |
* vm_trace.c (exec_hooks_precheck): check need_clean everytime to clean-up unused hooks. |
dd4cec36ca0229e5dcc45393f59f2633d2e350bf
|
2015-11-13 |
* method.h: constify rb_cref_t::scope_visi; |
25f5dd6799bbacc9f61d60b87b70ea6e6d815c20
|
2015-11-13 |
* vm.c (vm_define_method): do not use current CREF immediately, but check CREF in environment or methods. Methods defined in methods should be public. [Bug #11571] |
b73e900f50e74504c48f05811dbfb2aabdf40cdc
|
2015-11-13 |
* vm.c (vm_define_method): refactoring. * get CREF in this function. * cbase is no longer needed (CREF_CLASS(cref) is enough). |
32a96472648fac55ae5651f404de4c75e697409c
|
2015-11-13 |
* refactoring CREF related code. |
f1028f5cf75a741409e8be5e2eae5742cc74beb6
|
2015-11-13 |
* node.h: remove old comments. |
db1387905a5186aff6c29c9304ed4fe3af551372
|
2015-11-13 |
additional fix of comment line |
fa4e516db95cb6a158ebb162688efbc17ff997a1
|
2015-11-17 |
* method.h: introduce rb_method_definition_t::complemented_count. |
a2f72abb0f4b4c9ea2c805bb965d74f4054a4d91
|
2015-11-17 |
fix typo |
551ae37ba3307fb982272413a02b3b94561bf39b
|
2015-11-17 |
* method.h (METHOD_ENTRY_COMPLEMENTED(_SET)): introduced to recognize complemented method entries or not. There are some cases that callabe method entries do not have defined_class. |
6a533a3ecc23e6cb90e2616231f2b67d15ff3239
|
2015-11-17 |
revert r52614, r52615, r52617 because they cause serious errors |
e2f0af57407859b1d094e6885c27dabff345c190
|
2015-11-18 |
* gc.c (rb_raw_obj_info): fix trivial issues. |
3f7c0e9fd567fcfbcc8d2ac3ab8499cb321b3073
|
2015-11-18 |
* method.h: introduce the folliwing field and macros. |
03efb7def95d9de325182e84813a0ce8e689a738
|
2015-11-18 |
* vm_method.c (prepare_callable_method_entry): use RCLASS_CALLABLE_M_TBL() instead of accessing a filed directly. |
fa3affad9a7677cf0307fbb218b612e2626ee9f3
|
2015-11-18 |
* vm_method.c (rb_class_clear_method_cache): should clear all RCLASS_CALLABLE_M_TBLs of all sub-classes (T_ICLASS). |
7ae65d012130249b24e3a88ee3cfd82d0f2ef735
|
2015-11-19 |
* compile.c (iseq_compile_each): T_IMEMO/iseq objects should be wrap with ISeq wrappers. [Bug #11676] |
95273072a7d9675b6997791410a5fb3a244fd580
|
2015-11-19 |
* signal.c: should also clear ruby_disable_gc. [Bug #11692] |
d5d997fa11cd6d6642904593f21a466cccf17710
|
2015-11-19 |
* gc.c: trivial performance improvements. |
121b6e064a1b167dddbdc271d503ff96e7deb83b
|
2015-11-19 |
* gc.c (gc_start): force to invoke GC by GC.start even if it is GC.disable'd. |
c267d24ef0b4955ee5d0538707ed47d1b6278699
|
2015-11-20 |
* vm.c (rb_vm_cref_replace_with_duplicated_cref): added. |
ba772af0a6b36713077799e5c5cbcb375d4ee1c8
|
2015-11-20 |
* compile.c (iseq_compile_each): add debug information to NODE_STR strings as default. [Feature #11725] |
e2609033ab07fb38fcaf1bf37382fb6dcc2d9985
|
2015-11-21 |
* thread_sync.c: reduce the specification of Queue#close. * Queue#close accepts no arguments. * deq'ing on closed queue returns nil, always. [Feature #10600] |
628d9057e415a1eb989b06218f68e8871763e4f7
|
2015-11-21 |
add to NEWS about Queue#close |
9b7d4d470965b8e750a80de4faf60ec892d1c99b
|
2015-11-25 |
add NEWS entry about --debug=frozen-string-literal |
7afefea564bc6520962c9eaa457d85c19b64d13c
|
2015-12-02 |
* iseq.h: introduce ISEQ_COMPILE_DATA() macro. |
417240b7fb987e364421d4c4bfd77dd5bfea10c4
|
2015-12-02 |
* iseq.h: introduce ISEQ_COVERAGE() and ISEQ_COVERAGE_SET() macro. |
a9c0cf4ff06ecbda16b1fcf9d16cb252becd9453
|
2015-12-02 |
* iseq.h: introduce ISEQ_FLIP_CNT_INCREMENT() macro. |
cfd1157f1123998bde7b93212bdb111a65b82414
|
2015-12-02 |
* iseq.h: introduce ISEQ_ORIGINAL_ISEQ() and ISEQ_ORIGINAL_ISEQ_ALLOC() macro. |
2962b6e063e4e6e8bd4b8be5c45166972caf41c2
|
2015-12-02 |
* vm_core.h, iseq.h: remove rb_iseq_t::variable_body. Fields in rb_iseq_t::variable_body are contained by rb_iseq_t::body::mark_ary (hidden Array object). |
6d8bf54c440fd38eb12b3780556d6f7b88beb1ba
|
2015-12-07 |
* string.c: introduce String#+@ and String#-@ to control String mutability. [Feature #11782] |
56367e25ee9ae99694a2e69f6c2de0dfa9956211
|
2015-12-07 |
add a NEWS entry for r52917 |
6757d13ee17b737464de68eea3d914390ee2787b
|
2015-12-07 |
* iseq.c (iseq_translate): at the end of constructing an iseq, call RubyVM::InstructionSequence.translate(iseq) if this method is defined. If the return value is also an object of RubyVM::InstructionSequence, then use it instead of created one. |
21366b17a5009d13b9f0ebf78e5a248494835847
|
2015-12-07 |
* compile.c (rb_iseq_build_from_ary): do not allocate table if table_size is 0. |
8dce6b15cc9eaa12d89926570cffd7ac7634fb83
|
2015-12-07 |
* iseq.c (iseq_load): disable peephole optimization option because apply it multiple times change the sequence. (iseq != peephole_optimize(load(iseq.to_a))) |
7476be4defe09d951bdb28b2925be5b461baed5d
|
2015-12-07 |
* test/lib/iseq_loader_checker.rb: add iseq dumper/loader checker. If you enable this checker (remove `#' in test/runner.rb), you can see comparison results between an original iseq disassembed result and dumped and loaded iseq disassembed result. |
3dbb390180a0e9f98623b6db0d71b0213359c541
|
2015-12-08 |
* introduce new ISeq binary format serializer/de-serializer and a pre-compilation/runtime loader sample. [Feature #11788] |
23124ffbe845b9e8bec665159c584f09c7dc4491
|
2015-12-08 |
* iseq.c (iseq_s_load): fix mysterious bug. |
b8574cdcffc656e5d6f8f613f6bad6e2f531e561
|
2015-12-08 |
* compile.c (iseq_ibf_dump): fix for clang type checker. |
d0d0898c0ac29fa6debf0fa0e18844e83a63f831
|
2015-12-08 |
* compile.c (ibf_setup_load): rename to ibf_load_setup(). |
34cfdd2f67dca44cb677d9a06b8687cfc6172892
|
2015-12-08 |
* compile.c (ibf_load_setup): cast to int. |
ddba2014c642b886fc9ae3bf44d6a8a10af58be5
|
2015-12-08 |
* compile.c (iseq_ibf_dump): dump extra data just string length. |
e78bf7976c0269e8b54165c374fcba7ee68a4d2b
|
2015-12-08 |
* compile.c (ibf_dump_memsize): should check NULL. |
a78023c1180b496a60b21b5328dd5736df60a65d
|
2015-12-09 |
mark as experimental |
2f5b8f05299731e1187475ff4bd6b1618bac3a1a
|
2015-12-09 |
* *.c (*_memsize): do not check ptr. NULL checking is finished Before call of memsize functions. See r52979. |
dff42b0ea0e6ef368ebbe0a666ff9be8d708c6df
|
2015-12-09 |
* ext/**/*.c (*_memsize): same as r52986 for extensions. |
eef8beb695477bdadbf25a87adf973143c366156
|
2015-12-09 |
add documentation for RubyVM::InstructionSequence#to_binary_format and RubyVM::InstructionSequence.from_binary_format |
71a4d189bd470182d98c397940a9ac44a1374089
|
2015-12-09 |
update NEWS [ruby-core:71970] |
e48adae2b3e7dfab79fb5a72467a559749edebd5
|
2015-12-09 |
* gc.c (gc_mark_stacked_objects): fix typo. reported by XIE Zhibang. [Bug #11763] |
303cd88d408b7f8b79b0580cf3d552d6e291f5df
|
2015-12-09 |
* vm.c (rb_vm_cref_in_context): Module#define_method in non-class expression should be public. [Bug #11754] |
4b8da4b9c8494635a4fcdf3a14ba1dc3fece6842
|
2015-12-09 |
* iseq.c: rename methods RubyVM::InstructionSequence#to_binary_format -> #to_binary RubyVM::InstructionSequence.from_binary_format -> .load_from_binary RubyVM::InstructionSequence.from_binary_format_extra_data -> .load_from_binary_extra_data |
6fb2ec53949c149323d2b0f264bf4c68be558b8f
|
2015-12-09 |
* compile.c (iseq_compile_each): do not add debug information without --debug or --debug=frozen-string-literal option because String#dup slows down with debug information. [Feature #11725] |
10f7ad626422aeaef6b15a50437cbd9e2b98f485
|
2015-12-10 |
* test/ruby/test_gc.rb (test_expand_heap): relax condition (1->2). |
5dc676a5cf6b7201f78e4622c0aad4982f4e3db0
|
2015-12-16 |
* vm.c: fix mark miss for proc given as passed block. [Bug #11750] |
5a6c48980a123f674952d1c9c66cafbfaacf8dfa
|
2015-12-16 |
* vm_insnhelper.c (vm_call_method_each_type): should not set fastpath with keyword arguments for VM_METHOD_TYPE_ATTRSET type methods. |
70dea9ef28e8986d361e1b387afa2306b9e4b015
|
2015-12-16 |
* vm.c (vm_make_env_each): should not compare with Qfalse and FALSE. Pointed at http://d.hatena.ne.jp/nagachika/20151216/ruby_trunk_changes_53128_53163 |
f64238e777722861bd504c81dccc9fedb2d81be4
|
2015-12-18 |
* vm_core.h: define USE_LAZY_LOAD if it is not defined. |
dd5fd65eef79637a951a766f5488724c87937c41
|
2015-12-18 |
* compile.c (ibf_load_setup): check tainted string argument. |
9d30ef596c3b6830cbb19bf00dd8072f43c3014d
|
2015-12-18 |
* compile.c (ibf_load_object_string): use fstring if frozen string. |
c46ff1bb271afc2375b9b6786a0384426777e551
|
2015-12-20 |
* proc.c (proc_new): fix notation. |
3b8730058e8dc7fbbb5b888ae5623739f80702c4
|
2015-12-20 |
* proc.c (rb_mod_define_method): fix notation. |
a8b0c2529301df76a1ea8c03ead3d0d163ab56bc
|
2015-12-20 |
* proc.c (rb_mod_define_method): should check Symbol or not. [Bug #11850] |
1bcee938d5f4a0a70d492c1c1c13ec29f24980ea
|
2015-12-21 |
* gc.c (internal_object_p): should not expose singleton classes without a metaclass. [Bug #11740] |
800607aa7ebde919bb9183b451a03ae3b390515f
|
2015-12-21 |
revert r53228 because this patch breaks rubyspec |
11f4334f754d535b221fee0c3150e5bae8e68ce3
|
2015-12-22 |
* vm_insnhelper.c: move vm_callee_setup_block_arg() (and related functions) to the latter location. This moving recovers performance a little. [Bug #11829] |
43b2144254a6cdc2e583e1041ba6eb9b42c9efaa
|
2015-12-24 |
* NEWS: rename "Implementation changes" section to "Supported platform changes" section. |
e5e37c20c9ce4f37773ca905b8fef7ab99d835eb
|
2016-01-08 |
* gc.c: remove heap_page::heap. This field is only used to recognize whether a page is in a tomb or not. Instead of this field, heap_page::flags::in_tomb (1 bit field) is added. |
3ccafdb02764af61d399b51ff0ec42f9b685078d
|
2016-01-08 |
* gc.c: rename rb_heap_t::page_length to rb_heap_t::total_pages. |
b6261054cda125869a481d8e51cc86fd3631b9d6
|
2016-01-08 |
* gc.c: remove heap_page::body. Instead of this field, heap_page::start field works well. |
f8827cef6af2e242cd99a89a3da64600709c0a16
|
2016-01-08 |
* gc.c: rename constant names HEAP_* to PAGE_*. |
1f1f3112dc762fc31a204de123bf23c505a75780
|
2016-01-08 |
* gc.c: PAGE_BITMAP_PLANES (the number of bitmap) is 4, not 3. |
fca0cf6e6b8ab8882f3403e5909c8eb91c5c351e
|
2016-01-08 |
* gc.c: rename PAGE_* to HEAP_PAGE_* because PAGE_SIZE is used in Mac OS X. |
befcbc2cb98c05b16e4b99de3f6386d277aceb56
|
2016-03-04 |
* gc.c: rename "enum gc_stat" to "enum gc_mode" because there is a same name (no related) function gc_stat(). |
d04ee29e77891f1981dbf4d5a1d2c27a626fb52c
|
2016-03-04 |
* gc.c: use 2 bits with unsigned int for rb_objspace::flags::mode because it always returns 0 to 2 (non-negative value). |
b06514105056ebaf60804749bfba2c56fe4a6a69
|
2016-03-09 |
* benchmark/driver.rb: exit benchmarking if a benchmark process receives signals. |
1228d134dd6969c0091174062673fea6ccfc521f
|
2016-03-09 |
* benchmark/bm_vm3_gc_old_full.rb: add GC.start benchmark. |
61aa2685d3ccfd500a2cbbed258d003ed1771d31
|
2016-03-09 |
* benchmark/driver.rb: support memory usage benchmark. use `--measure-target=[target]'. Now, we can use the following targets: * real (default): real time which returns process time in sec. * peak: peak memory usage (physical memory) in bytes. * size: last memory usage (physical memory) in bytes. |
a036c0265033e54e9323f527d9897e19d01400f2
|
2016-03-09 |
* benchmark/driver.rb: fix output messages. |
dc39baa9c97ec8b2b62d6ed1311f9fb5c50e8055
|
2016-03-09 |
* benchmark/driver.rb: fix my last commit (syntax error). |
f46b5bcfaf2c7a905f2e625bd9c44b391b5b40ef
|
2016-03-31 |
* gc.c (gc_page_sweep): return free slots count. |
9a008c58657a973d9cd1e5b13441f7d099364b22
|
2016-03-31 |
* gc.c (gc_verify_heap_page): check the number of zombies. |
555f6cb089a63204587fb7555ce92751d28ec89f
|
2016-03-31 |
* gc.c: add GC parameters to configure the following values: * RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO: allocate additional pages when free slots is lower than the value (total_slots * (this ratio)). * RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO: allow to free pages when free slots is greater thatn the value (total_slots * (this ratio)). |
49369ef17316cd5d5819b038f286e1d951972b52
|
2016-03-31 |
* gc.c: simplify allocate/free detecting logic at the end of marking. |
9bb740d2eca29e590275ef97dbd3c5bd26acb2f1
|
2016-03-31 |
* gc.c (gc_marks_finish): fix syntax error. |
867693fe3d803486e8571d024169ed5c2a251662
|
2016-03-31 |
* gc.c: change additional allocation policy. |
5951bbecb09ce4fa6327ccc6f612f27a518d2c42
|
2016-03-31 |
* gc.c: need to set initial value of GC_HEAP_FREE_SLOTS_GOAL_RATIO. |
eddbebcb19db65c0f426c9c45756dbe5e0dd3fd8
|
2016-04-04 |
* vm.c (Init_VM): should pass tokens. |
3287bad257e01a01632535743c94c0a5328ce926
|
2016-04-04 |
* gc.c (get_envparam_double): take an upper_bound. |
02f7507453f8b7d5e053620d06609ce4bc089a53
|
2016-04-04 |
* gc.c: change deafult value of RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO 0.3 -> 0.2 RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO 0.8 -> 0.65 |
6278420729d063c82eaca5478e42fb807fc76471
|
2016-04-11 |
* vm_backtrace.c (frame2klass): filter only for imemo_ment. T_IMEMO/imemo_iseq can be passed here. |
9d258137458ddabeeeb99882022b4da5c54e645c
|
2016-04-13 |
* test/ruby/test_basicinstructions.rb: add a test to check access instance variables on special const objects. |
bebb62e01b6d752756c8cb51794119c490cde77c
|
2016-07-13 |
* vm_method.c (method_entry_get_without_cache): check undefined method even if ruby_running is FALSE. |
d8c3672b012ec6eb55e097162c6c638e8d932471
|
2016-07-13 |
* iseq.c (Init_ISeq): undef ISeq.translate and ISeq.load_iseq to prevent calling super classes' methods. |
d7eb7bbccef6da8951c8a2427354f87156918909
|
2016-07-13 |
* gc.c (gc_mark_roots): should mark the VM object itself to mark singleton class of the VM object. Before this patch, we only set mark bit for the VM object and invoke mark function separately. [Bug #12583] |
e5c6454efa01aaeddf4bc59a5f32d5f1b872d5ec
|
2016-07-25 |
* debug.c (ruby_debug_printf): use rb_raw_obj_info() instead of rb_inspect() because it is more robust way to see object internal. |
225915ef45447edce824d11dc94bd0fc7a4cfec0
|
2016-07-26 |
* gc.c (gc_mark): add `inline' explicitly. I expected to inline this function implicitly at the loop (ex: marking T_ARRAY objects) but sometimes it remains as normal call. |
78e86f75ed7ba5b7cd0cbdd85b27c98e271fd2fc
|
2016-07-26 |
* gc.c (rb_raw_obj_info): support to show Proc obj. |
be5564a178ee453b7d6fedc7c312bec01e29dde2
|
2016-07-26 |
* vm_insnhelper.c: introduce rb_vm_pop_frame() and use it instead of setting rb_thread_t::cfp directly. |
9f60791a0412cae804f13ed3e746a634c7a0731b
|
2016-07-28 |
* vm_core.h: revisit the structure of frame, block and env. [Bug #12628] |
e06698d257cf03e3c42f87029821c077f5f6f0e6
|
2016-07-28 |
* vm.c, internal.h: remove RubyVM::Env class and all of env objects are imemo objects (imemo_env). |
78c1041a8214931924fe7e60feee62f59e0b4866
|
2016-07-28 |
* vm_core.h (VM_ENV_LOCAL_P): return truthy (0 or not) value. |
7a1d1163ad9a4e1481d340668582072d077adcc6
|
2016-07-29 |
* vm_core.h (VM_LOCAL_P): should return an integer value. reported at http://d.hatena.ne.jp/nagachika/20160728/ruby_trunk_changes_55764_55770 |
26de0b131e57952d29664de4453e2f04ec3df2bc
|
2016-07-29 |
* proc.c (env_write): remove unused function. |
e3120e1a99b71b54eda06dc8eaeee3c646fff6c5
|
2016-08-03 |
* vm_core.h: introduce VM_FRAME_FLAG_CFRAME to represent cfp->iseq type. |
0cd7f5fe87fb2d047a5423cd24c24f9fea530502
|
2016-08-03 |
* vm_core.h: rename macros and make them inline functions. |
03cad835932205e9ca9e11bed1e6394272ca3f5c
|
2016-08-03 |
* vm_core.h: introduce VM_FRAME_RUBYFRAME_P() and VM_FRAME_CFRAME_P(). Most of case, RUBY_VM_NORMAL_ISEQ_P() is no longer needed. |
d4faa1013efb81b55bd52ca3907d5cf295a0ef90
|
2016-09-13 |
* test/ruby/test_exception.rb: fix thread issues. * use Queue instead of a local variable for synchronization. * join created thread to soleve leaking threads warning. |
0b8ab5b0a86bb6039dee2ed31501c9d135ee2fed
|
2016-11-04 |
* gc.c (heap_page_resurrect): do not return tomb_pages when page->freelist == NULL. [Bug #12670] |
b0569e3dde14df7b9acc703c6a4c7325573094f5
|
2016-11-05 |
* vm_insnhelper.h: rename REG_(CFP|PC|SP|EP) to VM_REG_.... [Bug #12527] |
75775157ea68efdd0b71345a37a6930e5bf1d2ef
|
2016-11-07 |
|
807f3f97b795a9d80a108106708a886115b511d7
|
2016-11-07 |
fix NEWS message |
4c2d014e921609c50f83bc23acb5968105bb10bf
|
2017-01-25 |
swithc id_table data structure. |
a4bc6c277a4fd8363fadbbea510de544b96d3040
|
2017-01-26 |
* vm_dump.c: enable to compile with VMDEBUG == 3. |
8fa99e64585a545ada07c9adba5441adeb217de3
|
2017-01-26 |
skip T_IMEMO for VMDEBUG |
f7015c968c19b198ad54c31e755e87385f8b65d3
|
2017-01-30 |
add a ticket number. |
919a9d9e02e5f1dcb10ae10e9deb68aba11a4660
|
2017-01-31 |
use TRUE/FALSE. |
6897b3b9854eb54afd6898830e9935ce68a276de
|
2017-01-31 |
define rb_thread_sleep_deadly_allow_spurious_wakeup(). |
bfdfc99cc2ea49f15b1380516bd341f4e7b425b6
|
2017-01-31 |
allow Queue operation in trap. |
361edea73d9051ef50c8f7156c93776367fe9913
|
2017-02-07 |
remove compare with enum value. |
950d15bc97a57252edcef98ff83c07c87757095e
|
2017-02-07 |
TRUE is not defined here... |
470564331d2aadee9b045949c187e28f6a193d78
|
2017-02-08 |
remove warning about enum and int comparison. |
38bc085f71ad2056f259ec60e4920acab392506b
|
2017-02-10 |
check thread deadness correctly. |
a17384301bc06aa9b62c36fe337fdacfbaf97b42
|
2017-02-16 |
use rb_iseq_check() for USE_LAZY_LOAD. |
ccc388d806b50999d1780b3aa7bce521644b8bf9
|
2017-02-16 |
use rb_iseq_check() for USE_LAZY_LOAD, too. |
56c38a648b8c2028b8c7f99ce90d50819f76a94f
|
2017-02-20 |
remove harmful declaration. |
76c4cca19c0c27b1c3ca6f597384707cccf3de06
|
2017-02-21 |
add performance counting mechanism for MRI debug/tuning purpose. |
3651c0aa00747c584fadeeae2d9bf50da4ed675a
|
2017-03-14 |
Fiber also has same issue. [Bug #13313] |
10b800133ed9913dc7725d0ff801f2792178d4a4
|
2017-03-15 |
add several counters to analyze ivar inline caches. |
e2fc01efa54a8df00c19de0b7f9dfc2f26e62e86
|
2017-04-06 |
fix TracePoint#return_value with non-local exits |
7519688ed86cb8b423fd24d4e27964056e78bc9b
|
2017-04-07 |
introduce imemo_type_p(v, imemo_type) |
a0035eb62094c25bbda312a5941fbda2177e4333
|
2017-04-07 |
insert assertions for THROW_DATA_* macros. |
4032f45dc2674a55398e10c4456cc54de874fe69
|
2017-04-13 |
Terminate created threads. |
197ebcb083d1a58448e3971cdfa6867794f22bd6
|
2017-04-13 |
fix last commit |
3c547e11298e9b51e1952e47202afe3a6d7bc0d4
|
2017-04-14 |
increase timeout seconds. |
c50afaa1c94c150222d684fbc7fc8b79aa62e0c2
|
2017-04-14 |
disable rewind hooks. |
2ad7a741c092d9b4c9a9035ef132de23145bd8e9
|
2017-04-14 |
more explicit synchronization. |
db2822a5bc58a2c02e657b00e551f66c9f1e2577
|
2017-04-14 |
sync certainly. |
c29e8a0271388c9957db1c2b256925ef04cf5bc9
|
2017-04-17 |
should not return. |
37d2f9724cbf5f61df7d37caa25d1aaab339653f
|
2017-04-18 |
fix compile error. |
fbc1deca89595e60af21e58b7e164f376e4bd2fc
|
2017-04-20 |
add a debug function. |
1721dfa0ea963a85d4ac1e3415eb18ef427d4d36
|
2017-04-20 |
release monitor correctly. |
8934082ec4cf45df46409f093c93266ca001dd4e
|
2017-04-20 |
* vm_dump.c (rb_vmdebug_stack_dump_all_threads): cast to `void*`. Pointed out at <https://github.com/ruby/ruby/commit/fbc1deca89595e60af21e58b7e164f376e4bd2fc#commitcomment-21839826> |
8b31febd1536d821ef2c0e41cba21204ceb0fa80
|
2017-04-20 |
use correct synchronization. |
a7db63208833d69ba02ef5ad21d32017f148bc46
|
2017-04-21 |
mark created frozen strings. |
5f5bc068ed7358be7975d0887d48d2c26e7f9847
|
2017-04-21 |
insert WB correctly. |
9e1ab6cee4c7e7363a67af5129b7b18e484981f7
|
2017-04-22 |
use $(srcdir). |
a6f0ec21e9d07a7a10f5a2fe06728fdad5b4d1d6
|
2017-04-23 |
mark Hash keys correctly. |
de1a9d65653d9053fdc7dc2b8e7068446dddfdf3
|
2017-04-25 |
revert r58478 and r58479 because they do not support not in-place build |
301d669a3150762c51473fde9c486169241e2ec0
|
2017-04-25 |
add timeout. |
895954ef91c974ceff829e0d06132853e87377ea
|
2017-05-15 |
add information for debugging. |
f033cfa3816e0138906aeaf8adcd3c18a623d16a
|
2017-05-15 |
refresh Gem at the end of `teardown`. |
a9b001a4eb924cb3f0517e55ef941adcffd1f4b0
|
2017-05-16 |
skip openssl related tests. |
975d1cb3d18da9e35694dff7bb308f011fabd320
|
2017-05-16 |
restore yes-test-rubyspec |
95d3671e94515fa83de975604fd1a03fa79f081b
|
2017-05-17 |
skip some tests on vboxsf. |
8ffc4094a42feb49f6dc740af2657fc32ca72353
|
2017-05-17 |
modify r58771. |
37da94857a2cdc42ac213cd9760adba82ef883ba
|
2017-05-19 |
specify unsigned (fix r58784). |
9e1624cfe8880fc018e34327c77669f2f4e5b100
|
2017-05-24 |
Add debug counters. |
7d52ed594ecc0fe4587b2a9132f5b4a8e39cf2e9
|
2017-05-25 |
use timeout scale. |
ad0f8ff76cb6c698e75dbde6011a9251d5efd13b
|
2017-05-26 |
Symbol support for opt_eq_func. |
b3a9fd0d1f64680cc95bf6f26285e399306c3f1f
|
2017-05-27 |
apply timeout scale |
492c88dc3bdc34b089be525ab0c2b3d2519b1b52
|
2017-05-30 |
add parameter names. |
cc50ed4a5044133ef1ef79d31aa7d850bf3ca83b
|
2017-05-31 |
add debug counters for local variable (lavr) access. |
478003f6df40dc79d33c6ec86919f2dde07284be
|
2017-06-01 |
rename absolute_path to realpath internally and introduce pathobj. |
648e0a977557ab6a587028437f4e3b7bfd9f0b54
|
2017-06-01 |
fix failure on r58981 |
9301ef5d0eac8fda440b021445a09c17397db5d1
|
2017-06-01 |
make Binding object WB protected. |
b4621c9aaed7e18e377b2e36f41b61f0960997d8
|
2017-06-01 |
make Dir object WB protected. |
26864584d269b6141a27c783cf8b751c067c7dbe
|
2017-06-03 |
* vm_core.h: remove VM_FRAME_MAGIC_LAMBDA and introduce VM_FRAME_FLAG_LAMBDA. So that lambda block frame is VM_FRAME_MAGIC_BLOCK | VM_FRAME_FLAG_LAMBDA. |
1dc7906b17ddd17a2ec2af9c1f2e44c6fb7d22e8
|
2017-06-05 |
remove arg_setup_lambda. |
ff18933b72bbe2a232bb8a96877364e836dd8465
|
2017-06-05 |
rename functions and clean parameters. |
424b4ffe300e2e10bd39df3dab24732d33b0df8b
|
2017-06-05 |
do not inform ``is_lambda". |
1a6e648075c92a128c3a814af43390c2b50fff2f
|
2017-06-05 |
revert r59017 it fails ruby/test_lambda.rb |
b0c9215f72c571c095bf82c4233af6ff848d48d2
|
2017-06-06 |
revert r59020 because it may fail some tests sometimes on some environment (http://ci.rvm.jp/). This revert is to check the reason of failures. |
e9c440815ef2db47854fe3a3e282e33d7d209c03
|
2017-06-06 |
revert r59023 because it contans unrelated developping code |
7d041e87c6c5d77c8546b3a5d3878c3beb5f4a03
|
2017-06-06 |
re-revert r59020 |
0318de23d40c2de90f4b2126ff41f1b0dbcb5325
|
2017-06-08 |
use NULL instead of 0. |
7d8a415bc2d08a1b5e9d1ea802493b6eeb99c219
|
2017-06-08 |
check break target correctly. |
269b795556d1befc13fc2e44e3a1dd5ec2fb7950
|
2017-06-08 |
vm_block_handler_verify() should not return any value. |
fccbc2d278226a2dfe5cffe4918724b0110c5781
|
2017-06-12 |
* proc.c (get_local_variable_ptr): return found env ptr. Returned env will be used by write barrier at `bind_local_variable_set()'. [Bug #13605] |
6c3f1461cd8052486f8e124f8f899447f653505b
|
2017-06-12 |
remove ruby_kill() introduced for [Bug #7951]. |
f06daf167b6182d5ee30236695c0ba8d9159c703
|
2017-06-12 |
remove rb_blocking_region_buffer::oldubf. |
3b405a8912b5762197cdec9f78f040956640830b
|
2017-06-12 |
add a comment for rb_thread_mark() |
eb0777e86533f999d90f679469174056158d3f30
|
2017-06-13 |
fix to free unallocated memory. |
d7e7f051e4ed8d0f69078f2d861d874a52ecc414
|
2017-06-14 |
remove OPT_CALL_CFUNC_WITHOUT_FRAME. |
70d6d8ac811b2bb6d796469c5a4eb1020d41b43a
|
2017-06-14 |
simply call xfree(). |
e64e3c4c21361565fa03c49292e6918e0eb7f693
|
2017-06-15 |
Prohibit SystemStackError while GC. |
ab8e756de0f88f1841510a4043558c0f4d28c5cc
|
2017-06-16 |
require 'bigdecimal' |
4d932a68ffd0da0267a9ecf33d480e2d355fd60b
|
2017-06-20 |
skip unresolved issue. |
f736cf327457a12189d5d3d43dee968a884ceb02
|
2017-06-22 |
introduce GC_ASSERT(). |
a48fecd3b9be58911182af073a6ac17528e0e68d
|
2017-06-22 |
catch up frozen_string_literal: true. |
de2ae27bd843893804ba97da0541c0684193ede2
|
2017-06-22 |
introduce heap_allocatable_pages_set(). |
dc44df8a06cca6bd372505093b4f28ca70c24eb5
|
2017-06-22 |
try to fix symbol duplication. |
eb3ca699351c56ca736641ba12b69a2e63e4b628
|
2017-06-22 |
use --dump option for parse rule. |
25566b05fc24d793b7a83941ac96971a03daba0b
|
2017-06-23 |
skip on other threads. |
23206859bc2365543a1b941351fde051977ee4e1
|
2017-06-23 |
revert r59151 which introduce failures. |
931cc441e5e062b7dd9fe8ef3cd4a12a80c2967e
|
2017-06-23 |
skip on other threads (again). |
1d248f04294bf5916f54168ee28cc42471132c54
|
2017-06-23 |
use NULL instead of 0. |
2108e55c0b8fd31cec8968868a56876a22f3104c
|
2017-06-23 |
use "enum ruby_tag_type" and TAG_NONE. |
a90c696b8bb67eecc5b415d58f55705c0bf3f8f8
|
2017-06-23 |
rb_catch_protect() accepts enum ruby_tag_type *. |
a64801c1e95e127ad47de1d6d8fdb3f3390a9687
|
2017-06-23 |
rename th->state to th->tag_state. |
4a4627fb0d770269f876c711b642b7f7275b22d2
|
2017-06-23 |
move "state" to rb_vm_tag. |
facd0883cb7523b6ff67f3a2bfa0a2627f1d5ba5
|
2017-06-26 |
Do not store/restore Thread#status on fiber switching. |
e8a80f80ac164f3cc1577f70eb068ede69e3993e
|
2017-06-26 |
add "FIBER_" prefix. |
043523adc5275b640f5bb33bd05513194dabf61d
|
2017-06-26 |
copy ec on Fiber. |
1939d097e650a60557eafbd89a6684f4626e0ad5
|
2017-06-26 |
move several fields from rb_thread_t to rb_execution_context_t. |
d98afe3ae2bfcef9ca5765e72f159d863b113e3b
|
2017-06-28 |
move storages to ec. |
249790802db62ff22c79830d4054c449fa3c243b
|
2017-06-28 |
introduce rb_thread_ptr() to replace GetThreadPtr(). |
3462dd360968c2186bd54a2035acf2d525295130
|
2017-06-28 |
fix to check thread type |
957d1ccdf91941e57a62eeb695cf79e1af87876a
|
2017-06-28 |
move fields to ec. |
8dd9c12c585375cc9d89441d7518a7846044deb0
|
2017-06-28 |
move fields to ec. |
5041f548ddc88f8a48d8f4e099dc2c5790a17d00
|
2017-06-28 |
introduce rb_fiber_t::first_proc. |
5168fb54e327be6414e53af54c149948a94e623b
|
2017-07-11 |
tainted string should be tainted. |
fb29a4dcda2b9c4fde85c6cf237d5158c0fe583e
|
2017-08-01 |
should not copy promoted flags. |
92f7813ae27ca7037f9ab6e5744675c01b3fa574
|
2017-08-02 |
release VM stack properly. |
46085e913a90e2c9b3c7b01d8aea91cd43e76224
|
2017-08-02 |
fix stack storing for root fibers. |
41e1670a64405133e3d25b73e5cab9456ccb364e
|
2017-08-04 |
use stable sort. |
57199f2125ce8e2043420af6ccc3354e1d411c0f
|
2017-08-10 |
refactoring Fiber status. |
43384ae9788be243746849ee54d9f5c8f7e0412b
|
2017-08-10 |
Fiber#to_s (#inspect) return richer information. |
93fd7e5639b2aba5ada1ebcbc77e1a88df6e0e04
|
2017-08-10 |
remove additional newline. |
27535987bedec229294a8f6f7d1d6668b7a3e697
|
2017-08-10 |
Define Thread#to_s (as Thread#inspect) and make alias `inspect` as `to_s`. |
d3650ccc7e78e434a30290aa4cd312f382ca9728
|
2017-08-10 |
constify some variables. |
6881279149bb452ed1787cdf60c8e614178c0b6a
|
2017-08-10 |
rename rb_execution_context_t::stack(_size) to vm_stack(_size). |
404284674a5f68527947d893d4525e95dc2adc33
|
2017-08-10 |
introduce fiber_restore_thread. |
c9bb3cae315aa7d17f620e9bcaa9223b1e6d2c07
|
2017-08-10 |
use VM_UNREACHABLE() instead of rb_bug(). |
da4ce796d2aeef0d18165de93d8548c1042b5ec1
|
2017-08-22 |
split out struct cont_saved_vm_stack. |
e553df868c3f9ae9db3212cec73529dd9e8cd9a2
|
2017-08-23 |
remove debug code. |
480c84e1afbe54d4b63da64d26fab2d39819557a
|
2017-08-29 |
fix error message. |
7e8cdaa6c34a1b8d6e6e78c61997a5f863f6c3cc
|
2017-08-30 |
to_str -> to_s |
ed740754bd96e845bc86f070b90267efc1ad5136
|
2017-09-01 |
skip unless PLATFORM is darwin. |
366157d32eacef7db8e5c57d0b492657d2b8a905
|
2017-09-06 |
rb_execution_context_mark. |
b95d9e664de6b7dd07c6de7249ad460fcb5b67bc
|
2017-09-06 |
thread_context -> execution_context |
e413909516eaa5416a33d9dd8011d2310a74f5bf
|
2017-09-06 |
th is not defined |
7119de47c7124f4f6ab1966ddf501c1700d51a73
|
2017-09-06 |
accept ec instead of th. |
8e037913733b49a788586c24fd97d2d616e42e42
|
2017-09-08 |
move th->fiber to ec->fiber. |
4f0c9a5cc49cf36f15af85f644982fbb847f0dca
|
2017-09-10 |
move th->machine to ec->machine. |
525532ff43a6c3ce4195ce4a21f4b7cb589d32a6
|
2017-09-10 |
clear `stack_end`. |
2a01ac897d98e1794666782ece6673185613171a
|
2017-09-10 |
avoid false positive on fiber_verify(). |
b53b37758d61e0367b6ca38d16011833cf95c0b1
|
2017-09-10 |
store ec instead of thread in rb_context_t. |
3fe69a0da484c277c4bcfc07e72e5843d56e83df
|
2017-09-12 |
Use mutable strings for mutation tests. |
9ea2102e57114d4c722b90355ab8ffe197938012
|
2017-09-14 |
remove an unused variable (sometimes it fails test). |
d0566062f97e0df9637fd78f5c6eef7f5e57991f
|
2017-10-02 |
catch up r60088 for DOSISH. |
da4f041ea2671e25fdc209eb24255f776583f127
|
2017-10-02 |
use `ra` instead of new variables. |
8ae178683f6abba8485573d7eb5dcc2232aee29c
|
2017-10-11 |
check a thread on TracePoint. |
1a63e72770d50a7b274c903be3b4c97a51db6dda
|
2017-10-11 |
revert a part of r60163. |
293b9d66af15b2f14f2e278a32a5aa29b7c396d1
|
2017-10-21 |
add RUNRUBY_USE_GDB envvar for runruby.rb. |
2ab99609e0968200c5b6ef41a1d3894c94d2d267
|
2017-10-21 |
imemo_mask (enum) -> IMEMO_MASK (immediate value). |
62c68b4c93d3b8d11c1b8b701223c8b4902263fb
|
2017-10-21 |
do not need to clear by NULL because of last commit |
4c6eb271ddecc8534d10449ec2ca40df6bea2e58
|
2017-10-21 |
fix r60281 |
5ee9513a7104078d9d2f51aecc354ae67f1ba002
|
2017-10-24 |
Lazy Proc allocation for block parameters [Feature #14045] |
a0fc5fbfd25be98d3456a5117fb807b93d3538bc
|
2017-10-24 |
add NEWS entry about [Feature #14045] |
837fd5e494731d7d44786f29e7d6e8c27029806f
|
2017-10-26 |
Use rb_execution_context_t instead of rb_thread_t to represent execution context [Feature #14038] |
e95de48f1d7719517400d0beaa4d7f4f295abbf7
|
2017-10-26 |
some functions accept `ec` instead of `th`. |
e6309f0d50ae498fe259866c8d5bbb7829ddcec5
|
2017-10-26 |
fix comments |
a8735ed2061adb06c725d62e4c79de504c7b9975
|
2017-10-26 |
A function accepts `ec` instead of `th`. |
32c41f0c7c9d47a38c73ec12dc80ec5263a5335d
|
2017-10-26 |
A function accepts `ec` instead of `th`. |
f3400dfd81e6c1b44acdaadce9fb180bc238353a
|
2017-10-26 |
use GET_EC() |
9adf6064ce7e5672cd7a91fd597e21917608a0c8
|
2017-10-26 |
vm_push_frame() accepts `ec` instead of `th`. |
284d4c08d66d15b299c9b483a80131d73a617af4
|
2017-10-26 |
vm_pop_frame() accepts `ec` instead of `th`. |
24044b2f6311f4cef41e7509018823c2dfd26577
|
2017-10-26 |
backtrace_each() accepts `ec` instead of `th`. |
4552f747159ad3ead5827bd17c006784163a38f2
|
2017-10-26 |
introduce EC_*_TAG() instead of TH_*_TAG() |
8afee516beddd2042585d69dc7a1ae4b02460902
|
2017-10-26 |
fix freeing `th->ec` bugs. |
d717dafc0e928228dcdc42242b2b8e7d3881cd22
|
2017-10-26 |
skip test_fiber_transfer_segv because it cause error with previous commit |
d77305fc9cdf295bee3d6d6148dfc602291ad91f
|
2017-10-26 |
make root fiber at switching. |
f56288d7a8b0972a0ceacd359dd0b7438f7540d0
|
2017-10-26 |
replace `GET_THREAD()->ec` to `GET_EC()`. |
a8868b3fe56384d9f57ff5803bd843b26afa1584
|
2017-10-26 |
rb_vm_bh_to_procval() accepts `ec` instead of `th`. |
a399badeebb988eea055373f69789112e59da238
|
2017-10-27 |
move decl. |
e47a687c83ab7d1084a573e9d12cc82b36f4c63d
|
2017-10-27 |
vm_get_ruby_level_caller_cfp() accepts `ec` instead of `th`. |
9d41e743987553183a6ef1df8913d3fc5423c2e0
|
2017-10-27 |
refactoring (rb_|)threadptr_stack_overflow. |
34ff953e37b9a96be57d73bb3c73d8c22c2ac98e
|
2017-10-27 |
Some functions accept `ec` instead of `th`. |
84e6a3d31c08d2302f8592ee07cc3bacb1f47d9d
|
2017-10-27 |
ec->th for vm_cref_push() and constify. |
2f4e6b6c4f49533cc905420be3e1810517078ac1
|
2017-10-27 |
vm_throw* accept `ec` instead of `th`. |
c96f809729aabb9a91a20dd1bf53154b004fa8f8
|
2017-10-27 |
`vm_call_handler` and related functions accept `ec` instead of `th`. |
b5101cbb23b9ddb24565c5c5512aea2b82af422a
|
2017-10-27 |
vm_get_ev_const() accepts `ec` instead of `th`. |
ac58719ab322b04a96067d46cd30068e0f0c1a2b
|
2017-10-27 |
vm_search_super_method() accepts `ec` instead of `th`. |
4c961b38618beaff222dbb7bae0dce1c64a5d0c3
|
2017-10-27 |
remove duplicated definition. |
7267a79a7f702f785e88952bafe1eeb5176460b8
|
2017-10-27 |
vm_defined() accepts `ec` instead of `th`. |
f37049ec054763168691c9c6bd70c75f00cbf89e
|
2017-10-27 |
`ec` -> `th` |
91f3700296bd881942125477f142693e97fb4392
|
2017-10-27 |
should use `th`. |
88910e94a83e3360619685b6535081e9c6f81d12
|
2017-10-27 |
`th` -> `ec` for block related functions. |
04dc3a0ca655011fc775d58a7bd933b8ed644ef7
|
2017-10-27 |
vm_exec_core() accepts `ec` instead of `th`. |
5f50a56efcff722192fd30c3f11c2c36768a101b
|
2017-10-27 |
skip tests temporarily |
baa849443f6e1cd91ab48f17d5967e4a60bfc93f
|
2017-10-27 |
`th` -> `ec` for `rb_insn_func_t`. |
7e9aca40711ac3a72576bd397481fa1ba037b98c
|
2017-10-27 |
catch up recent changes for call threaded code VM. |
6b0b79caee7f1b28e08a1d40107371388e96ecdd
|
2017-10-28 |
fix compile error. |
456327390983ebf05712f9707cf01adb4803d40a
|
2017-10-28 |
skip machine stack marking for current ec. |
f8a9d044f416e04e0c340fe77bf5c603fc753ff2
|
2017-10-28 |
move fields from `th` to `ec`. |
9c4542dbaa0808de63fed5681a0e514d47d5d10f
|
2017-10-28 |
`th` -> `ec` for vm_set_*_stack. |
796e1990beb5134e445606298fd86d9552a06f69
|
2017-10-28 |
`th` -> `ec` for vm_exec(). |
9ca50884282cb91e0d6dba6a8dfcfd4fc0eceea5
|
2017-10-28 |
`th` -> `ec` for rb_vm_rewind_cfp. |
5a7bd5349cd15bf662b949e8510570d3929c35fb
|
2017-10-28 |
`th` -> `ec` for some functions. |
e6956c048a5c082fc643096e32e37cf1f6d77db1
|
2017-10-28 |
`th` -> `ec` for some functions. |
874d6b329ec85d9109e79e3caca4ab15a4ec0638
|
2017-10-28 |
`th` -> `ec` for vm_iter_break(). |
c12897cbea435f39ceef1e26be2676835aa02d04
|
2017-10-28 |
* vm.c (REWIND_CFP): use `ec` directly. |
6d803d4391a27708903bbd12fb6fdb3e865c3a8e
|
2017-10-28 |
* vm.c (vm_define_method): don't use `th` any more. |
2317b5da2ae2bab490c91773dad27115d3342bea
|
2017-10-28 |
rename a function. |
4cd402ae1f5bf127ed16c7f5c84b5193e595cf35
|
2017-10-28 |
`th` -> `ec` for rb_vm_make_binding(). |
abfdaf20a6cada238c6bfd352c5375ed56b18bdc
|
2017-10-28 |
check `ec` instead of `th`. |
0c6e5c7880b048deb7174275418602881f637ccd
|
2017-10-28 |
use `ec` directly. |
b1890fa136ee7002b82e174de78d4fb6a2661467
|
2017-10-28 |
`th` -> `ec` for rb_longjmp() and related functions. |
7df94b0f3d5bccd92d7736e876a7a0ad746bfa77
|
2017-10-28 |
* proc.c (proc_new): use `ec` directly. |
42d137ff19f440bd4c771d0623b679b2636ab7e7
|
2017-10-28 |
* proc.c (rb_block_arity): use `ec` directly. |
ed21061f21392b45a101d2ab6b859d7a08899c8c
|
2017-10-28 |
`th` -> `ec` for rb_vm_call() |
7fa4beba91d37a91dbacb5faa5e12202202ba2d8
|
2017-10-28 |
`th` -> `ec` for method management functions. |
ad1b64d35d7ca980a0398f09cff527d7420cd5c1
|
2017-10-28 |
`th` -> `ec` for backtrace functions. |
382aa678d093904762f352063689577b3269a51c
|
2017-10-29 |
`ec` has `thread_ptr`. |
3fd1b00528ad9209acd60c5badcdc0b374c50000
|
2017-10-29 |
`rb_trace_arg_t::ec` |
a288b87c4c4469b98d75125d3f24eb904d02ca28
|
2017-10-29 |
EXEC_EVENT_HOOK(ec, ...) |
e80ef4e6ce746d4fed988581a9dd4b5ef6181c22
|
2017-10-29 |
use `GET_VM()` directly. |
cb81d0ecb1f3948bde2e8ac079c7cf78e92db7a7
|
2017-10-29 |
use `GET_EC()` directly. |
248d3d54a3ea81aaf319b1926a270e7f889aefbe
|
2017-10-29 |
rb_ec_stack_check() |
aafa4ebff234a4cdadf00c893369edb4b4a4ab38
|
2017-10-29 |
use `GET_EC()`. |
5256f7752763249288662c6c5ffc5686d244a535
|
2017-10-29 |
remove rb_threadptr_during_gc(). |
a93c650312c11fd22e146ec51d3208da28595152
|
2017-10-29 |
`rb_ec_error_print()`. |
8702a33dd20542262b31e42f2f83c7219e7a55ff
|
2017-10-29 |
`th` -> `ec` for VM dump related functions. |
b0d79e1072a72b6d23c70bec313d36c9cb8f8124
|
2017-10-29 |
use `GET_VM()` directly. |
bcdb02c8f46db3266d985eef906e8cdaa2bf31e7
|
2017-10-29 |
`th` -> `ec` for vm_call_super(). |
01a935d478d67235ac3e243580150ae83a2dd6b6
|
2017-10-29 |
* vm_eval.c (rb_current_receiver): use `GET_EC()`. |
2ffa4d23941e22379fe5ade55f2541bdb807ca64
|
2017-10-29 |
`rb_call0()` accepts `ec`. |
cf28dbc5431900bdc9a8d11e8f9f68b421c83dfd
|
2017-10-29 |
`th` -> `ec` for rb_raise_method_missing(). |
881ac0a5655a20272e3b23de42131a7be180e8df
|
2017-10-29 |
`th` -> `ec` for `rb_iterate0`. |
502d8d7ccbe7489180d01b6afb5fb3b879ab6745
|
2017-10-29 |
use `GET_EC()`. |
d95acd784e6aaab471a182a96d1b079b73b623ec
|
2017-10-29 |
use `GET_EC()`. |
9ffc0d19b73be82f77210ce8fb8d3eb10646fe82
|
2017-10-29 |
* vm_eval.c (vm_catch_protect): accepts `ec` instead of `th`. |
ac13e92e492886ca6fcc35dc325de4307e997b89
|
2017-10-29 |
use `GET_EC()`. |
c7c173a6185f8fe3c9cf5116a2362af95247a5f7
|
2017-10-29 |
remove unused functions. |
6d5636cdac33359b732c13e8a2a5c086f1006e72
|
2017-10-29 |
constify `rb_vm_bh_to_procval()` |
4d4f23d8c33aa6adaecd587f459c971cb7fc4bd2
|
2017-10-29 |
use given `ec`. |
484cd5a13e6608cc620f4b1871fb528491f5e7c5
|
2017-10-29 |
* vm_eval.c (current_vm_stack_arg): accepts `ec`. |
735129aa90f6e5675fd0b11f2354fc0d61817fd5
|
2017-10-29 |
* vm_insnhelper.h (GET_SP_COUNT): removed because nobody use it. |
6d11719b0ea795f572207429c56f54f4de25fa49
|
2017-10-29 |
call `rb_vm_stack_to_heap()` |
ad8bc4493d1b44b5189bc780e66d30736c96f403
|
2017-10-29 |
* eval_jump.c (rb_exec_end_proc): use `GET_EC()`. |
85fcaf025defe5f84880d111663218aa42d0d158
|
2017-10-29 |
* node.h (ast_t): renamed to `rb_ast_t`. |
d51de2bd61a60a0fae647605f1b362dc82f12321
|
2017-10-29 |
* vm_dump.c (vm_stack_dump_each): accepts `ec`. |
27be4d5adcf493465ed56cf6cfa55ea83f969526
|
2017-10-30 |
stop refine_spec because it causes double free error |
76d4fa8d15fb4e5a84e276b10ecbef22da38d681
|
2017-11-01 |
revert r60596 because it cause faulure on TestFile#test_realpath_taintedness |
e5e735549db7f678cf0174d4103df8c98651da36
|
2017-11-06 |
renmae ec::fiber to ec::fiber_ptr. |
5845bd6a718573da5f0f7e53368d2a1dda52f420
|
2017-11-06 |
show the location at intterrupted |
5dfdaa92994096ac7c6713ebd77413271ff4bc41
|
2017-11-06 |
move rb_thread_t::interrupt_flag and mask to rb_execution_context_t. |
49d0bbe73f22132773e9a6053d8fcbc16b261008
|
2017-11-06 |
use `GET_EC()` directly. |
8244d10f6bf4af6a237125af93634ee09578623d
|
2017-11-07 |
prepare local variables (th and vm). |
b6ecdf5fc8071f66d267c904a9c7888b59fef165
|
2017-11-07 |
th->ec: rb_threadptr_reset_raised() |
f3482ddabff7b2b069de76e1270576aef9aa9014
|
2017-11-07 |
rename because it doesn't receive `th`. |
001eb22c759b6d6e822937c72e3609497e2ba341
|
2017-11-07 |
remove `rb_postponed_job_t::th`. |
af8a7df3b66019043907fa066934e81a4ef2072f
|
2017-11-07 |
move `rb_thread_t::method_missing_reason` to ec. |
da9869625a7d73c844db27dfe09e574b43481877
|
2017-11-07 |
* vm_backtrace.c (rb_debug_inspector_t): `th` -> `ec`. |
4049ffb58e13be7e8d84a12254dcdf2df60a4491
|
2017-11-07 |
use GET_EC() directly |
d1013f2ab85006da94f7af04f97961bb9e9da38d
|
2017-11-07 |
use GET_VM() |
ee189904f0e3e0263adcbcc844947f6ccddfb7ad
|
2017-11-07 |
rename to rb_ec_set_raised(). |
48ce4cb414be48be1a73d2530203469b3b98281c
|
2017-11-07 |
* eval_intern.h: rename macros rb_thread_raised_* to rb_ec_raised_*. |
f1ad90a5e360752e3f7ab0a7641ca416be9e0b03
|
2017-11-07 |
* vm_eval.c (rescue_funcall_args): th->ec |
7e9c5aca4c0643afe8356b970008e5650174892a
|
2017-11-07 |
* eval_intern.h (rb_threadptr_tag_state): rename to rb_ec_tag_state. |
8d8e339d763eefa6ed9ccc23513d5d52e2db9eef
|
2017-11-07 |
fix comment |
8b7f06d2d66695b3997fb5588cad1d55da402960
|
2017-11-07 |
th->ec: rb_load_internal0 |
7285177c9700c7176c767047f1f788997623cbd0
|
2017-11-07 |
* vm_trace.c (rb_exec_event_hooks): accepts pop_p. |
2d71889b6b48f55780e2d97e4a159469427c94da
|
2017-11-07 |
fix prefix `ruby_...()` to `rb_...()`. |
f6c102e6a58cfd5f6ab2144e13727a074aef0b46
|
2017-11-07 |
th->ec: rb_threadptr_setup_exception |
8ea78d66a1cf671a9067edb727fb01df7437fd3d
|
2017-11-07 |
th->ec: vm_once_dispatch. |
8dbaf1bbdd92ebac7fd186f072cd35bbf7f6458f
|
2017-11-07 |
`rb_execution_context_t *` should not be `th` |
0c2746a7bbb02f8417b892408371dba5c4cff222
|
2017-11-07 |
th->ec: dtrace |
a95f4ace397d145d490de428c864ec55afda18f4
|
2017-11-07 |
`th` is not used. |
17f9ad40f64b0a7d54210964b5341f9c44fa4613
|
2017-11-07 |
disable GC. |
976b6df9596a2077f09f6bed1796a02a229498d1
|
2017-11-09 |
fix peephole optimization. |
3b7373fd00a0ba456498a7b7d6de2a47c96434a2
|
2017-11-09 |
fix backtrace on argment error. |
1c5ae5a16343fe8e32876ad38fd4093962dd02c2
|
2017-11-09 |
insn_info/insns_info |
61e4c999622d7f028a15379b5cd91ad1a25c2799
|
2017-11-10 |
refactoring about source line. |
77c301073b4fe9497ed96f0062b0017f57141811
|
2017-11-14 |
use RUBY_API_VERSION as ISEQ versions. |
665ba24b446971fdf652a9c57c32b176d0018636
|
2017-11-14 |
remove `trace` instruction. [Feature #14104] |
b000b1d93041f8466439709da7b71e1f3122d530
|
2017-11-14 |
fix prefix. |
19ae98d5ce12cd29d5bd276afbfd0a365265121f
|
2017-11-14 |
rewrite only if changed. |
1d7247e6941ed1630ad172834bbaaf25b968be02
|
2017-11-15 |
fix uninitialized memory reference. |
a3071ea4e38eeccc4d7e7eba3394ef7483b3cbcc
|
2017-11-15 |
remove rb_thread_t::event_hooks. |
23e452b17b604c35339265b480b900581abc2ce3
|
2017-11-16 |
cleanup hook cleanup code. |
e8ccf9f758a98348a3f35bb746b0d9b963dbb07b
|
2017-11-16 |
avoid duplicated-cond compile error. |
c761514c768d8a1bdae8f1e71657af251ea6d132
|
2017-11-16 |
fix up r60782 and r60783. |
ea665dcd8cb817c859f7f87a7d1a457cc823b4e7
|
2017-11-16 |
add `ec` as first parameter. |
b3cab0dc74da4349a4b478ed0de2b4578da542bc
|
2017-11-16 |
remove an unused function. |
7a666c67664053df9e749cc81d17a2312881d436
|
2017-11-16 |
rb_source_location() may return nil. |
15abb96177f389efb5edbae1bf5fc7e39787610c
|
2017-11-16 |
fix r60789. |
360b78e4dccf19971d7dc46a31fc55a2759e8762
|
2017-11-16 |
`rb_source_loc` -> `rb_source_location_cstr` |
1ae69a20645d7be556fd0ecd001b0bb5f3959330
|
2017-11-16 |
fix r60792. |
2fb4c36c44ab390b48a96985e6b0010e4e866992
|
2017-11-16 |
accepts `ec` as first parameter. |
4d6e899a27eaad2df5746f6c732de8ac56fad2a8
|
2017-11-16 |
remove unused function. |
003fd99ab3172a0428e83e64a95bc51f97aa81f7
|
2017-11-16 |
provide rb_vm_make_proc/lambda(). |
686e54f7052de070efa4276c9832b1697eea677b
|
2017-11-16 |
make it static. |
3936aaa59b4fcbc1592337f5b64d37295e99f8c2
|
2017-11-16 |
make a func static. |
aaa43037c21bf8fdb3348e111fd60e11a8536b79
|
2017-11-16 |
export rb_tracearg_callee_id(). |
d4a69bb48e4bd66a3d52759e7c7b14c600120f27
|
2017-11-16 |
make a func static. |
8184cb2bc7caea30a86a9a0a1217680569e17676
|
2017-11-16 |
remove unused function. |
1a7af9d0cdceb061255434f9cf321a695a67b02d
|
2017-11-16 |
make a func static. |
2c7e974e4ffc2596c8da8c74c8c2d4fc1f39876c
|
2017-11-16 |
make a func static. |
16ec72e56c915d31a4672b3991c6cdd9b70a5efd
|
2017-11-16 |
remove unused func. |
0de6da0ee5c012c6956d6f33976ad8baab0f1b5a
|
2017-11-16 |
make a func static. |
8798822564c499a0d3e67dc757635298dfa09915
|
2017-11-16 |
make funcs static. |
f4cb93adca71ac2a9b813003e8bfa2e5680ec51e
|
2017-11-16 |
make funcs static. |
b453fc2cb91eec4527f4039a965f27cc7715c365
|
2017-11-16 |
make a func static. |
a52603a8ea0fa31fd567d42efcbad256bb48e2b5
|
2017-11-16 |
make a func static. |
ea4b535579a77fc7f49bc00bc8d95f802b1d9ad4
|
2017-11-16 |
remove an unused function. |
1a960576262223e6ea1a2ead214cfaf90fc304e6
|
2017-11-17 |
remove `trace_` prefix insns lazily. |
c7ae8af92faf7c5566aaa2c0831a51e6b5f16e72
|
2017-11-17 |
reuse gvar value. |
d2bb08ecf02fccbe8e5d9723af21cfe454c3cf29
|
2017-11-17 |
remove a wrong assertion. |
8a664f0c9626b3bf57615021b3a549f5b68534ab
|
2017-11-17 |
don't use `goto`. |
26451ab3bab3aff8cee0113405b3c542c2d59b37
|
2017-11-18 |
introduce `trace_events' info for iseq. |
fb826d58ee187ac754d67fc048eef09e8c97171a
|
2017-11-18 |
call only with ISEQ_TRACE_EVENTS. |
eb3e32480d65efe19493d2f3b63dd31ada7eb354
|
2017-11-21 |
check invariant. |
9f1c00ce65ed8762d5ab9f133145e19d1951a7f3
|
2017-11-27 |
Relax `rb_bug()` condition. |
33201294eb59f10ccb98752207c2cc9d1c8757cc
|
2017-11-27 |
Ignore failures related to threading. |
5286a89624855418c548c4b5e60bc67e4b07f380
|
2017-11-28 |
check ruby_vm_event_flags everytime. |
0e34638f792ef908e59590266ed9edac5ce411f1
|
2017-12-06 |
remove `PUSH_TAG`/`EXEC_AG`/`POP_TAG`/`JUMO_TAG`. |
104ca9f4df386721476e0bfe107b323b68f3e0a5
|
2017-12-06 |
remove unsupported RUBY_EVENT_SPECIFIED_LINE. |
ec1d41ba0e119089ec4df4b58e5c12eb17aedc79
|
2017-12-06 |
fix last commit |
b5d5cce11b6980e963d84a7ee16a3d9a04a682da
|
2017-12-11 |
vm_exec.h: introduce macros for abstarction. |
975e3a19a7ef725f6358d74f5bf7fd20d4403587
|
2017-12-11 |
do not disable `trace_` prefix insns. |
568c0a2dff72459d65e58c0c828144cc5a19438c
|
2017-12-11 |
remove vm_opt_binop_dispatch(). |
a1061f557ba50ecffc7c835f88826f6340b1e471
|
2017-12-12 |
catch up r61131. |
6c49079ea2205119a0130c8d69e7f7a23f45b608
|
2017-12-12 |
ignore lines (to catch up r61155). |
c740951f250c4c4ad3b93e01aed92ec370e36e41
|
2017-12-18 |
check EOPNOTSUPP. |
cc2f982852248b56ddc44d5895de6fd7cf950aad
|
2017-12-20 |
extend timeout limit. |
b895c402a5c27f8b4604bc2293cf616c89dc41f2
|
2017-12-20 |
fix threading bug. |
e9a184ed63e7bdc121b482b7c08bcca670343821
|
2017-12-21 |
add experimental API. |
85277d5be0b24638ea4bf84c422e71a1219465e7
|
2017-12-21 |
revert r61371 for [Bug #14214] |
14d44c8997c5e1b0d81f6e7ace2c7a5e5ba1e84b
|
2017-12-22 |
fix a test for debugging. |
919fa894f5e0fed105ad1513cb8be0748ae46295
|
2017-12-23 |
revert line number spec of *return events. |
eb8c2773cb57628c09b36243d74cb752327819a6
|
2017-12-23 |
RubyVM::InstructionSequence#each_child. |
3044138bd734cf94e09250ac1bcb0886c26cdb27
|
2017-12-23 |
RubyVM::InstructionSequence#trace_points. |
0c8e6ae0b87d5e180385e4c46d83384e9eb7d28f
|
2017-12-23 |
fix last commit |
cbac40b3e53efce7740899c77eb979008dc96ff5
|
2017-12-24 |
Remove "trace_instruction" compile option. |
360c00572feb09da9d1575f667348773acfdcefd
|
2017-12-25 |
Set first line numbers for empty iseqs. |
d7c6776f7c8c94d0a5443fc1c5290561ef527f5b
|
2017-12-25 |
Disasm output contains code range. |
f8fac84c7ba232166fdacdcff026e6ea0570075b
|
2017-12-27 |
fix concurrent test. |
c39bdb798d838d58126b548465908243c41bb1fb
|
2017-12-28 |
`$SAFE` as a process global state. [Feature #14250] |
a9170f0dc1d2a4882022c48a47d1afb54fa4b12d
|
2017-12-30 |
increase test timeout. |
fb112a8c4debb4220eaa5a75fbb10afb39672b20
|
2017-12-31 |
fix reset order. |
cff48e4456ed67f1debadea38ae1041598b04222
|
2018-01-02 |
check an existence of block. |
4493657582d1dfd203f7b6c02d7006094242e525
|
2018-01-05 |
check array for zsuper. [Bug #14279] |
0268c85e85602f346ebfbb363702b14e13899840
|
2018-01-05 |
* insns.def (invokeblock): `calling->recv` is not used. |
0d2346f9a1bec6824863404cb371492336c673e4
|
2018-01-05 |
Speedup `Proc#call` [Feature #14318] |
7fd11834676eb4df34f7160aed1cdf798e60d0b9
|
2018-01-07 |
Speedup `block.call` [Feature #14330] |
adc0bf933e1232b43e01e79c8c676ba9420ab5ad
|
2018-01-08 |
fix mark miss of Env (which is pointed by prev_ep). |
b4960648bf524605f87e5a5562c3a4b68d2a08bd
|
2018-01-08 |
fix a bug only on assertion. |
8a83cd100bb932f47ecc7e214e9d89cb8ec3beae
|
2018-01-08 |
use `getblockparamproxy` to pass blocks. |
39c214984072280723f4c30efa3a2eeff7c13629
|
2018-01-09 |
`signed` is required for Rasbian (x86_64). |
6a87d5161f136a9e008c034dfe0684cf3455581c
|
2018-01-09 |
use binary search for insns_info. |
f8fa8dd9de59733315ff96fb8d4f6c3fbace1050
|
2018-01-25 |
revert r62032 because it refers to a undefined variable |
68e2a2e5cea3204f935988a8b3b49d54e8dc43be
|
2018-01-30 |
skip EINVAL on unsupported platform |
381650ea5821b62c0f559f62b1f445d644666e13
|
2018-02-14 |
skip "TestException#test_thread_signal_location" as a known bug [Bug #14474] |
633b463854e14e584f17a9255bb43b757b9b1f6c
|
2018-02-21 |
add NEWS entries about [Feature #14318] and [Feature #14330]. |
19a189947035c6e6f4785f27032392fa10a017d0
|
2018-02-21 |
use `--version`. |
4542d61628acb2de05a319fe4f5da9b3450260e3
|
2018-02-28 |
skip a test if another Thread is running. |
8d9c6e32335b2ae98b3391bccfeef985798dd500
|
2018-03-05 |
add prefix to the function name. |
38895e5c105f75cebd1dffc83667bbf04b0e22d0
|
2018-03-15 |
use SIGUSR2 to debug. |
8f2d5e58a3aa67c0a2eb3ba07ce5d60af09a6883
|
2018-03-28 |
fix regexp introduced at recent RDoc update (r62924). |
db3cc675f3c4e832028b67a202991fa78aa0a694
|
2018-04-03 |
Fix Fiber with Thread issue on Windows [Bug #14642] |
1751ea76a4583a1796324135fa5d30fef6abfc24
|
2018-04-03 |
repatch r62966 and r62969. |
c5632105323a2ed48cb319de74d7e938e62b0a21
|
2018-04-04 |
use Queue for inter-thread synchronization. |
51d227e3a5e6ae3e5d796a9e5fac35ad00a85e16
|
2018-04-04 |
refactoring r63073. |
dd45691dbcb2ffec790761c1b970fae91375a56d
|
2018-04-22 |
Skip some tests to make CI healthy. |
532464d1784598a2d86cacd59e2adde528760ff9
|
2018-04-22 |
Same as the last commit (comment out tests for CI). |
76daf51c36038fde7405c379b3b77924dc3dfe3e
|
2018-05-08 |
fix type mismatch. |
e6ad53beaa8f61c784d7e6c9cace5bd6ecc4d5c8
|
2018-05-23 |
remove VM_ENV_DATA_INDEX_ENV_PROC. |
37ea653080579e30a912d32c50b76b8c1a5619a7
|
2018-06-06 |
fix r63587 with temporal patch to pass the tests. please re-fix it. |
3b43173c64a15d291a30fced4d87762c32869fa5
|
2018-06-13 |
add "print_flags" gdb command. |
2e5aa3fba8fe96331ab420694aacf710dd995f43
|
2018-06-18 |
hidden objects should not be pushed. |
7f4fbc1f09e04a6d3c8e28f20835ebd4c43ef998
|
2018-06-18 |
remvoe assertion because rubyspec hit this assert |
61391616f422bb95baff5ce6992044d2d9c7b2bd
|
2018-06-19 |
NULL class Data_Wrap_Struct is not allowed. |
07a5e55f1126695457353cde5f7aeceec6cff07a
|
2018-06-20 |
Introduce `USE_GC_MALLOC_OBJ_INFO_DETAILS`. [Feature #14857] |
331f46a25063c8320ac6f6ad023c3edacedb36f1
|
2018-06-20 |
add assertion to vm_search_method() |
cbbe2fab8255223f2898489365b16a72d2c02946
|
2018-06-27 |
remove assertion for hidden objects. |
d0fb73a0f0b82ebc0d3eb931c28686a2b9c40fef
|
2018-06-28 |
check enc_capable. |
38e05ff3e194268fd2f38ac7c9530298e464f07b
|
2018-07-09 |
Don't copy FL_USER* on Kernel#clone. [Bug #14847] |
b2f9deee3ee0ee602fb5f062a4d0774b1ddc5bfc
|
2018-07-23 |
increase timeout seconds. * test/ruby/test_io.rb (test_select_leak): increase timeout seconds to pass this test on a high-load machine. |
b85b10c11f9846908a319e72c92e779e46c2217f
|
2018-08-23 |
check trace flags at loading [Bug #14702] |
8752a1ff4e87c226a4dfd966bc10c083a81f8605
|
2018-08-23 |
remove `const` warning. |
1f4efb9aedfb8f537630f7c13e431bb230bebd31
|
2018-08-28 |
rest parameter optimization [Feature #15010] |
a810a1a78c6ed91debffc37d9f8e6bea07decbcf
|
2018-09-21 |
fix typo. |
ac4b2d990c8484af7a214381e61d3494b6b858b1
|
2018-09-21 |
escape all env properly. |
cdc614cd0a21b2e72d953438438c78bafdfd9f80
|
2018-09-25 |
refactoring debug_counter. |
fa3d1ca0f4c29c0f740233ebd5bcdc9d2ddc24d5
|
2018-09-26 |
fix "initialize miss". |
ee819b0ddb0cbeb9c587e743204988b2e05e7c5d
|
2018-09-26 |
add some debug counters. |
d3a9ebeb1c49e1cf8dd6accec6485dee32ccff17
|
2018-09-26 |
fix OPT_CALL_THREADED_CODE issue. |
e0b3e5e12fae0527cbdb5af41a851c4cffe84711
|
2018-09-26 |
fix use-after-free in obj_free. |
df5ec4107d6c91fba05fb7cadac82c2371aec152
|
2018-09-28 |
add debug counters more. |
cebd2c4aba1c68939de6e2c6aaedcaccf7860873
|
2018-09-28 |
add small utility for benchmarking. |
aa1023edc43fc73200349b2f0f87741918c459cd
|
2018-09-28 |
add debug counters more. |
f251ce9f48e7bfb8a5f72f12c8c00d0b6a137899
|
2018-09-28 |
don't use GC::Profiler on default. |
f0eecb15a3cad13e1000c3784173abe342b782d5
|
2018-10-01 |
remove old VM profile counters. |
daf194745bc8a9b3b5a1b802beaf0a5f0c81ac1e
|
2018-10-04 |
check argument type. |
f8f77d84233ff50a5d1cd48f1852ad97a4fa7758
|
2018-10-04 |
use RARRAY_AREF(). |
e94ede5a85f98c353f3e9f6a6d78d870237a98ad
|
2018-10-09 |
use `should include`. |
165b446166c65f4dd905569981d188cc3eee8a17
|
2018-10-10 |
revisit `RARRAY_PTR()`. |
4ed087b0db4c11d743762615e2d3759b8c2aaf66
|
2018-10-10 |
revisit `RARRAY_PTR()`. |
eed1deecbad200c0b79da719fd83147a9ef6cf77
|
2018-10-10 |
revisit `RARRAY_PTR()`. |
228fc417ceb7d2618b125e10c6d15fd588297895
|
2018-10-10 |
revisit `RARRAY_PTR()`. |
2d4a268cd36c753e80320558699071581d816f4b
|
2018-10-19 |
check before access. |
b710785f1aaaa06bd5cd2e7a584c24aff20c9ab4
|
2018-10-20 |
add disabling MJIT features option. |
0b19e15a1239bff9ae854f522f954206ec910cf8
|
2018-10-20 |
rename configure option `--disable-mjit` to `--disable-mjit-support` |
3845a506046502f2f5e704cab87b66c6988f7229
|
2018-10-20 |
skip tests if --disable-mjit-support. |
7eecc7b8b4c790d07322bdb31d7baf93eb194729
|
2018-10-20 |
require 'rbconifg' earlier. |
ecac8d0c34aaf34a049aa913876f83051e599e90
|
2018-10-20 |
fix MJIT_SUPPORT on win32. |
9f5d9d31693e6f7413c22b6d7e828454e9e773b6
|
2018-10-20 |
fix macro-name. |
b4766a4d9ee5dca0d9491ae320131f065242b574
|
2018-10-20 |
support --disable-mjit-support on mswin32/64. |
543acfabdc10420c1076dafb01c2a125e5fa7174
|
2018-10-21 |
fix a warning message. |
f3c5239b16b983f1cea6c7710aae052f54e94ff8
|
2018-10-24 |
introduce new YARV insn newhashfromarray. |
434207e84da3ba5208d5e29baa153c3e017170b1
|
2018-10-24 |
need a cast |
6fa2b5e8d481045e222649661e0311e26f30c123
|
2018-10-24 |
newhashfromarray should be a leaf insn. |
f8dbff557af75c0347f271cf5a1a557eea9f9eed
|
2018-10-24 |
add new debug_counters for GC. |
85173be41f27871cb36ae77b8abfa1e3c0ae2565
|
2018-10-25 |
add new counter about GC. |
2d46695c7ca7d35b5ab79a2ec92ca985673a57e2
|
2018-10-28 |
use a rb_ function instead of st_ directly. |
d3edfdc7d9cadd6c8e7f7b7c93729da5c5cf4542
|
2018-10-29 |
use RARRAY_AREF() instead of RARRAY_CONST_PTR(). |
1ac67ec41678f021482be09033ca6e179e29be91
|
2018-10-29 |
use `rb_hash_new_compare_by_id()`. |
54726befc3eb52bf06640bfb07664dace3721d14
|
2018-10-30 |
use RARRAY_AREF() instead of RARRAY_CONST_PTR(). |
90ac549fa6bf6c5df38302bf1198a119f12a60ba
|
2018-10-30 |
introduce TransientHeap. [Bug #14858] |
efe869c0e5e53807c4d4a9becffad9f62e73c71d
|
2018-10-30 |
support theap for T_OBJECT. |
7d359f9b6955908954e56cab78bf16d9f0e93d24
|
2018-10-30 |
revert r65444 and r65446 because of commit miss |
312b105d0e263a36c129a14f2681fe16905c0244
|
2018-10-30 |
introduce TransientHeap. [Bug #14858] |
873d57347fca4fc7f407c2bca45f90797ab6f864
|
2018-10-30 |
support theap for T_OBJECT. |
198ff42258d9bfde8b2056d923510c52c957b5a1
|
2018-10-30 |
support theap for T_STRUCT. |
8f675cdd00e2c5b5a0f143f5e508dbbafdb20ccd
|
2018-10-30 |
support theap for T_HASH. [Feature #14989] |
870363886f8b5d6ee0700ff8a1b70081515b0fa8
|
2018-10-30 |
fix type. |
3bdd8e74f3b54b55be122bcc4a86e8bb25461cf4
|
2018-10-30 |
update NEWS about theap |
357967567066099d22480b54422f175de8b24160
|
2018-10-30 |
fix type. |
c608b2707ba30cf99ae4b1fb6c9a150a88598269
|
2018-10-31 |
add casts. |
ce9911c4831cf09a7c35c04a7cc65ac24bbedec2
|
2018-10-31 |
remove '//' style comments. |
2c62beb6b61e5c66ac165e6d759750e9340f5f62
|
2018-10-31 |
remove '//' style comments. |
0b16758b049d10715e3861ae208c65fcf290013e
|
2018-11-01 |
fix WB miss. |
dcd0346265bfd346133e75c701b97fcb31c0ae6d
|
2018-11-01 |
add dependencies to transient_heap.h. |
c39797e8724683e91618168bd993ac467b81eda8
|
2018-11-01 |
introduce USE_TRANSIENT_HEAP to enable/disable theap. |
728afecc5549dec604e2ad9933ed99154e47c491
|
2018-11-03 |
expose `rb_ary_detransient`. |
05711c45af45f19ce570863786ee2ed7cc6aabc2
|
2018-11-05 |
use `RSTRUCT_CONST_PTR` carefully. |
09821dd2a5b59024976b01ac7aa445b6fc14b681
|
2018-11-06 |
Fix TracePoint for nested iseq loaded from binary [Bug#14702] |
26081169e0a227a6ccf477c7fade17b90f266e23
|
2018-11-08 |
separate Thread type (func or proc) explicitly. |
8634e62a621fc50ffb29344425a558115bebd3bc
|
2018-11-08 |
initialize VM postponed_job first. [Bug #15288] |
3cb6952f12335ce0a84d612cdbebbc358c430e81
|
2018-11-09 |
fix passing wrong `passed_bmethod_me`. |
191108a6d0ec2c2b1c1fd89b8ccb3e4b53e5314d
|
2018-11-09 |
There is a path to use bmethod with ifunc. |
96990203b71184003cf8a9bad5cc177645820fd4
|
2018-11-26 |
Support targetting TracePoint [Feature #15289] |
f6fea2b227f4c537a72728d169b906cd9174482b
|
2018-11-26 |
fix type error. |
d35bfdac74ceae1c70781667a1efc3378163fe1b
|
2018-11-26 |
fix for ansi-pedantic compile option. |
6e33c16ffdabf6b8c64a49344f830a25a2b5bccf
|
2018-11-26 |
Give up support for cross-callcc set_trace_func. |
72e60a04372c03e40d3954063e6e520541d5ca2d
|
2018-11-26 |
`TracePoint#enable(target_line:)` is supported. [Feature #15289] |
b0ba0595fa162b1a63dc497ef1bf1c81f5d06b1c
|
2018-11-27 |
to debug https://ci.appveyor.com/project/ruby/ruby/builds/20566898/job/hda29416yal9h6hn use binary search |
eea3fe0a3bd128b559babd764563097a61360b0b
|
2018-11-27 |
enable at least one behavior |
33dc8a5c23cc647b42648596b5c77b3b8de6d39a
|
2018-11-27 |
`RubyVM::ISeq.of` accept ISeq. |
2b44228d6f4e504bbadc576efedbf26b9c12ecc8
|
2018-11-27 |
fix for ISeq.of(method). |
a9ace57505c1430889f3e3eefa0e3f6f5294756a
|
2018-11-27 |
enable another assertion |
b02f3731b64555457c608f93d2f6d61e0e4e75c6
|
2018-11-27 |
restore using_spec.rb |
66e9bfd4be3ddd149ba46b1b0f0074a0b244083d
|
2018-11-29 |
use __builtin_setjmp on mingw64 [Bug #15348]. |
a763e3460f594f60a5d2e8eba5f7da981d717a55
|
2018-11-29 |
clear dst Hash on Hash#replace. [Bug #15358] |
d80bf2f1e7dfe2c9719a9d68c87214fcef7cb40d
|
2018-12-02 |
fix last commit (r66135) |
1e9896ae314d23ce813d86796ed3f29669c9db9b
|
2018-12-03 |
use RARRAY_AREF instead of RARRAY_PTR_USE. |
5e11de658511efd346ed8bb0fac8a49e7c0eb963
|
2018-12-03 |
make `RARRAY_PTR_USE` more conservertive. |
5ce533520eb7bc797cee18848d1f7076b7f40a62
|
2018-12-03 |
add a NEWS entry of TracePoint#enable |
3e1f06da5de2c402077db07703432e4f674521d6
|
2018-12-05 |
fix C90 error. |
eb79191f16dea9547ded38413b38f4de3fa78569
|
2018-12-05 |
Introduce "COLDFUNC" function attribute. |
d3aad1592213ed2c6ade84b09119c9fce46d185e
|
2018-12-06 |
Return same ISeq object for one src. |
5ac990e83eb4399b38542d788622c8069c7c4192
|
2018-12-06 |
`script_compiled` TracePoint event [Feature #15287] |
69914cd80f5bc51dbc02dc530fd4313a87e91258
|
2018-12-06 |
add tests for script_compiled TP event. |
1692ccaf9f49c001b18de8b7296ede3f68190ab8
|
2018-12-06 |
add NEWS entries about script_compiled event |
ed2ad8fc1e42687109ed54788d605ce58e460d61
|
2018-12-11 |
remove unused (redundant) chapter names |
7510eef7484aa620d7dd16f191147c9b877b59b7
|
2018-12-12 |
remove `compiled_` prefix. [Feature #15287] |
8f0a0f4018f8c82815e7afb2ec999089ee2b8fc3
|
2018-12-12 |
restore `catch_except_p` flag. |
447b4dae6ff9ecf6240249bbcf7266df7e6e6712
|
2018-12-12 |
param.flags.has_kw flag should be FALSE before setting param.keyword. |
103e8d5bc757c88c9e2b0a567b830fbe36991816
|
2018-12-12 |
skip a test. |
e4c79d0d10429ac7d48641a66091f0292d807a9d
|
2018-12-14 |
rename li_table->ar_table (and related names). |
bb0eb3bf1f8c7d4da734eb9dec684adbf89b1b14
|
2018-12-14 |
separte NULL and EMPTY check. |
542e63b95346b5709871a4e9cc3c98a35146c0ed
|
2018-12-18 |
rb_raw_obj_info() support T_MODULE and T_ICLASS. |
2103333e783b525f5d31195aa771d4bc91443e82
|
2018-12-18 |
should use defined_class. |
2a70f68c05118775da45e630a96e89f6f57ceb39
|
2018-12-20 |
hide iseq operand object for duphash. [Bug #15440] |
4c9f3ce7b1a35ac891550ccd7b3de1be7475f2d4
|
2018-12-23 |
fix marking T_NONE object bug. |
ff8a775c57dc9a5640fb26b5e061bcdf01292c29
|
2018-12-23 |
move checking code. |
a976acd6039bafea26fa5b2d3a1b69c508e84013
|
2018-12-24 |
remove "deprecated" for rb_frame_method_id_and_class [Bug #15300] |
83515c6c32ce02f6360107e4be1c558c8586b425
|
2018-12-25 |
fix a test by restoring value checking. |
496267023c490e717ad0598bf1e3364835b734a4
|
2018-12-27 |
fix missed script_compiled events. [Bug #15471] |
da8830e3de84717ca5dbb659b60dc94557f7258c
|
2018-12-28 |
fix r66599 to sucess install. please refix this patch @nobu |
8ee0a8e91a2dfcde0381949348268961b0f81393
|
2018-12-29 |
hide ar_table internals from internal.h. |
94f4a0e91ee7077bcb4391a6f754c6ec58e78a15
|
2018-12-29 |
`TracePoint#enable(target_thraed:)` [Feature #15473] |
ba4672c2cb90c85bfeb7cac3295c68b116c7c6f5
|
2019-01-04 |
ar_table_entry::hash should be `st_hash_t`. |
87e628d66b7bf98f276dbd38b810f0197f821081
|
2019-01-04 |
skip to calculate hash value on empty Hash ar_table lookup. |
3a144485fc450465ba370cdf0d5501813d5962d7
|
2019-01-04 |
refactoring usage of ar_lookup(). |
23801110085a691095fc9a8eb164880418b2215d
|
2019-01-05 |
call functions directly. |
0c0d181e0fc9947b4d64b9bb3fcafcc65c3ec8bb
|
2019-01-05 |
fix trivial indentation. |
70caae18f26fb305b73ca33e71c46f370c3e0d20
|
2019-01-05 |
add ar_ prefix for ar_table functions. |
93583166c8cc9b28d36d8f4f8e23fe968849498c
|
2019-01-05 |
refactoring. |
fc7f99066608286f70fabcdec221e1502d40695b
|
2019-01-05 |
fix last commit. |
e3dbe84e12b3ebe95187edc3a5e9fe2f373a0388
|
2019-01-09 |
add setter of iter_lev. |
07298ea2094bca6f847e7b0c82e3c7059ff745e3
|
2019-01-17 |
support btest on older ruby. |
367fdd1aee07bd856612e9d796f301e1f1d5a30b
|
2019-01-17 |
reset bound if the size is 0. |
b4ab9c0e3214c619f2025fb19ff8e010d99112eb
|
2019-01-18 |
support older BASERUBY for btest. |
0c18a3d9826d59c3d02fbd49f84c9d69a706b670
|
2019-02-04 |
add debug code |
8bda94f78c959fbbcc17a99553b0c22396cabb96
|
2019-02-04 |
For this may be a syntax error (instead of LocalJumpError) in Ruby 2.7 [Fix GH-2078] |
0fc597f29c663bd785d3a7868a95340eecc7dc03
|
2019-02-04 |
check and show a warning for incorrect yield. |
91cb5c1a70b2f659b6ee1dad4ca7c658fe1e00f9
|
2019-02-12 |
fix empty Hash memsize. |
74b19e330adbdae2d8e53b58f1a2a7b725e69c8d
|
2019-02-13 |
fix imemo entry description. |
c6a2de302900784dd74106091c723862119bdeca
|
2019-02-13 |
check return value of `write` to suppress warning. |
5e80e9144f88bac3e2d8890c9e2fc22f5e391aff
|
2019-02-20 |
revert r67093 because it breaks tests |
e487e86e982a56ded6e5070aeef0d77655043216
|
2019-02-20 |
fix r67097 with cast |
8ed170961601a1becec56ffc0f0e7da1f9e56892
|
2019-02-20 |
fix rubyspec test to pass tests. please revisit it @nobu? |
4e15be8bade0a6a75c209eff3b96b4c4f03019a9
|
2019-02-21 |
refactoring compile.c. |
b1c1ee7183f6c9b6f585d35a5a8786594e1e7733
|
2019-02-22 |
change `cfunc->invoker` type for opt. |
19a8bbafd8ef8b48a9d2832e605fb00b3284630e
|
2019-03-03 |
close opened files explicitly to fix a test failure like http://ci.rvm.jp/results/trunk-theap-asserts@silicon-docker/1804207 |
2e9d4b9f0bd0cae89e75a7a16b2cf0c55aeb9c0e
|
2019-03-03 |
do not close FSs explicitly. |
24e03d7e268f5b89367d495ee2b4aac0b700e6e1
|
2019-03-20 |
optimize method dispatch for lead/opt params. |
df2af1147fc250cee73853cd9c78d5afeb9e2591
|
2019-03-20 |
fix a type error with a cast for clang. |
e8e1f72d8fae3d010a1a5bec90c897aee9f08ce0
|
2019-03-20 |
remove redundant check. |
79ddbe9deebc5af0f08e52cd056f58b49e486ea6
|
2019-03-22 |
optimize method dispatch for lead/kw params. |
c671f836b4d123bf86bce6defe42c87caef582f8
|
2019-03-22 |
add debug counters to count call cache fastpath. |
8dd0fb9039bbe6152ea5542e6bc70de152871e23
|
2019-03-25 |
use cfp->bp more. |
35e677dd0ab6b042cb52e9f98e35a2d8d7dc5e14
|
2019-03-29 |
use GET_CFP() instead of access reg_cfp directly. |
2b5bb8a0875b75f18e628c8b2df22760536bdad9
|
2019-04-05 |
add definemethod/definesmethod insn. |
b2311c67671c69df8c390f22b3cb961f7be39a75
|
2019-04-05 |
`rb_add_method` is void function. |
2a5ea43507564739be53af511c9b3a4891db9700
|
2019-04-21 |
add ensure to restore $stdout correctly. |
2ef66737081ec029f9c82e11671de36bb70a9e3b
|
2019-04-24 |
force 10 chars SHA1 display. |
4dc5d3c5dd43b4cc54517e604c16ecfc808e5481
|
2019-05-07 |
add new debug_counters about is_pointer_to_heap(). |
88449100bc6d23a00dbf3addb97665f4f606f2b8
|
2019-05-16 |
don't need to sweep rest. |
32e8b42852fc59a7064ec9ad642774c562b69c21
|
2019-05-17 |
skip tests for GC.compact to pass CI. |
b165bedcbd41d791a85fc1ce90b57a0d0525f319
|
2019-05-18 |
skip a test to pass CIs. |
ab0f2deab11a3203f9af3af1a27dfea1f4a882f3
|
2019-05-20 |
skip a test for CLOCK_MONOTONIC_RAW. |
0b9a7b35287e7c4db37e0f49612faeff29752108
|
2019-05-21 |
do not use RARRAY_SET() directly in array.c. |
7ff4abe650038ec4a9fa5fa9e0fbc16ceff7714e
|
2019-05-21 |
unify normal and verify ver. |
8c004c71235c5ee8b2d4846672788d3089f3e884
|
2019-05-21 |
enable test for GC.compact to reproduce an issue on CI |
3f6b5f447caf8f8ca06d5c170e9266ef20945834
|
2019-05-21 |
re-skip tests of GC.compact. |
0eff21af8d03a9d2b881b9cce963262da3d952dc
|
2019-05-23 |
update Array's length correctly. |
136ae55892ae120bb94e4ff2d025c745fdaa1091
|
2019-05-23 |
Do not kick finalizers on rb_gc(). |
02973d3ba8020f494ad2d627284f9bc45db48f9c
|
2019-05-23 |
pin `maybe` pointers. |
4814f173615f8f9f2f3429fe788089479490fe10
|
2019-05-23 |
skip zombies. |
6be0ab73c3f2cc95d76ca21203adf6a73c8705e7
|
2019-05-23 |
gc_pin() doesn't check is_markable_object(). |
dc95b57a68da6999ce6a1542b3ad81c51429cc99
|
2019-05-23 |
add verifier before compact |
10927b59256aeb196d164e8a8e75180a72768e97
|
2019-05-24 |
add separation char on rb_obj_info(imemo obj) |
712c027524e3a03500b3098d950fc2f0608ce897
|
2019-05-24 |
check it in eden or tomb. |
b0a4d81fc3c9195f7462a096a50e857669c47918
|
2019-05-24 |
check RVALUE on verifier. |
61da57c76a9e32a4154dac8f24f9b860d65b320d
|
2019-05-27 |
is_pointer_to_heap() checks also tomb or not. |
6c1a07555c7fb37a5cd36f08489d33d779b4d41b
|
2019-05-27 |
fix GC.verify_internal_consistency. |
b3a6469e46b3c9c10176b066e5076ddcc5f96939
|
2019-05-27 |
add a line break for each error message |
35146c436820f35733982bac870e409c57888575
|
2019-05-27 |
add a space between type and others |
b3602f1d20baa4e5f29b2baff2c265461af78f56
|
2019-05-27 |
check the object is in tomb_heap. |
cfd839c140707852340a840e9e164e0f211fbb42
|
2019-05-27 |
Suppress warning (uninitialized variable). |
7f211bfe6c5e4a763412406e5e257ea275ca53da
|
2019-05-28 |
use only eden_heaps on GC.compact. |
2229acaa54e1011ae77710e10f8c9e7933403127
|
2019-05-28 |
should use heap_eden->total_pages. |
f9401d5d44dd4ae69b6a14fcccd41c2810033986
|
2019-05-28 |
should skip T_ZOMBIE here. |
f3bddc103d6a9d6e679ab35d1d3e8ab7aa2f3ae4
|
2019-05-28 |
use malloc() instead of calloc(). |
8a2b497e3b8d9c9be27278081526cace50490140
|
2019-05-28 |
remove obsolete rb_gc_finalize_deferred(). |
8187ffa461be6c1ee198c0b8f2c3a22ca2681d9a
|
2019-05-29 |
Revert "Colorize error part more" |
e15de865837262122cc64705440d00efac4b8c71
|
2019-05-30 |
introduce `during_compacting` flag. |
dd63d7da61c472809c5e6a1dba81b7dea5aa1c1b
|
2019-05-30 |
move pinned_bits[] position in struct heap_page. |
5fc9f0008f824936c667970593df1b6663f0ae24
|
2019-05-30 |
reorder bitmap clearing. |
c2805192561ad9690b55c14aaccece1804b61a21
|
2019-05-30 |
remove `rb_objspace_pinned_object_p()` |
f1043090a2361019ea4f6832512ef47de3627cb2
|
2019-07-02 |
Revert "Add a missing tests for Logger::Period module" |
712a66b0741605f5b2db670a292b9bb352f8a716
|
2019-07-02 |
Revert "Avoid corrupting VM stack on inlined setlocal" |
47b04557b01dc109ccafc33db8e80148f07457a9
|
2019-07-14 |
Method#inspect with source location. |
47e571c9510a6d6e3f7d98a8a8800f391694bd19
|
2019-07-14 |
complement '.rb' on `test-all TESTS=test_xxx` |
223854ebe858a96560faac239f4c0e40d1af3943
|
2019-07-15 |
catch up e8ddbc0239. |
f6f09cbc76c3e47aec23898e024ff5bb5f061bc4
|
2019-07-15 |
introduce RUBY_ASSERT_ALWAYS(expr). |
f326b4f4af4963e252d24c4f7d7099fc607db859
|
2019-07-15 |
simplify around GC_ASSERT() |
c23e5976744f1984b309f0af724fbd8ddea2c56a
|
2019-07-15 |
respect RUBY_DEBUG. |
8ac1c6eb4837f5d088b7fc0a6ee51a5723f728a9
|
2019-07-15 |
respect RUBY_DEBUG too |
3dc212896c422add43c850ee1d1a613c7cc96737
|
2019-07-15 |
check return value of blocking_region_begin(). |
d40d8b3caf40e0b1769bb4a196aa7740aef4737e
|
2019-07-18 |
check saved_ec.cfp |
4ec5b39ce8bd3b13dec0ac290b2d7d29c640b304
|
2019-07-18 |
initialize only Fiber's cfp. |
63160a84b42cd3a7924e5abe94bbb08bb566f24b
|
2019-07-19 |
respect NDEBUG. |
182ae1407b3f6597cdbf6872f788c1ed3aa22a35
|
2019-07-19 |
fix shared array terminology. |
ae750799c1b28b06d02e50cd26450b9903516526
|
2019-07-19 |
Use FL_TEST_RAW() to check flags. |
fba3e76e3fded3534a34b21412c17af2b02a5f3d
|
2019-07-19 |
fix debug counter for Hash counts. |
f75561b8d455e1cf92dac8ac8838fdafc88cba71
|
2019-07-22 |
constify RHash::ifnone. |
1feda1c2b091b950efcaa481a11fd660efa9e717
|
2019-07-22 |
constify again. |
c25ff7bb5d8e8d2985ec8fd32a7211a06ad4eca0
|
2019-07-23 |
check iseq is executable |
df317151a5b4e0c5a30fcc321a9dc6abad63f7ed
|
2019-07-23 |
should not free local hook_list here. |
82b02c131ee1a87ac1b95443c85c6c8f7b30644f
|
2019-07-26 |
pass to obj_info(). |
ebd398ac5a4147a1e652d6943c39a29a62f12e66
|
2019-01-16 |
remove RHash::iter_lev. |
72825c35b0d8b9d566663de961fddbf4f010fff7
|
2019-01-17 |
Use 1 byte hint for ar_table [Feature #15602] |
312879693ffa88c0778baba2b6697f6e5f2f6116
|
2019-07-31 |
move macro to internal.h for documentation. |
e83ec207cd5fda973c41d6629d8504b515522b12
|
2019-07-31 |
add debug code |
efac0a2384ed6cb1572490b36566e2e37509d7df
|
2019-07-31 |
Revert "add debug code" |
cac44def0b0f0fdcd1aa8cf610e16a5506d2726b
|
2019-07-31 |
backtrace can be nil. |
5f95edb7af68ce03732da4d49eee8d6ee87ef544
|
2019-07-31 |
check SystemStackError |
40651cf1f567ae728c8d2cc908017c31e1000b6e
|
2019-07-31 |
delete a check on bad assumption. |
a1a198d03af6b285dbee552da5e40e7c3061e6c9
|
2019-07-31 |
File.realpath can raise ENOTDIR |
43d74776a1465095ab6b420809cc278d4f95f7bc
|
2019-07-31 |
check hash_hint is different. |
deddc8047647792e27e1b9829bc917ef73504320
|
2019-07-31 |
HASH_ASSERT() respects HASH_DEBUG |
bd1052d55da94b5503ff00c10e1cdcc04a6f9608
|
2019-07-31 |
use hash_ar_table_set() directly |
117241b3c73f8f7f1bcfee34e9d627c41bb19cc9
|
2019-07-31 |
make inline functions from macros. |
746386710646f93a5b9e0c408b00408041645091
|
2019-08-01 |
use internal_id. |
3a6f51ee35da5d49973aba8f7d8128a65a9d8c4a
|
2019-08-01 |
introduce ar_hint_t. |
e03b3b4ae046785278b9188c83b2338f0f550526
|
2019-08-02 |
add debug_counters to check details. |
b004d3e8300ba803d4a499148fa4fc6a690149e6
|
2019-08-08 |
solve "duplicate :raise event" [Bug #15877] |
71efad1ed391ee0c5398a76306fdbaaadd4dc52e
|
2019-08-09 |
introduce RCLASS_CLONED flag for inline cache. |
a9fd57056cdbf041f8f0ad1350846a175028542a
|
2019-08-09 |
double memory limit on MJIT. |
37eefb11fbadca6198b081a0a89d5b265fe45de4
|
2019-08-09 |
remove useless include and dependency |
6bf8db9a07e95820705f7ec119f4038a529182ef
|
2019-08-09 |
add rp() and bp() in internal.h. |
3b39cc6b038d419081a3d302a3cd73c3859613c7
|
2019-08-09 |
gc.h is required on mswin build. |
26cf4c91ad357fe6c8fc2247abe980dbf9a5b331
|
2019-08-09 |
extend timeout to debug. |
3cbd56d574a3ce6d5ddeb748462eb4dcdce4d166
|
2019-08-09 |
complement `test_` prefix. |
63384591e2c72b89f9d69d9acc6c8b80ca8432c3
|
2019-08-09 |
restore timeout |
182a408c2c4113eb316c2a87e35880144afb4498
|
2019-08-14 |
change Proc#to_s format ('@...' -> ' ...') (#2362) |
1cffd5b4f0b88669bc2daff025ab0b1650961a43
|
2019-08-14 |
fix last commit. |
53a55aeff3d409b4894d077f2b3b874fac53e387
|
2019-08-15 |
introduce RUBY_ON_BUG envval. (#2331) |
88b1f2dac430d7b10fc98c5a072c4edfeb51b27a
|
2019-08-20 |
`rp(obj)` shows func, file and line. (#2394) |
2da6b328bb5124793a6420c55325f3106b615bb4
|
2019-09-13 |
introduce IBF_(MAJOR|MINOR)_VERSION. |
3deeb3fd914bc5604e84e7a41ec2b5193a560479
|
2019-09-25 |
introduce `obj_ary_extracapa`. |
6d578164f5da815fb71d23ad186e841359384f25
|
2019-09-25 |
check `ARY_SHARED_ROOT_P()`. |
8ba48c1b8509bc52c2fc1f020990c8a3a8eca2c9
|
2019-09-30 |
rb_method_attr_t::location should be 0 or others. |
bf8d7d9c1d89a62537566ea6dd43db175a892dbd
|
2019-09-30 |
show RUBY_ISEQ_DUMP_DEBUG envval if given. |
88f38c187e3171f8f351f3198247d20ea9f016ee
|
2019-09-30 |
Emulate method_list (chkbuild) on test-all. |
c3b84f2de83a27acc638f99743bfa2c44bac621c
|
2019-09-30 |
introduce debug check. |
945560008ffbb768df3a6e9f0814f2d117993a5e
|
2019-09-30 |
Revert "introduce debug check." |
671ca21254a60d967570c8c973f5f2f17beb4931
|
2019-09-30 |
remove `unused var` warning |
84cbce3d880f0d6a51ccf3622b8d1e79132b9a0e
|
2019-10-02 |
Enable checkers on parallel test. |
9759e3c9f09ec442b2aa0d0cc299ac791e516a01
|
2019-10-02 |
fix assertion number. |
ddf5020e4fcae5ed28a064af10124a032590452f
|
2019-10-06 |
Revert "tailcall optimization again (#2528)" |
caac5f777ae288b5982708b8690e712e1cae0cf6
|
2019-10-19 |
make monitor.so for performance. (#2576) |
a0a3c701816c2fe4ab6e940c6cf5638756ceb6dc
|
2019-10-20 |
delegate synchronize method |
a236eaa762137d7cb32b8311e0ef9a74bbb0f385
|
2019-10-20 |
Native MonitorMixin::ConditionVariable#wait |
9e07dfd253f5086b306d5e32d3ef4238a8510bc2
|
2019-10-20 |
show BASERUBY version at configure. |
8b8b9c1a1fdb26f9b0470391234d8c935b083577
|
2019-10-21 |
add a NEWS entry about [Feature #15602] |
0f0d05a3b11e6fe933c52e018900bac2bb6c9fc6
|
2019-10-21 |
fix NEWS entry about unbundled gems |
9bbc28340e62a732d1fad3676b7a81019bda2db6
|
2019-10-21 |
add a NEWS entry about Proc#to_s change |
ee302f54a0b32352faac30758cf91f502997fe1f
|
2019-10-21 |
add an NEWS entry about [Feature #15575] |
4c3e3b8028ca76fcaedc0e40d9ac678e3ac79ee9
|
2019-10-24 |
Revert "Fix Fiber#transfer" |
38e931fa2ceac6d922f3eabedb8f35f211de0bdb
|
2019-10-24 |
show "transferred" attribute on Fiber#to_s |
e8f90e73978c0321021c177fe3fa2623a8b3a4de
|
2019-10-24 |
check T_ICLASS for Method#inspect. |
58b363bf0d1f31ae9bcbaf301f9abedb99fa90f6
|
2019-10-24 |
respect `param.flags.ruby2_keywords` at to_binary. |
88135845f10f4b8ea3b67584a2c899ad365fd6bb
|
2019-10-25 |
enable assertion for debug. |
d8d581bfc4cee87a59e40eac20e51fe199eb44bf
|
2019-10-28 |
add assertion for mutex_lock. |
46acd0075d80c2f886498f089fde1e9d795d50c4
|
2019-11-07 |
support builtin features with Ruby and C. |
e2a45cb984ba75083a577b38ee9643800579a280
|
2019-11-07 |
use builtin for TracePoint. |
a47d058ebf6890f4ad81c9c3419e767b4f093815
|
2019-11-07 |
use builtin for RubyVM::AbstractSyntaxTree. |
46b9ca6c54ad7c4bb43df6a45854c5ffed980168
|
2019-11-08 |
fix type |
08ff9edb533301cf1622d541832938577dbcd993
|
2019-11-08 |
fix line break code (fix to LF) |
dad2abc69fdd1af52df353b8604017bd6a5c6a99
|
2019-11-08 |
do not use __func__. |
365557f111b453289a5e2ce0cdda0899ae248c71
|
2019-11-08 |
Define IO#read/write_nonblock with builtins. |
eaa011ffdb55a315a6b35a52c3636c673f9ea836
|
2019-11-08 |
Change requirements of BASERUBY. |
2eb02dfd3b650b54d6f3f5a63541e8165c997edd
|
2019-11-08 |
Stop compiling if type mismatch was found. |
8fa41971c204555b889c9722586b8baee55a0ca8
|
2019-11-08 |
use builtins for GC. |
054cb6d389da6a260830e4bd262aab2ee8fe2cb2
|
2019-11-08 |
forget to add gc.rb |
0b29662606bb80762d58938e847441020301406f
|
2019-11-08 |
fix line break code (fix to LF) |
83c563cfa403af1141fc0080d2b6eec344db6726
|
2019-11-08 |
cstr -> bytes |
dfac2e9eb3d697e56d91151584f1d3cf9d2c79c9
|
2019-11-08 |
don't embed full-path. |
b5d884922053962c955df1ce54d9dabc98888272
|
2019-11-08 |
Revert "don't embed full-path." |
21f7cca2c6394aaaec9189a7cb08a9ad8a2196e3
|
2019-11-09 |
initialize kw special local var. |
43ceedecc0b9990b5bac2e65de5e439c41a9996b
|
2019-11-09 |
use STACK_ADDR_FROM_TOP() |
9142f802f1126d65abb1aad5e2bc91b5b833fe7e
|
2019-11-09 |
rewrite comment. |
05a5c69e1a06a3853afb3744fa9925910b78904f
|
2019-11-09 |
add deps for miniprelude.c |
31416423809f64d4b5ea6b9651cced3179cc5ced
|
2019-11-11 |
__builtin_inline! |
99be207c2acabe0030c376fd731608d9cd7c69b6
|
2019-11-11 |
add a NEWS entry about builtin features. |
a815053a3ea16382bea8b420a3070b4da3c3bb94
|
2019-11-11 |
check monitor is owning for debug |
4be1e84d7894751799cc9d8ae2dec720952a02a3
|
2019-11-11 |
more messages |
b8d242d221641752a495ca43f8f211a3ad73d467
|
2019-11-11 |
release RUBYGEMS_ACTIVATION_MONITOR correctly. |
4a30fabfcfd72bd61bf1dad61f168eaba6100f12
|
2019-11-12 |
Monitor owner state check correctly. |
fef4370b409c990228cded2c425a6afb3bec2906
|
2019-11-12 |
check more. |
fd6445b7e8bab9d340be6f76688a8b96f1b52029
|
2019-11-12 |
Monitor#exit: check monitor ownership. |
3a408aff578bcde428ebdd4560d819c1ba792f2c
|
2019-11-13 |
try to remove vm_core.h |
179062dd808c0a48e16269a2c42b10235cbbacd8
|
2019-11-13 |
move rb_vm_lvar_exposed() correctly. |
9c1abe2a6c5e6288ed208000fbf811d145af9355
|
2019-11-14 |
load prelude.rb by builtin features. |
93ce4f1cd7c96f0fdbeebc87a9fa64d07cede729
|
2019-11-18 |
update deps. |
71fee9bc720ba7a117062bf3f78b6086527b656c
|
2019-11-15 |
vm_invoke_builtin_delegate with start index. |
c3693bbaaa39d36210060fb4478751d66c0052ad
|
2019-11-18 |
catch up last commit. |
5e34ab5406942d43b4c0fbccfc153409d0386d1e
|
2019-11-18 |
add casts. |
57cd4623cfb56d12eb308eaf5fb09612e4572c19
|
2019-11-18 |
should not use __func__ |
a5fe08fdd9d11f12a6837291ee588ab933a823b6
|
2019-11-19 |
care about TAG_FATAL. |
ae818b589efcb5dca47d9ceb888cb658ef56e286
|
2019-11-20 |
add a NEWS entry for Method#inspect |
1197a036ae1c48ac0842bb2a0dc8af213def47d7
|
2019-11-20 |
Add a proper cast to pass JIT tests on mswin. |
e27acb61485189fd7647741b6ca19920989dec03
|
2019-11-25 |
add fast path for argc==0. |
a3e6f52c17061f012c4e638b3343b57752ed7603
|
2019-11-26 |
rename __builtin_inline!(code) and introduce others. |
dd723771c118da71aa58bb74537cacaec425542a
|
2019-11-28 |
fastpath for ivar read of FL_EXIVAR objects. |
2e6f1cf8b264f4c8499c4e5f18bf662fdade04ff
|
2019-11-28 |
export for MJIT |
e4e41840ad378ccd3144fe84ffd3aa55f6610ca5
|
2019-11-28 |
Revert "* remove trailing spaces. [ci skip]" |
f38b6d197f84ba8890daf4d708c0d17c1d339700
|
2019-11-28 |
Revert "export for MJIT" |
6b460a79489bf65dee0a4c9f42324d3836888dd3
|
2019-11-28 |
export func for MJIT |
36da0b3da1aed77e0dffb3f54038f01ff574972b
|
2019-11-29 |
check interrupts at each frame pop timing. |
56faa13a1c5261a0d046a4c0203e88fccfafae17
|
2019-12-01 |
remove spaces to pass a test. |
c6e3db0c66312af1e932c21006437419efa9ac75
|
2019-12-04 |
new_cond before mon_initialize |
c88afd532895a8527f7c9fffb2c635805d01f626
|
2019-12-05 |
fix parameter |
edb80dfe3e6086fb9d5d905a40cdd6ec61a2e1ee
|
2019-12-05 |
add additional CF info for CI env |
ee579200082329db66e153c465cb8332e55bacb2
|
2019-12-05 |
move an interrupt point. |
943f3e5fd463bf2a4a3a4e92b5134e238b9c931d
|
2019-12-09 |
add include guard |
2c5c60754cafe9895b7a7421cd0552eaa2ae8b09
|
2019-12-10 |
use compiled binary for gem_prelude.rb. |
9c2807b2df14984e3c81d72a381d9a4d288b3fbe
|
2019-12-10 |
remove prelude.c |
40026a408df5e3576380f6c1d8bf6c119fa2e32b
|
2019-12-10 |
support cross-compilation. |
bbbf451bffbc5605b53726c5977d96bffc10d162
|
2019-12-11 |
Update tool/mk_builtin_binary.rb |
fe8caf0ab93e69b743470d16f6cf7416fe9c98da
|
2019-12-11 |
add depenency pointed by update-deps |
6025783a3b0b37517728c635250669449bb21a53
|
2019-12-11 |
fix for old MRI versions |
7f5014e6e884d7fa091e3e6462827b910417267c
|
2019-12-11 |
rely on sorted compiled binary array. |
1269157a6e46895c0eda2ea202d44790bbe815c8
|
2019-12-11 |
Thread#to_s is not same as #inspect on old version. |
eb9c0070535bc088ab2921613830ba983bfe07a1
|
2019-12-11 |
skip continuous failure test. |
79eb5e1acac2339c6ec71db723298bdfcd92b233
|
2019-12-11 |
call GC.compact after each test. |
27ac034f196967f54edf00474880886624d30245
|
2019-12-11 |
support gc_compact_checker on parallel test. |
54e089df9e37d438687effd092feda2442116c62
|
2019-12-12 |
show self on control frame dump. |
97a17a51b8e6eca31fd6421511f1907e6e95b415
|
2019-12-13 |
readable function names for inline functions. |
fbe229906b6e55c2e7bb1e68452d5c225503b9ca
|
2019-12-17 |
add debug counter to count `call` reusing cases. |
9d3ffcfbfc742ed5053b59678dbf97773a7dddc1
|
2019-12-17 |
disable assertion. |
644336eef54c8ee2aeb7fd6c55fcd5620bcfa5b4
|
2019-12-21 |
add a NEWS entry for [Feature #16163] |
cf59e1476d01be27dc88cbee5f6c6cf87f007043
|
2019-12-21 |
fix a thread test. |
a96f8cecc2488126d7298ea304da8bad3dde1792
|
2019-12-23 |
ObjectSpace._id2ref should check liveness. |
9eeaae432b9a894e28e3906435f3d454d8fd025c
|
2019-12-23 |
add more debug counters to count numeric objects. |
100fc2750b8f2c4dbe0aaa6c622bbf5f6d61e3c0
|
2019-12-23 |
fix wmap_finalize. |
f201700051cc107b55c425bf331ce6d7ad3ef22b
|
2019-12-23 |
move a NEWS entry about inline method cache |
360f153fcaab637486aa2669d354d53e0eb1c3d2
|
2019-12-24 |
remove "experimental" from numbered parameter. |
47ad57f2450251f47b3f8e1f744d782269bbcdeb
|
2019-12-24 |
Revert "Scale sleeping times" |
5220145ea289d9eb955b373f31773fab2d4f0271
|
2019-12-24 |
add debug_counter access functions. |
227c3d642631262acfbf140c566a7841c32b372f
|
2019-12-25 |
add ref to NEWS entry |
d9bf9c572f461c282fa6e65833e98bc7d453a66f
|
2019-12-25 |
take care of USE_LAZY_LOAD=1. |
9808e010907bb16068497d9f0f8593a7165fa42d
|
2019-12-25 |
export a function for MJIT. |
27fae1d4adfef26d30d43f2d0d6653e99aaaba3d
|
2020-01-02 |
disable ccache if $CC is in /usr/lib/ccache/$CC. |
6f5ee1f092414e4d60a403d82a57cf023b38c0b9
|
2020-01-02 |
modify MJIT_CC only on RUBY_DEBUG=ci |
9f460e017b341fc8378f00315b0776e300107ccd
|
2020-01-02 |
move internal/debug.h definitions to internal.h |
ce072fe5689184cba5e4a86968367c525cb22a72
|
2020-01-06 |
script_compiled event on compile error. |
33d866558b4792d877e7735d2239b1337d334c6c
|
2020-01-06 |
support RUBY_ON_BUG envval on assert failure. |
350dafd56a9cff58d36303aeb7515ab41c5dbbb3
|
2020-01-12 |
reload AR table body for transient heap. |
eb4c86a698e1be9fa2a79f4edb1c891396e6074e
|
2020-01-15 |
Add option hash doc for GC stats. |
8113f3fee4a962321b6107e58496afc6733c299c
|
2020-01-21 |
add default break points |
8dbd5c76a0ed26d4adb440fee97c3f25ee6bdcf9
|
2020-01-28 |
support multiple run for test/ruby/test_array. |
b17bab7472a0491071c7da9e8b41305d3687a341
|
2020-01-28 |
support multi-run for ruby/test_autoload.rb |
501e7f4959a1193c82adc1b661a85621952121b8
|
2020-01-28 |
support multi-run for ruby/test_basicinstructions.rb |
14759e6907eaecc86ab06a3ddf107426c00cb2c5
|
2020-01-28 |
support multi-run for ruby/test_const.rb |
5f7be6243a5b0cdbf1abc8967a512e48c2f1489e
|
2020-01-28 |
support multi-run for test/ruby/test_encoding.rb |
962c7abb1373ee1ff7d5ce443b2872deac452b9d
|
2020-01-28 |
support multi-run for test/ruby/test_eval.rb |
251930cea0e935494b1e8cbbe851e63b978dbc80
|
2020-01-28 |
support multi-run for test/ruby/test_iseq.rb |
ac2b945bc0182859ea538dc6b02ad6945a5cf212
|
2020-01-28 |
support multi-run for test/ruby/test_marshal.rb |
cc2fe6936c0e9b815d43a942d2bb7dff0363ccf6
|
2020-01-28 |
support multi-run for test/ruby/test_method.rb |
1bc731cb65cfd9baae718b9a8588e668dd1c75e0
|
2020-01-28 |
support multi-run for test/ruby/test_module.rb |
56b0300f24bc2bce6309279e2c07e8a1f08044e4
|
2020-01-28 |
support multi-run for test/ruby/test_proc.rb |
9b65bfdc9e5eb8a36fdd464ed7534ed2a9557ea7
|
2020-01-28 |
support multi-run for test/ruby/test_refinement.rb |
0f03c1433ef6a17acd64f4dc4a539b4630e975aa
|
2020-01-28 |
support multi-run for test/ruby/test_primitive.rb |
4df0819c5d8b7d11e3fa1d2ba45fe7da68a0e064
|
2020-01-28 |
support multi-run for test/ruby/test_settracefunc.rb |
9552262bb2e293efa6e8f535d68623f2ecd13360
|
2020-01-28 |
support multi-run for test/ruby/test_struct.rb |
151533e4bc9dff8efefb251dd25b1d57d3082d19
|
2020-01-28 |
support multi-run for test/ruby/test_autoload.rb |
20c1c240145b7db66014020e233b23d12574efae
|
2020-01-28 |
Minitest::Unit.current_repeat_count |
dd64c34682bfcb976ec6fb0c6182fb09d9d790d3
|
2020-01-28 |
support multi-run for test/ruby/test_time.rb |
471a9693118d0e6897b50dbbd935a237ad637398
|
2020-01-28 |
use Minitest::Unit.current_repeat_count to skip multi-run. |
4d132fa130e16eeb4af4177cfaccc00e05e2f864
|
2020-01-28 |
srand() should not run in tests. |
65768c80beb64a14c3e918f8ed5e41e9349025d0
|
2020-01-28 |
remove debug code. |
7882c43fc306c1100be8e1648f3d1caa48d50a8a
|
2020-01-28 |
refactoring: use Proc and Constant. |
e7571f163b791d8ca5df389ba97e7d4acadbf480
|
2020-01-28 |
restore $LOADED_FEATURES. |
0cfba9cdd9c18b0245b088ed5b460f0d6f90d586
|
2020-01-28 |
Revert "remove debug code." |
650f152d2f5ed929c76cd7e7cf17270e53ac346c
|
2020-01-28 |
Revert "srand() should not run in tests." |
534536c7cc69970fead43df048d55efe518a03f3
|
2020-01-28 |
fix test cleanup. |
46173eeb64245ff533dafddd3d74338763c0bb35
|
2020-01-29 |
support multi-run for test/ruby/enc/test_regex_casefold.rb |
7b4b01424fe7448133c63e9415edf075a3c760b9
|
2020-01-29 |
skip SEGV (BUG) tests if ENV['RUBY_ON_BUG'] is given. |
a635c93fdebeda6347b8654af1a191e214ad7ccf
|
2020-02-03 |
support MJIT with debug option. |
99a8742067ba262eb324615bfac770d1aea53b07
|
2020-02-12 |
should be compared with called_id |
53a8b1486b0e020858aa04f004aa22f4396a1bd0
|
2020-02-12 |
skip SEGV test if RUBY_ON_BUG is specified |
a1eb1fabef1bca0696449cd358d93f5a644d5914
|
2020-02-21 |
use RUBY_FUNCTION_NAME_STRING instead of __func__ for rp() |
f2286925f08406bc857f7b03ad6779a5d61443ae
|
2020-01-07 |
VALUE size packed callinfo (ci). |
b9007b6c548f91e88fd3f2ffa23de740431fa969
|
2020-01-08 |
Introduce disposable call-cache. |
31748e69c84894ac8f042a67d1320db8593c9ce1
|
2020-02-22 |
CI can be NULL. |
f744d80106ad236cb517c3a6eae5e591562e2377
|
2020-02-22 |
check USE_MJIT |
7ec23593746c8ccabd6c005cc34dde77d564c6c9
|
2020-02-25 |
prevent GC from mjit worker. |
670b7be6c5fb9c3438fb6e36070401f25806f725
|
2020-02-25 |
should count only string. |
84d1a99a3fc76b4bcd5fc382e5b30a466b124493
|
2020-02-25 |
should be initialize jit_unit->cc_entries. |
116c6320956ce80efcb1db849a190ebd7f8c8ad3
|
2020-02-26 |
don't ignore `--seed` option |
7c1553e91db07fed4fed3287b50304f1c69a685d
|
2020-02-26 |
`srand($seed)` at the beginning of each test |
f9d314245b1b088555253f5b653a801031cdc1e6
|
2020-02-26 |
Revert "`srand($seed)` at the beginning of each test" |
14f179080713012251e1faecccefebf2f33ecd86
|
2020-02-26 |
`srand($seed)` at the beginning of each test |
6b30638bdb729c73a05190587123e43e2ffd69f3
|
2020-02-26 |
MiniTest::Unit.options has default :seed |
18674aef0d8199958dbda21eff5167dfc4a5de9a
|
2020-02-27 |
check imemo_type |
28399e4e0f8036b03d7e626b0071de0f59ac7bc0
|
2020-02-27 |
respect --test-order=random |
6787ccf23837c50e51cb82813bb713fda052131e
|
2020-02-28 |
setup Other class. |
f7be85a2b7b2f1e3485c6da8fb990ac47059ae12
|
2020-02-28 |
support random order test. |
cb681c20c09431d1cd441328fd7b27abdec93299
|
2020-02-28 |
restore server[:DocumentRootOptions] setting. |
b3983c68dd74ba013f7ac41a3df67ad2e4fdcc23
|
2020-02-28 |
should not expose hidden object. |
413c98003bc936dd29e40aebad68b43fbe6a527f
|
2020-02-29 |
show backtrace. |
356e032e1a622c9e34c1c48b516861db10b3b31b
|
2020-02-29 |
require enc/trans/single_byte in advance. |
0bfee2397ba59112902d2b49f08461db3a637b46
|
2020-03-02 |
show debug info. |
31c55b672501a843d3db88e7a792f0edbb646607
|
2020-03-02 |
need to restore $stdin. |
fb377e8f3a9ddd89099248ee4b512023451935c4
|
2020-03-02 |
Revert "show debug info." |
d348b4adefd0f570686640335e183d8a96d626c6
|
2020-03-02 |
skip test if Reline.completion_proc is nil. |
4fd51f848a59b999427d3b941d8777ec00f0431c
|
2020-03-02 |
vm_cc_fill() need to clear aux. |
648eb31b9ae1c8adc0acaf192ba1d033d16a308b
|
2020-03-02 |
Reset Reline.point |
91de0daaa239e9ceb40f1a69b04b373b71477b43
|
2020-03-02 |
method_missing_reason should be set. |
aa9a38c0ed114edded28a2a26e8dd507f7e1547f
|
2020-03-03 |
Ignore incompatible convert of symbols |
1ad9364440f6685d2df3b855f5e22f644e9f1f43
|
2020-03-03 |
add debug code for Solaris |
cf52f37caec8cd1955af4ccb32933828aa330854
|
2020-03-04 |
Narrow the check target. |
6e271e4cbbe6a8bc4d4f75dc553ce054eae7af00
|
2020-03-04 |
Run major GC to make sure the minor GC next time. |
02705b27be207fce57bd0253251f81108c7ed57b
|
2020-03-04 |
Run major GC to make sure the minor GC reason |
ce586107d8da0d6dff1a62d500be1bc2c1cbe9b4
|
2020-03-04 |
fix 6e271e4cbbe6a8bc4d4f75dc553ce054eae7af00 |
4c019f5a626523e99e2827ed917802e3097c380d
|
2020-03-06 |
check ar_table after `#hash` call |
c3584dfacce4d0f2058d8403de6fdce4fd4d686b
|
2020-03-06 |
check ar_table first. |
dff69bb46204cf9d0d1abfe9d6e76a1768fb9734
|
2020-03-08 |
Cast properly for shift operand |
d9135743c0ae464f39330684b8c6d35917fd6b22
|
2020-03-10 |
add debug method RubyVM::mtbl2 (disabled) |
ec78b8b62a84fd57eb93d7b5de5b83ea517ad7c4
|
2020-03-10 |
show method entry with iseq details |
2943ff9d4441485a18773aa745bab7f47767dde2
|
2020-03-10 |
fix bug on method cache invalidation. |
d05455d08374b795b079f3ceaf034f2be1f11a08
|
2020-03-10 |
fix type cast |
21d8e6924844d592ff2d5a2e7309457eb92e66f6
|
2020-03-23 |
disable to show the maximum number of threads. |
ff98931daca1265e5bd33025d160c77e452c399e
|
2020-03-25 |
check flags passed to rb_nogvl() |
fd0222caedf1be56faa004656bbf145522abbe68
|
2020-04-08 |
should check pending interrupts correctly. |
443389effc37308ce1a3c3a840082a344fc6af56
|
2020-04-10 |
reduce duplicate include. |
d94960f22ec2de3a3855305cb51343806d2b46c7
|
2020-04-10 |
update dependencies |
8119bcbfc04772fe4012b5ed396a68f02e312316
|
2020-04-22 |
rb_method_entry() returns valid me. |
e89b87508160868bd431218872d0d5b7b15bc57b
|
2020-05-15 |
fix for multi-run test. |
67d259c5dccd31fe49d417fec169977712ffdf10
|
2020-05-19 |
Use __bultin_assume() from clang-7 |
cbd45af2a9bec871ee023e6be57c5f32b22280fe
|
2020-05-21 |
fix memory leak of ccs |
21991e6ca59274e41a472b5256bd3245f6596c90
|
2020-05-20 |
Use RUBY_DEBUG instead of NDEBUG |
4ac42874bc5b39b82199d9d86eea1c64efe4d73d
|
2020-05-20 |
Update include/ruby/assert.h |
c9fe4ebd29f71805648a048d2cc431c94039ceaa
|
2020-05-25 |
cause SEGV for the test. |
68e987c315815d9fbbc0c9967127be58c14655b5
|
2020-05-26 |
GH actions with RUBY_DEBUG (#3144) |
a809caa4b3f9fc5503c0e81cdb02c167d1ad1dee
|
2020-05-26 |
remove duplication. |
eb20d2f449d299b9281abd2426878deeb8ebcdad
|
2020-05-26 |
include debug option in slack notification |
6ba2d3e4c6958a214e13ac07c7bdb160b9c3f21f
|
2020-05-29 |
export debug utility functions |
03d7f3cdb2550449bcf1c0c1b5529b5197dfb418
|
2020-05-29 |
add indent for debug disasm output |
d300a734414ef6de7e8eb563b7cc4389c455ed08
|
2020-05-29 |
RUBY_ASSERT_NOASSUME |
3591703b31658f8e97eb0677e2261e6e7551307b
|
2020-06-01 |
send SEGV to show backtrace. |
7b9527ce74de11afc8e890db83f2a13a6ed5dc91
|
2020-06-01 |
add more 2 sec. |
56ca006784d8737463857776a807c6f656ca8455
|
2020-06-02 |
run lldb to investigate the stuck process. |
195075e8f5f2220a0a1f00f5cfd2ad98681e71d5
|
2020-06-09 |
disable GC on a test |
e2678781c739edb17f1744d35a9958146e880996
|
2020-06-12 |
prevent memory allocation for GC tests |
b06d7c5521bd55d82eef96efcc2c7df1c29a3e5d
|
2020-06-16 |
ISeq created with callback is special, translation cannot be applied |
8070cb56db18966b7186255d46eef869e7fdd9cb
|
2020-06-26 |
fix return event and opt_invokebuiltin_delegate_leave (#3256) |
8655c2e69041cc812d30c2e951a8ac9ea7a60c47
|
2020-07-03 |
RUBY_DEBUG_LOG: Logging debug information mechanism (#3279) |
a0f12a0258e4020bd657ee80b7d8f22bd33ea223
|
2020-07-03 |
Use ID instead of GENTRY for gvars. (#3278) |
74e1bca79d703f2658ac9cfa6d990e7e77c59757
|
2020-07-04 |
support all locals for cexpr!, cstmt! |
95f5fd9a55cf9d885ec01d50de6eddada4379839
|
2020-07-05 |
fix up Primitive.cinit! code |
c87ee8005b496e6c676076afabc962077e799c49
|
2020-07-15 |
rubygems is needed to run solo-file test |
fc220b129dff62c1aba7dcf9851519ed6e57f75d
|
2020-07-15 |
rubygems is needed to run solo-file test |
c25d249e63e74499a017330e4281d934911365d4
|
2020-07-15 |
RBasci::flags (VALUE) doesn't match int. |
dd6f5aba0e07c6e65cad026317d1a77dbb72f56e
|
2020-07-29 |
add debug output. |
ed22bf47cc551bb26f17fbaebadd06d1ff2b8948
|
2020-07-29 |
display stderr output even if core dump files |
f7cf600c8ba483d389ea400071aa2aea2e5a57e0
|
2020-08-01 |
fix mark bit operation. |
b4f58ea3008e3e86bdc931407c68c6e0497ef078
|
2020-08-01 |
support multiple filters by RUBY_DEBUG_LOG_FILTER |
a1246270c55051413ef5830684baff94e1139814
|
2020-08-01 |
remove accidentally introduced debug code |
bc00e6aa909631c995473bc2f3d62fbe60b16ffe
|
2020-08-17 |
Disable debugging test. |
a137874e67b0b3f815be3ba322ed8925860bc673
|
2020-08-31 |
add RUBY_DEBUG=ci envval for GH actions |
79df14c04b452411b9d17e26a398e491bca1a811
|
2020-03-09 |
Introduce Ractor mechanism for parallel execution |
b52513e2a1ede39eef094e9e2cfa8710ce26e1f1
|
2020-09-03 |
skip Ractor tests on Compiler tests |
3f922f3b77f343394475c4603d4b885126ce6437
|
2020-09-03 |
don't use toplevel return |
3b0bcaf2872e5ab6d2475e9cd6dd5c374d93ae0b
|
2020-09-03 |
check multi_ractor mode at main_p |
ea78960ee5cb78c6aaaaa7091b85066a011c51e9
|
2020-09-10 |
sync callable_method_entry() |
ccb944fcfe43aa9274b6d386d131a006e5a00b07
|
2020-09-14 |
add NEW entries about Ractor and new method cache. |
f7ccb8dd88c52b2294742c3abb87098ee4076799
|
2020-09-14 |
restart Ractor.select on intterupt |
74ddac1c822697b442646f433d60e2c099db3c3b
|
2020-09-11 |
relax dependency |
e81d7189a09155344b3135903300dce450232402
|
2020-09-11 |
sync fstring pool |
889bbbaf527372c5cc229b56dca9a2322e325f26
|
2020-09-16 |
skip on RUBY_ISEQ_DUMP_DEBUG=to_binary |
dd5db6f5fed359efc85cff25d326b5fc3de66614
|
2020-09-16 |
sync fstring_table for deletion |
b189dc6926fffe1cdb04422c5116ad3ca1425cb7
|
2020-09-16 |
rb_obj_info() shows more info for T_SYMBOL |
b416a7640278fbcb82d0ac37c0b71cf6e0dc4a36
|
2020-09-16 |
add debug log on enabling multi-ractor mode |
06e9b94d40a3c9f086fbdfe932b6614e18d10846
|
2020-09-16 |
show object info to debug purpose. |
3b159374a2daa101b419ebf6f4a7fe01bbe9dc55
|
2020-09-16 |
sync ruby_global_symbols |
4a588e70b88028b3121babc43a26de0d13bdbb03
|
2020-09-24 |
sync rb_gc_register_mark_object() |
29ed16ff4ad5a0d3057d2f24c44ff488584df251
|
2020-09-24 |
add GC_GUARD |
7ad3aff48dc8309542704b2212b3c3d1df8155d0
|
2020-09-24 |
Ractor#close_outgoping cancel Ractor.yield |
fde136152eacca454bfb978347abfa67bd73ac4d
|
2020-09-25 |
should not check taint flag on rubyspec. |
52865263467b48c0f5af6d9548972dd1f9e5bee1
|
2020-09-24 |
frozen T_OBJECT can be shareable. |
d247dedade684d8ba04da4af891791e5ab5878ef
|
2020-09-25 |
Ractor.yield should raise if out-port is closed |
6081ba4a871f857eabdcb1e51b68f11bb10c49af
|
2020-09-25 |
refactoring a test code. |
96739c422206d55acab4aee917d9d965c27b6fff
|
2020-09-25 |
Frozen Struct can be shareable. |
25cfb0c04007137e2dc6d82c2dadea067498f39a
|
2020-09-25 |
Range is based on Struct. |
caaa36b4e6d0d59f0aa21049c063b140aa5aae4f
|
2020-09-25 |
prohibi method call by defined_method in other racotrs |
0096d2b895395df5ab8696d3b6d444dc1b7730b6
|
2020-09-25 |
freeze all Range objects. |
5e91b4bdb3e2889cc485b77c4ef29c4f5c364895
|
2020-09-27 |
fix typo [ci skip] |
bc23216e5a4204b8e626704c7277e9edc1708189
|
2020-09-30 |
stop Ractor test in test-all |
8d76b729a180c47d8edf4392d84a02ec00aeb37b
|
2020-09-25 |
Put same frozen Range literal if possible |
0406898a3f1d157db0ccf039fe9844c221c65f95
|
2020-10-03 |
add NULL check. |
a770b9c87e5f0c5bdffaad09bf73fb45760896e8
|
2020-10-09 |
remove debug code |
bf3b2a43741e4f72be21bc6acf24d37e7fcff61c
|
2020-10-07 |
relax Fiber#transfer's restriction |
fc8b68a52ad45a1fd5affa6d08ceea2ef729a25c
|
2020-10-13 |
remove useless semicolons |
c3ba3fa8d01aa3970dc1f4e3dc0090ae171e9e35
|
2020-10-13 |
support exception when lock_rec > 0 |
11c2f0f36ccc50899a8dd69a260e85451f68b5ba
|
2020-10-13 |
sync enc_table and rb_encoding_list |
102c2ba65f1fa2a6cdbaaa7d2b466aabfc50e5d7
|
2020-10-13 |
freeze Encoding objects |
ae693fff748c68ca2500bbc2c0a8802d50f269dc
|
2020-10-14 |
fix releasing timing. |
fad97f1f96caf11005a5858a29d32c66203913e8
|
2020-10-14 |
sync generic_ivtbl |
278450de803c59137fff69c4db03cd40c5b5d08a
|
2020-10-14 |
ruby_vm_global_method_state is no longer needed. |
2e8b5968e13139510bd169cc33fdaa8a4b0676fc
|
2020-10-14 |
remove uneffective test |
91ec5f9e39cf54dd7a157addb778293853571f13
|
2020-10-14 |
remove rb_obj_iv_index_tbl |
f6661f50854e0cdccb03ee516a21ce62adf6c802
|
2020-10-16 |
sync RClass::ext::iv_index_tbl |
de17e2dea137bc5ba9f00e3acec32792d0dbb2eb
|
2020-10-17 |
reduce lock for encoding |
319afed20fba8f9b44611d16e4930260f7b56b86
|
2020-10-19 |
Use language TLS specifier if it is possible. |
a76a30724dfdfd26938960d2f756b4d97f8d855e
|
2020-10-19 |
Revert "reduce lock for encoding" |
9ced5fae6df9e70506ddad822e15745884e365fd
|
2020-10-20 |
add a NEWS for Fiber#transfer |
99310e3eb56fbc85bb45119285812eb959448d0c
|
2020-10-20 |
Some global variables can be accessed from ractors |
2bdbdc1580f52dc8d70a71b824238e0f20342dca
|
2020-10-20 |
add Ractor.shareable?(obj) |
ade411465dc054af5ff025531649b69134d74b56
|
2020-10-20 |
ObjectSpace.each_object with Ractors |
67c25a34a7c70e3cec868472517b699b1e881857
|
2020-10-20 |
skip `echo foo` on Solaris |
512752ba19c960daf1d866f96fb33f3c0b2d7a75
|
2020-10-20 |
fix condition |
2f50936cb913b7458cbaa03dc4652f1127a7631a
|
2020-10-20 |
Ractor.make_shareable(obj) |
b59077eecf912a16efefc0256f6e94a000ce3888
|
2020-10-21 |
Ractor-safe rb_objspace_reachable_objects_from |
441403173595ddf80d11c99ebe70d4c7ccd49188
|
2020-10-21 |
extend timeout of rbs test on rbs tests |
631eaa85109e4d6fa31eaeed393858e1e63300a4
|
2020-10-21 |
check main-ractor or not first |
af2471365fedaf89759eb00f87164fbaa0afaa39
|
2020-10-21 |
refactoring rb_ractor_confirm_belonging() |
89f6644de71b7dfbdbdba216a8667b9c3348203b
|
2020-10-21 |
refactoring rb_obj_traverse() |
3a97d361576d1cc198047d502c5165aa37b7f86e
|
2020-10-21 |
refactoring frozen_shareable_p |
0c0d0752f1fefd9b085f191b62946a811763ef1b
|
2020-10-21 |
allow to access ivars of frozen shareable objects |
603fb940c0d334f399d77b56d7e62ee85edb91e0
|
2020-10-21 |
refactoring obj_traverse_i |
1c6ebe14fbdb2bc23878133cbf7a99ea856e3d89
|
2020-10-20 |
freeze Process::Status |
7ad56fd87b35abf4933e0146761df91e9ec9890a
|
2020-10-20 |
freeze dynamic regexp literals |
07c03bc30984a496558d9e830bc4fb2f8cfb1854
|
2020-10-23 |
check isolated Proc more strictly |
5d97bdc2dcb835c877010daa033cc2b1dfeb86d6
|
2020-10-29 |
Ractor.make_shareable(a_proc) |
08ddc335ea34829df756c164ceb13c56f0377d37
|
2020-10-30 |
sync vm->waiting_fds correctly. |
89c8ca32d0a8542c9360f45734c799d81c4738ad
|
2020-10-30 |
add a test of define_method with shareable Proc. |
fd089276999393a6f6bb2a0b614ac76ca6151ab2
|
2020-10-30 |
Ractor's "will" doesn't need copying. |
0e33028d69a25c512df1a44f930652c9a5c5b153
|
2020-11-01 |
use one-line pattern matching for warning tests |
db7a3b63bae810a03b19b5577ded1403bb789185
|
2020-11-01 |
suppport Ractor.send(move: true) for more deta |
5fefb532493bc0e80db78322d5fe0eb49b940e31
|
2020-11-01 |
Copy for Ractor.send() without marshal. |
7718e9588b4d7d83c8f9a89dce10b06b9f97bddb
|
2020-11-05 |
a part of T_DATA object can Ractor#send |
b557c5768c7642d232a6a0268d6876651d40204b
|
2020-11-10 |
refactoring. |
1e8abe5d03ae386af82e2c95ef05170cd9791889
|
2020-11-11 |
introduce USE_VM_CLOCK for windows. |
db31ace934e8b900e90853bd875f23195837b398
|
2020-11-10 |
Threads in a ractor will be killed with the ractor |
deed21bb08170431891b65fda26f4a3557c9ffd4
|
2020-11-10 |
ignore yield_atexit if outgoing port is closed |
fa3670e6e48a8553ad1f37bbfbd112911da497d1
|
2020-11-11 |
remove Ractor#close |
084e7e31b257f6ac859769553b4c1c6ca2930152
|
2020-11-16 |
remain enabled and line specified trace points |
5e3259ea7490a2542d78c433eb8c9d44c7819e61
|
2020-11-17 |
fix public interface |
a79fe07db6c2de7a477613f8cd5c9c51322367bf
|
2020-11-25 |
show the error message before Ractor.yield |
d43d4acf2638ed50ab1542769c5d032c1aa8fb31
|
2020-11-25 |
fix error message |
7aaf6676c416e773b0b3053de2e250a73c2b2e77
|
2020-11-25 |
should stop other ractors on transient_heap_evacuate |
2db2fb9f6c742d5bd0019ccd11c7a375e1b12c0b
|
2020-11-25 |
per-ractor Random::DEFAULT |
5496415d3165e57e3ade16238a4cc9ec2c3a81f6
|
2020-11-27 |
mark default_rand |
77936ad679d63a6d0e7b585db4c31db5507f5586
|
2020-11-29 |
support SIGSEGV/BUS while read_barrier_handler() |
e79f1941b29738d95b42f8cb5bdb159e7138cf49
|
2020-11-30 |
tune parallel test |
67693d8d806e67d6e50b303dd0be6ec06b81c853
|
2020-11-27 |
ractor local storage C-API |
d2cfb5228a89678a712efd381e049391800373e1
|
2020-12-01 |
show with sharing info |
8247b8eddeb2a504a5c9776d1f77d413c8146897
|
2020-12-01 |
should not use rb_ary_modify() |
182fb73c40351f917bf44626c44c1adb6cb1aa5a
|
2020-11-30 |
rb_ext_ractor_safe() to declare ractor-safe ext |
764de7566ffa3fe828abf13ec93d76515ba27dd1
|
2020-12-01 |
should not use rb_str_modify(), too |
1f71c7dc81628bfd141bb91ee10bd8ca44ccaf07
|
2020-12-02 |
add GC guard |
82bbce826f7f170270856bec8ef852667028d143
|
2020-12-04 |
fix index |
e8cee4915b280dab57ca4f916f36bea4eb7ebdf1
|
2020-12-04 |
fix initialize order |
b67b24d0f5e78481e6a306881b6858f0dec996ba
|
2020-12-01 |
ruby_single_main_ractor for single ractor mode |
307732ccee7f9f28f8422bab2f839da021d8cdec
|
2020-12-04 |
cancel theap on multi-ractors |
23f9447429a1bbb262aa19afd9a2a1ad0eba8ca6
|
2020-12-04 |
show ractor info on non-single ractor mode |
554a7180a0aad85bee5cb8ed41d99d16dab304e7
|
2020-12-01 |
RB_VM_LOCK_ENTER_CR_LEV |
1d0bf3d8dd8de40d498a7c2784a84aa566d290b9
|
2020-12-04 |
log for the beggining of vm_lock_enter |
91d99025e4776885ceea809123a129cb31cd1db6
|
2020-12-03 |
per-ractor object allocation |
59ddb88da6bf483eeec7b85b8a85cf3719edf440
|
2020-12-06 |
RB_EC_NEWOBJ_OF |
344ec26a99e09c2d2f756fa6384e75ffa48f415f
|
2020-12-06 |
tuning trial: newobj with current ec |
bef3eb544025cc4bd4c9c7b87a8ffe4966db6faa
|
2020-12-06 |
fix decl of ruby_single_main_ractor |
8dd03e5cf0d583ffb836cf27be5645a7d88ac736
|
2020-12-07 |
skip assertion on multi-ractor |
0ebf6bd0a26b637f019d480ecd7f00a73c416b58
|
2020-12-07 |
RB_VM_LOCK_ENTER_NO_BARRIER |
1ba05f5b2d7b1701242023b5ac156b169f1ded90
|
2020-12-07 |
need more lock in finalize_list() |
c2fa024e0220aca6e2437e56df2abf1a2368cbdf
|
2020-12-07 |
fix Thread's interrupt and Ractor#take issue |
ee194af2aa170c0cb1bfd5fed4e84259a8150ece
|
2020-12-07 |
re-layout rb_ractor_t |
45b29754cfba8435bc4980a87cd0d32c648f8a2e
|
2020-12-09 |
need the lock for debug checking. |
eafe000af3d363f6cb65be99edcfccedf35d801c
|
2020-12-10 |
lazy sweep tries to collect 2048 slots |
554c0949777cd495e5a1296bd6719fcf508a70d0
|
2020-12-10 |
set min/maximum free slots relative to ractor cnt |
da3bca513f437b05b3953c3712ff48621fc5e008
|
2020-12-10 |
cache free pages per ractor |
72f1c43584df714a011864ca9fafc6e15ace392c
|
2020-12-10 |
ObjectSpace._id2ref should not support unshareable |
974e89ae0743e591f0034de6c8dfc41a81d6429d
|
2020-12-11 |
revert da3bca513f437b05b3953c3712ff48621fc5e008 |
ad6573163f4a7b7eedb904f2f6f730c3cd2669e3
|
2020-12-11 |
add RUNOPT and RUNOPT0 for dev rules. |
b53ccb9c69abd24e3bdad66cbe4c7e7480eaef16
|
2020-12-11 |
show deprecation warning correctly for lambda(&b) |
d741c77b5fd976300815c1ea987e76e92b71122f
|
2020-12-11 |
fix ivar with shareable objects issue |
124321e0c7ab8dac1ffce78c653cc677f878d5b0
|
2020-12-11 |
fix lambda's warning and tests |
70a311fdeb66ce80b562ccc4459c409cea64b74c
|
2020-12-11 |
trap on non-main ractor |
fa63052be19b26d39b22689ad9969aa83909809e
|
2020-12-12 |
create ccs with 0 capa |
967040ba59799e6b7891168ffbf37cc646988d84
|
2020-12-12 |
Introduce negative method cache |
a8aa169b8f1f89660037c874e8fc2feaf596a43a
|
2020-12-14 |
add cc_invalidate_negative debug counter |
0362b4c689e319e233691ee052cd703bf8d2baa1
|
2020-12-14 |
add tests for method cache. |
53edb27baccaffe919c2885a9c86312cc51ea9fb
|
2020-12-14 |
use method cache on Object#respond_to? |
da3be76cb017c188d1a99d8aa14d13c15d93f9d1
|
2020-12-14 |
add debug counters to survey the IMC miss |
c37ba2c5478c8fa81f3cb26d7ddb9b79d681147d
|
2020-12-14 |
add ccs_not_found debug counter |
7060d6b721092d56f1cbc084940db960e01671fd
|
2020-12-14 |
fix condition and add another debug counter |
aa6287cd26582e64c19e37dea3fd90b380b85d5b
|
2020-12-14 |
fix inline method cache sync bug |
72a73691bd069c20f07a42bbd2740ada319ee001
|
2020-12-15 |
add several debug counters |
dff67c809f786c94933583a450dbd9398fa07039
|
2020-12-16 |
fix duplicated name |
171f0431e766ba5b1a326386fff34a30f6cbc4c5
|
2020-12-16 |
fix typo |
0b678cc9e5a5149e40765562142ed1dc05d09b53
|
2020-12-16 |
add vm_sync debug counters |
5499651ee75538a4d8a3bb4a7442f5f59f36acd8
|
2020-12-16 |
tuning ivar set |
1e11c12a066036e85177104a9f8f5469063858a7
|
2020-12-16 |
remove unused function |
98dca855736c9fb8d4edef8b33a5df1cfe67ebb7
|
2020-12-16 |
tuning vm_setivar_slowpath() more. |
0a521618723e5e602c1288b4185b869e94332172
|
2020-12-16 |
fix Ractor#receive by other ractors |
a9a7f4d8b8ec30abc7a47ce700edc7209ae12279
|
2020-12-08 |
Ractor#receive_if to receive only matched messages |
b29c0fadeca7bd7d00d9fe17345fe88bf968312f
|
2020-12-16 |
add HAVE_RB_EXT_RACTOR_SAFE macro |
24f018972b958d6287c71a4682ea1dcc8d1fa16e
|
2020-12-16 |
fix timing bug |
c58142134cccdd31811f12aabf4f9dd3ce6a17f7
|
2020-12-16 |
make RB_DEBUG_COUNTER_INC()_thread-safe |
2a3324fcd2f9681e167b2619563a5c26e1a362fe
|
2020-12-16 |
No sync on ASCII/US_ASCCII/UTF-8 |
93ba3ac03681a2a65ca28b4c5aaba72da9e16f97
|
2020-12-16 |
RGENGC_PROFILE=0 |
92137718170118030a1f56303764d08201bf5c33
|
2020-12-17 |
encourage inlining for vm_sendish() |
c42948d78463d7e38f04070236985dcda895efd5
|
2020-12-17 |
add debug counters for gc start events |
99b91453809be68c604f94416030addfff3d6142
|
2020-12-16 |
relax synchronization on WB |
7f11c8086a4b5924737223322e24be23e9ff34c5
|
2020-12-17 |
reduce barrier counts for GC events |
da3438a50454706cce2e5b06bdad498b42977f8f
|
2020-12-17 |
sync obj_to_id_tbl |
6538c89f1c9d1af95c0fb3e58ac0e807a5fe47f4
|
2020-12-17 |
gc_verify_internal_consistency() needs barrier |
29e42b8bfdfc7a2d879a4ddb1db3d4453d66143a
|
2020-12-17 |
add explicit check |
51c2725dc646030283d01ce23a32c06f0f1c8bf6
|
2020-12-18 |
use eval to create different Regexp objects |
a07f2498031d5f4c53ddc03d61a8a41a6b77baca
|
2020-12-18 |
socket is ractor-safe. |
b44f7151c71011460877bdba549453aaeada88fe
|
2020-12-18 |
zlib is ractor-safe |
cfa124ef05e1b899c1953888c0fb3076388a0d8e
|
2020-12-18 |
acquire VM lock on gc_verify_internal_consistency() |
61236770e6cc41f1364dc04249d845def03d9f37
|
2020-12-18 |
need to sync gc_finalize_deferred |
74ab2c3b463da4d98803fe694acad831938a97e5
|
2020-12-18 |
finalizing should be checked before VM lock |
b5588edc0a538de840c79e0bbc9d271ba0c5a711
|
2020-12-18 |
openssl is ractor-safe |
e76b56f58e44cb54497d93526d649950f5bdd1c0
|
2020-12-18 |
support Ruby 2.x for openssl |
04d62e6f6202684c57f2fcf71bbfcb891cd4ddd9
|
2020-12-18 |
fix method cache debug tool |
cee02d754d76563635c1db90d2ab6c01f8492470
|
2020-12-18 |
fix refinements/prepend bug |
80cb9165fa34185b601970da407a295a78ec9eff
|
2020-12-18 |
add "copy: true" option for Ractor.make_shareable |
76e88480371469400346fca609efe67096813915
|
2020-12-18 |
unfreeze Ractor::MovedObject |
c1461c927b123468ba83713676dcda48e51c8ec1
|
2020-12-19 |
cgi/escape is ractor-safe |
846c4b03b8e9ff788f355f1bcd12e75715288e95
|
2020-12-19 |
ext/monitor is ractor-safe |
bcf4b236e424ce0e6055f4a9651b5369a830866a
|
2020-12-19 |
ext/racc/cparse is ractor-safe |
7f8108eeff8ffa66c93efb07d4bead1baf7153a8
|
2020-12-19 |
fix indent |
f70b894b8829c064e39646c9b5f6d304d13bb16d
|
2020-12-19 |
sync RCLASS_CONST_TBL() |
730f314171e67d981887c061d5dabf927ff5efd5
|
2020-12-20 |
fix Ractor.make_shareable() with Class/Module |
7600f69a8e7955fc2ba3ef83d0c9fa019114216e
|
2020-12-20 |
rename to rb_ractor_make_shareable_copy() |
6be61ab264c98c96e26b5d3398cf80b49197ba29
|
2020-12-20 |
should use owned_p instead of locked_p |
dca6752fecc6733575145185764d7b6a218cee96
|
2020-12-21 |
Introduce Ractor::IsolationError |
91e2f08a6a296acb7debb184ffe1229c5c25bb0c
|
2020-12-21 |
export rb_eRactorIsolationError for MJIT |
a2950369bd8a5866092f6badf59b0811653a6092
|
2020-12-18 |
TracePoint.new(&block) should be ractor-local |
02d9524cdaca1754718bf1d591408d377e6b383a
|
2020-12-19 |
separate rb_ractor_pub from rb_ractor_t |
35471a948739ca13b85fe900871e081d553f68e6
|
2020-12-21 |
add Ractor#[]/#[]= for ractor local storage |
d0e4ccbefcdd6032d0ae70bc54c9a4fb55d92576
|
2020-12-21 |
add Ractor.main |
520dcbd6009b07458d67309ae33a602d77062975
|
2020-12-21 |
reset cache before iterating |
c34c6a89cb7524050dc6f174da53a8159a7bbd64
|
2020-12-21 |
fix ractor's doc. [ci skip] |
2e1cdf36ba950fef3f7d6fc215835ce3027699f4
|
2020-12-22 |
add a NEWS entry about ractor C API |
7204b81bcb13f84ca3cc34384d205565fd5ad381
|
2020-12-22 |
fix to use rb_ractor_id() |
cae8bbfe6271a15cf212a83a9c3ac3fedcdc7718
|
2020-12-22 |
pp is ractor-ready. |
7e44ade5658bc6ae16e9838c64ff9e90d4fd805e
|
2020-12-23 |
ruby_single_main_ractor should be clear before warn |
0dd4896175f95c4c2a26d91a97b9fcb9a74cc0c6
|
2020-12-23 |
need to clear blocking cnt at fork (child process) |
e052d0716325bcb499c57b1de0c6e3eb9effb299
|
2020-12-23 |
Revert "need to clear blocking cnt at fork (child process)" |
b32ed8aa41795e3b153b423ae14d2699060d73db
|
2020-12-23 |
remove method__cache__clear |
7fcb6b3dbe7517fe5426fdb6871cd4940a71b7e8
|
2020-12-23 |
fix ractor-locking around rb_ractor_thread_list() |
7340e7f82780f529d80490045f5ea3e2559d563c
|
2020-12-23 |
introduce rb_ractor_atfork() |
9aca51e8a597fb4689c058b4e6b215ae87434e1b
|
2020-12-24 |
add about Ractor into extension.rdoc [ci skip] |
6f29716f9ffb710af7f344839ec67ef2b8a48ab2
|
2020-12-24 |
shareable_constant_value: experimental_copy |
e43b5aa52dcd1eaded1141ab85a30bc8c7c4a6e4
|
2020-12-24 |
remove redundant example. |
8664c3ddef548b53c4f5c5264cccd24ae08f174f
|
2020-12-24 |
update doc/ractor.md |
45f3d481064c64e3fa1a9c75d215d12d5c7d729e
|
2020-12-25 |
USE_RUBY_DEBUG_LOG is not defined !devel build |
888cf28a7e3a07fc0a41688777a40910654005ad
|
2020-12-25 |
define RGENGC_DEBUG_ENABLED() as 0 |
e7fc353f044f9280222ca41b029b1368d2bf2fe3
|
2021-01-04 |
enable constant cache on ractors |
e91160f7579a572e198067b9c0697c91be1876e7
|
2021-01-05 |
set RUBY_ON_BUG on runruby rule. |
442bd0e92cb8ca8e54f8121fc33adeb6b2b53e73
|
2021-01-06 |
show more info about imemo_callcache |
954d6c743219c11c84dd107d059001752f186a27
|
2021-01-06 |
remove invalidated cc |
d968829afa19c31e9461fd545cbd21250778ce6e
|
2021-01-06 |
expose some C-APIs for ractor |
55e52c19e74d5df90560ea1cc4f2a2b9f5d7a5c4
|
2021-01-07 |
simplify assertion |
abdc634f64a440afcdc7f23c9757d27aab4db8a9
|
2021-01-08 |
remove unused decl |
d4b7e967b6dc0c4b971cbb3b5444c7fbe93a3f86
|
2021-01-08 |
should use `assert_include` here. |
f4ce78d5c139a8825ee2d09f39aef03ef762dfc6
|
2021-01-13 |
delete negative cache from the table correctly |
a7d933e5021d1028d64a055b6dcf8631ea6a52c3
|
2021-01-18 |
fix conditon of vm_cc_invalidated_p() |
03d1850bfaa1c279fe5cc79f4bb2128f50c5b9e5
|
2021-01-21 |
use ractor_wakeup() |
d0d6227a0da5925acf946a09191f172daf53baf2
|
2021-01-21 |
alen should be actions number on ractor_select() |
fff1edf23ba28267bf57097c269f7fa87530e3fa
|
2021-01-21 |
fix Ractor.yield(obj, move: true) |
e586345b7753e942c2946905c5acdc666fb0d47e
|
2021-01-22 |
check is_incremental_marking() again |
1ecda213668644d656eb0d60654737482447dd92
|
2021-01-20 |
global call-cache cache table for rb_funcall* |
98e27016c93455d4e9e208d0666d85929cb62857
|
2021-01-29 |
refactoring rb_method_call_status() |
be1486568abac364c12e36d8dc49018ba8918c73
|
2021-02-02 |
add debug code for timer_posix |
6f727853cee41195b67ee5d793c1ac23fe1a6ae0
|
2021-02-02 |
only main thread can modify vm->ubf_async_safe |
583f364f7187337b284061b78a47b29875398e33
|
2021-02-03 |
use goto intead of recursion on vm_call0_body() |
b2674c1fd725b43adf51af7935c780359d70c2a4
|
2021-02-05 |
unblock thread is only for main ractor. |
813fe4c256f89babebb8ab53821ae5eb6bb138c6
|
2021-02-12 |
opt_equality_by_mid for rb_equal_opt |
969b824a0c7605e0e570631d967ad0de0c37d0bf
|
2021-02-18 |
sync GC rest if needed |
100e464bee46ae71ef048ed85a9bdd012935a3f7
|
2021-02-18 |
clear RVALUE on NEWOBJ event. |
07ab172ebef28bb82c2650694548d123802d6c22
|
2021-02-18 |
sync check_rvalue_consistency_force() |
7b9476fbfab738d1eb01b4b4c4af9a1680513019
|
2021-02-18 |
Ractor.allocate should not be allowed |
d260cbe2950392c41e263c82ab753e5faa12468c
|
2021-02-19 |
show more information about imemo_ment |
9c769575bfa2a5c9e7078eb2840bba640dc46077
|
2021-02-19 |
invalidate negative cache any time. |
1fac99afdae2671a9ca86bead5bde4d0e2eff1b4
|
2021-03-31 |
skip marking for uninitialized imemo_env. |
1ac68bba4ef9e51c383ad9bad21d41a5ec8c0869
|
2021-04-01 |
[ruby/irb] SIGINT should raise Interrupt after IRB session |
ecfa8dcdbaf60cbe878389439de9ac94bc82e034
|
2021-04-01 |
fix return from orphan Proc in lambda |
609de71f043e8ba34f22b9993e444e2e5bb05709
|
2021-04-22 |
fix raise in exception with jump |
c647205c3eb1f17409a859149bb7d2ea38b43bed
|
2021-04-26 |
disable shareable_constant_value for CI |
3df7c967bb5fca8767f384374710b1a1529ee37a
|
2021-05-12 |
suppress warnings on repeat tests. |
5a6af44e204ed03616c0b0f43a7aeeeb79f4d0ce
|
2021-05-12 |
skip test for debug. |
523a6998dd45eb910ccd3fe6a8d9d008f7a12cf2
|
2021-05-12 |
Use another class for the comparison. |
2420119f47a6c5d478c721b2f30565d5a074dd32
|
2021-05-13 |
skip rb_bug for inconsistent zombies count |
817764bd82513e2a0a672f5958f65854ea172c08
|
2021-05-18 |
simple rescue+while+break should not use `throw` |
fb4cf204a662a8cd9dafef6f31f2bd0db9129abe
|
2021-05-12 |
use me->def instead of me for opt_table |
fa0279d947c3962c3f8c32852278d3ebb964cb19
|
2021-07-28 |
should not share same `def` for specialized method |
228b3e43be5e01e204751be2035fee3576a7ab74
|
2021-08-05 |
check GC.enable'd status |
42b6dc84d3e0abb19432a1cf24f327b37b176fa8
|
2021-08-10 |
add some lines to delete unused TracePoint |
3d4207f9bb4f39dd06eb419cc0bf185c8f03375f
|
2021-09-10 |
Need `#` |
ae1da7e1f76cabc6c2d9b45a6c56b1607200147a
|
2021-09-30 |
remove lib/debug.rb |
bc96a45f12503956e323e6c2a47aa550ca1da3dc
|
2021-09-30 |
introduce debug.gem |
0553494ad7ccbc75ac954c2cb0e7ea50443bad0c
|
2021-10-05 |
debug.gem 1.2.3 |
f2ca65266f203da8a8c3afa734bb6e76a088c581
|
2021-10-05 |
debug.gem v1.2.4 |
07b87f79797c8716f0ee36f3c32879194717ccd6
|
2021-10-20 |
add NEWS entries about debug.gem |
c7550537f11dcf6450a9d3df3af3fa1f4fe05b15
|
2021-09-30 |
`RubyVM.keep_script_lines` |
7185c00fcc330db8951b684f548ba3d10983bb92
|
2021-09-30 |
freeze (make shareable) script_lines |
598382f686ef1a9687fbc814f8cf1c5ef5c97cfe
|
2021-10-22 |
debug.gem 1.3.1 |
6b9285e8d45e88c5b014b8428520ffa2401789ad
|
2021-10-22 |
'uri/https' is needed |
acb23454e57e1bbe828e7f3114430cab2d5db44c
|
2021-10-22 |
allow to access ivars of classes/modules |
a7776077be7b1754b4306f00694a8f4d42009159
|
2021-10-22 |
add vm_ivar_of_class_set |
df9fac5ccd905d57251ffa89f28959c1b2a294eb
|
2021-10-22 |
update doc/ractor.md about ivars |
199ba9c377be894d407d27fb1ab2defe119398d7
|
2021-10-22 |
update NEWS about last commits. |
7864efa105921eb3900c843126f2e0db02b9c6ae
|
2021-10-25 |
introduce check code for mysterious EBADF |
a1c4cab11d613d7df037a81a770ee44a23a2e9be
|
2021-10-25 |
check other IO#close calls |
5c2b6441660cdabf1efc745c25f2b1a41bb3b087
|
2021-10-26 |
fix random EBADF problem |
d1424f7f7e0903c4b9c676edda02ecddd4333fef
|
2021-10-26 |
Revert "check other IO#close calls" |
8a49c7e4812a3f6d027dac1a574f47f125886935
|
2021-10-26 |
Revert "introduce check code for mysterious EBADF" |
77544caaf46503b8e56d5b37703bfd1e9fb3cbc6
|
2021-10-28 |
add `make runirb` rule |
cbf2078a25c3efb12f45b643a636ff7bb4d402b6
|
2021-10-28 |
need to mark script_lines |
5680c38c75aeb5cbd219aafa8eb48c315f287d97
|
2021-11-08 |
Use valid `ec` for postponed job. |
b5531adf4160304ca62b7d128af458704c9beb4e
|
2021-11-11 |
quick fix for `test_initialize_HEAD` |
38c555a3150b6c22be650dc5c89ed5927c640e8c
|
2021-11-13 |
show encoding for each path |
1ab6f2b4a232d41199268c6ae019941459ad5e33
|
2021-11-15 |
`rb_vm_lvar_exposed()` is PUREFUNC |
b1b73936c15fd490159a9b30ab50b8d5dfea1264
|
2021-11-12 |
`Primitive.mandatory_only?` for fast path |
a24eeee5567a14841b37d9a3428e14e4f3c45c07
|
2021-11-12 |
Use `Primitive.mandatory_only?` for `Array#sample` |
dde010c97432de8ac2336eeeb4f6b99daf832b61
|
2021-11-15 |
add benchmark/array_sample.yml |
2a3d5d661ce2cadad50aa5d72b54e134da54f5f3
|
2021-11-12 |
Use `Primitive.mandatory_only?` for `Time.at` |
f943264565f3072a30616fa93ffa3da3790294b0
|
2021-11-15 |
add benchmark/time_at.yml |
2d1a7bed03540257b32fd87ce1c78d2f5ad3d075
|
2021-11-16 |
a variable is not needed. |
84aba250315d7fea728a6708e33ae8bf11f607b2
|
2021-11-16 |
assert `cc->call_ != NULL` |
b2255153cf2fe9d7b851c59cc09b358c0630e0a2
|
2021-11-16 |
`vm_empty_cc_for_super` |
8d7116552dace6d0a9a8f0bbe2fe0f02fcff6532
|
2021-11-16 |
assert `cc->cme_ != NULL` |
7ec1fc37f4c87c691555e76d51b6590761b3ec64
|
2021-11-16 |
add `VM_CALLCACHE_ON_STACK` |
b95d7d2099e0d9df68c08f23991ba35db6126bf5
|
2021-11-16 |
no need to check `cme == NULL` |
349a1797828a1fa6acc3c0d30a2a24e884d02907
|
2021-08-19 |
support `GC.stat(:time)` take 2 |
c347038d4ea246d686fcd4ddc8761a91e4dd25ab
|
2021-11-10 |
GC measurement feature |
6c64013978e77637995a0348f7e232068b9f61b4
|
2021-11-11 |
use ULL2NUM directly. |
be71c95b88019a1ca7a030a757ce343b743d8aff
|
2021-11-17 |
`rb_method_optimized_t` for further extension |
82ea2870188d66aa75a99f03b4e7fdd1750aa196
|
2021-11-18 |
optimize `Struct` getter/setter |
ca21eed6ebbceca68daa7b2a88e69a58b8d56806
|
2021-11-25 |
fix assertion on `gc_cc_cme()` |
e984c2a9ea29fa17c5f55d324d181f8eaa677d69
|
2021-11-25 |
fix to choose correct callcache |
7f7c3a0a75c48b45ce186c9e2b229ab3edf1473d
|
2021-11-26 |
initialize allocated memory by VWA for assertions |
660687e6fa60ff4d84805b0ef89fb19ad1b0b8f6
|
2021-12-06 |
add NEWS about the improvement of `Struct` |
87664b5cc8f945ed0c5611b27179913585ec2326
|
2021-12-06 |
add a NEWS entry about GC.total_time |
4c39fae4de375107f24095f4b4412efcefcf2a08
|
2021-12-06 |
add a NEWS entry for `mandatory_only?` |
9c269316357a1a5b6ef27794f3c9412b2e33a6cd
|
2021-12-08 |
[ruby/ostruct] `Proc`'s self should be shareable. |
cce331272b07636d536c8227288ab3fbcf24e2aa
|
2021-12-08 |
`Ractor.make_shareable` checks proc's sefl |
9873af0b1a343dff6d1a8af4c813aa2c9ecc47d5
|
2021-12-08 |
`TracePoint.allow_reentry` |
4d0cb1a54ba5e8e053e6acc860fd1cb9ca5e1b19
|
2021-12-12 |
add `method_def_aritry()` |
6659253cc6c807641e23d469b425ddcf18de7af4
|
2021-12-12 |
Struct setter's parameters == `[:req, :_]` |
fdfb43b2b129afb78c352c95776118eeceb245a2
|
2021-12-12 |
fix Struct's setter arity |
5164c2b36f66e7b1d2e0f908663ee3f3a3830605
|
2021-12-12 |
Pass UnboundMethod to 2nd arg of define_method |
0ee127e5bb1a5c8f7ac74b9912bc758446afbd8a
|
2021-12-13 |
add a NEWS entry for `TracePoint.allow_reenter` |
1578421962024f7fafc94418da9e1ecab31c49b2
|
2021-12-14 |
reduce `rb_clear_attr_ccs()` call |
2e6e2fd9da18b74aa9555d09a871b24895e42773
|
2021-12-12 |
fix local TP memory leak |
397a509b6d0d1470df8c290d7c4adef78f1532ee
|
2021-12-14 |
prohibit load by `autoload` on non-main Ractor |
0eafba36103f5526c489fc5dd3d958d97e11a2c2
|
2021-12-14 |
use `RB_VM_LOCK_ENTER()` |
04aab3c2592a2234921fb715c1ff9f36a58828ca
|
2021-12-14 |
fix test |
13c37835d5dbda3493f54baf13f75ed5b59fc507
|
2021-12-14 |
ucrt can raise `Errno::EINVAL` |
37bd795cf8bc9681fccaf9b2d42292b14610a310
|
2021-12-17 |
`ENV` ivars should not be accessible from ractors |
c8f2766ae2312eedbcf947b189a8629696bb8bb3
|
2021-12-17 |
`RUBY_DEFAULT_FREE` is not needed. |
ce6fc20f973e307071533bfd9699da88986c67a3
|
2021-12-17 |
data type should be `static` |
dbb5abc45b54e8f0ba2edd509fe2ae4be57451a5
|
2021-12-17 |
debug.gem 1.4.0 |
45de4025f522f5148f0fc730aa0a1695a87daca2
|
2021-12-18 |
skip -v spec on MJIT |
89a02d8932774f740013fe2a829faa9c40a1cfd1
|
2021-12-18 |
add `rb_iseq_type()` to return iseq type in Symbol |
dd29ba076439375c6e235218ce5a0a3f01d41b29
|
2021-12-18 |
`iseq_type_sym()` -> `iseq_type_id()` |
6bef1ac62850be6d83a069ac3d3be0b8e2f3afcf
|
2021-12-18 |
`rb_iseq_update_references()` cares `script_lines` |
df48db987da2bd623d29d06419f2fbc8b7ecb38a
|
2021-12-20 |
`mandatory_only_cme` should not be in `def` |
ad450c9fe51c51626dd07f6e766f47d839cae3ba
|
2021-12-21 |
make `overloaded_cme_table` truly weak key map |
779039a4e00f6d1bd2ccae405fe165ca9026fdc1
|
2021-12-21 |
add ref to the ticket |
ca032d5eeaf81692f89f35c55450dcb97df59e16
|
2021-12-23 |
undef `rb_vm_lookup_overloaded_cme()` |
2da53b14686d07369486bf435c5de932bf26a9fd
|
2021-12-23 |
`finalize_deferred` doesn't need VM lock |
6050e3e2a6ce2269c56fa74bc5b75a94d064b61f
|
2021-12-24 |
@@cv is not accessible from non-main ractors |
38b3adc4cb8c40bdbcd0ac8989e4ecb6c03080e9
|
2021-12-24 |
add a NEWS entry about cvar inline cache |
c9af8a32a05b26d45c5c8967902b3a724f3c1be6
|
2021-12-28 |
`USE_RUBY_DEBUG_LOG` doesn't check `RUBY_DEVEL` |
7e21b77dc6bfefaf331a0dbf89782303b8cda05d
|
2021-02-18 |
T#dup (T < Proc) should return T's object |
9de380860d8dc78963cabb5247c6e4a93a2fc5a9
|
2022-01-13 |
add a NEWS entry of `Proc#dup`. |
53a4e101465a4d2ae38ea3bfd3cb7dd3c9f12f61
|
2022-01-14 |
clear `@result` after `setup_message` |
308fe1eb858fd8029f67510a18bedfe0e850a87f
|
2022-01-19 |
Do not create core file if it is intentional abort |
374904b25f0cd399b800d9b822659fbff382b23c
|
2022-01-19 |
remain `RUBY_ON_BUG` for child processes. |
5e3a32021849718ae483eaaa9fbf155f91828039
|
2022-01-21 |
respect `--quiet` option for btest |
a51e1cd682daeb76f201e62eaedcf6d51a18cffe
|
2022-01-25 |
enable `RUBY_ON_BUG` on release build |
cac6fe90236c8541059edc74080d50c49be7ea87
|
2022-01-25 |
add `--stderr-on-failure` option to test-all |
e953d6865724d8b7e79aa30c445d986f28f5e1c9
|
2022-01-25 |
refactoring btest output |
cc8064ba2e046f384f446889c8525bf976733918
|
2022-01-26 |
Do not need to print to stderr |
e75bd8df51648a35442649fd3e4b9ac4e223752a
|
2022-01-30 |
pend some tests while using to_binary |
603ab709615dd35fa8ebe53087c27631f5b07812
|
2022-02-04 |
support concurrent btest execution |
8e0899919b1d543399f124092c16780467155f39
|
2022-02-14 |
extend timeout for mjit |
76e594d5157bd763636adb096d4aa06688ac03ac
|
2022-02-14 |
fix GC event synchronization |
1ae630db2682831cc0f2d381ff46e7b8cd3c2174
|
2022-02-16 |
`wmap#each` should check liveness of keys |
00c7a0d491504b0b2b1b8723d4b70e5c24ec649c
|
2022-02-16 |
fix parallel test timeout retrying |
fdf0f8d81487560f5837dc7e3888a96f7c2b4ec9
|
2022-02-17 |
btest-ruby OPTS=-v should disable quiet |
fc6e4ce62bfa95b6a0d4d4898e1128c1fce4db8a
|
2022-03-16 |
Allow `.0` version mismatch to pass the tests |
b3a05827c716bbb6a54cb6924f5840324806c42c
|
2022-04-01 |
debug.gem v1.5.0 |
798e21637f28d308bf0d52081fedd1a49cd1f851
|
2022-04-08 |
sync `vm->constant_cache` |
c77a31df5ed17231b2ddd213899716b900181ad2
|
2022-04-08 |
call `const_added` after `autoload` |
9b8ce6d34c49a869ee3fcbd87923a6414396738f
|
2022-04-14 |
fix to use `node.gvl` instead of `node.ubf` |
1c4fc0241d125879e1e5169f267f26637772f3a7
|
2022-04-16 |
rename thread internal naming |
702dc116c4fd8906cc65c4ac2a991a2e0df54a63
|
2022-04-22 |
refactoring thread inits in vm.c |
03d21a4fb099da7c52e6591e17704c297871b7db
|
2022-04-22 |
introduce struct `rb_native_thread` |
eab99b1d4b61fb85d994534826922f96cd14ae58
|
2022-05-20 |
`rb_thread_t::serial` for debug |
37ea07d59be53bd447d2d87d9cd56f94d41a40dd
|
2022-05-20 |
setup vm->main_ractor before `Init_native_thread()` |
a97fbc108bd23e669a27356be83c1a515d469af0
|
2022-05-20 |
extend `RUBY_DEBUG_LOG_FILTER` to reject words |
37ccf91bfb73a225cc60413645788ea55e5e852a
|
2022-05-23 |
cleanup by `RUBY_DEBUG_LOG2` and `VM_ASSERT` |
741ac503309f32b5c39073f46a205c99a31d4b0e
|
2022-05-23 |
`native_tls_get()`' should not check results |
d9984f39d32f4cd692a35f4d803f7754ea262805
|
2022-05-23 |
remove `NON_SCALAR_THREAD_ID` support |
f3235ac09582c764086da28245a86753a100ba58
|
2022-05-23 |
add `rb_th_serial()` |
4111028a5cc229c314c2b93271d205206b207088
|
2022-05-23 |
use `RUBY_DEBUG_LOG` instead of `thread_debug` |
2d1e7dfc36d048003ec2cb09b30f850032fd9c42
|
2022-05-23 |
remove `-DTHREAD_DEBUG` rule |
62e08d4b844a3f4f7a6dadc6083cd0585485931b
|
2022-05-24 |
remove `DEBUG_OUT()` macro |
08cee2bf804d22dc51002b0df023aea7ec044d8d
|
2022-05-24 |
altstack is native thread's attr |
5a4f997b2e8e819ed40731cd769826112072a9d4
|
2022-06-08 |
func: and file: prefix for `RUBY_DEBUG_LOG_FILTER` |
1e528e8cbef3231e1ffd908c9e1fb90b6b14173c
|
2022-06-10 |
small fix on `setup_debug_log()` |
a5420b6fc13ede3ed96cd3196265e7919f1146d1
|
2022-06-30 |
use latest debug.gem |
5df20a5da57bfce736a6fd7de26c1110e3154b44
|
2022-06-30 |
stop CI failures. |
156da55c164e5463edf15bae05021b7d1477e4de
|
2022-07-13 |
debug.gem 1.6.1 |
5bbba76489628f4509495ebf4ba0a7aad4c0b560
|
2022-07-29 |
respect current frame of `rb_eval_string` |
fcf861a138c39dbbf83091e5dd018cbf847a327b
|
2022-09-12 |
Try latest debug.gem |
a28e7871e54d7a87afbfd686291c500d71edb7cb
|
2022-09-16 |
Update bundled_gems |
e35c528d721d209ed8531b10b46c2ac725ea7bf5
|
2022-10-17 |
push dummy frame for loading process |
67766cd55c3a05f9888c8e2b9e34051a44b3e3fc
|
2022-11-25 |
add debug context APIs for debuggers (frame depth) |
6f3c8fdab46872ccece3bf512adac95b64e29111
|
2022-12-02 |
debug.gem v1.7.0 |
59e389af2893c0fcf8b2cfa008c9a16825bf56ff
|
2022-12-02 |
UnboundMethod only refer defined_class |
87a1fb9ac306769d74edf7d99aa7860c1e8e07e5
|
2022-12-06 |
NEWS: `UnboundMethod#==` |
ae19ac5b5ba1e613a788addeb6d4d67fa65f6518
|
2022-12-15 |
fixed encoding table |
dbf77d420d49e541c59f4c14b8e56d3e7af689aa
|
2022-12-16 |
surpress warning |
7d700a9f5df32718a9376d53e023a5a9787c0afa
|
2022-12-22 |
debug.gem v1.7.1 |
970b26fb713205ad663467ede98cb18fb640763e
|
2022-12-23 |
NEWS.md: add 2 functions for debuggers [ci skip] |
c182d46d2477da9283661c8b4544d7da095835b4
|
2022-12-26 |
check `NO_COLOR` envval |
393192160726d6b299ca1f66fad9414e4bf8109a
|
2022-12-28 |
add debug print for the failure |
8c2b6926d2c6ba0317fcccb08c8b6657d4f0730c
|
2023-01-11 |
Skip unfixed assertion about objspace/dump_all |
2e7bceb34ea858649e1f975a934ce1894d1f06a6
|
2023-01-12 |
Do not use VM stack for splat arg on cfunc |
7e8802fa5bc08de3d210860a6fa10625a8586428
|
2023-01-13 |
fix `unused variables` warning |
0a82bfe5e18ac86da72c27389db6eb8da156a0b5
|
2023-02-02 |
use correct svar (#7225) |
be94808282e50d3ecaa1392ffc38c9ec89e3438b
|
2023-02-10 |
use correct svar even if env is escaped |
1f936d654ac49dff1a6d55aa079aaf1ebba24042
|
2023-02-15 |
`ractor_queue_enq/deq` doesn't need `rq` param |
0d415a322f5dd7158efcbc6c3226266e312620c7
|
2023-03-01 |
Enable DEBUG_LOG feature on USE_RUBY_DEBUG_LOG |
a4421bd73c286253311c2cdf8c78ed258f8cff44
|
2023-02-24 |
Rewrite Ractor synchronization mechanism |
6207a3f588ae0d0f7eb6303f7cccbe19f37ba6d1
|
2023-03-02 |
Enable flaky ractor test |
5875fce6ce678c444456cc7eed6f28ef000dac24
|
2023-03-02 |
`Ractor::Selector#empty?` |
941d36d195691949afe2ce464b0d0aa20208e637
|
2023-03-02 |
fix timing bug |
883871d722374b11b0bdd293a027609e8b891ba9
|
2023-03-04 |
add a test for Ractor |
e87d0882910001ef3b0c2ccd43bf00cee8c34a0c
|
2023-01-13 |
Change bytecode of `f(*a, **kw)` |
262254dc7dd9b503ca01ab701eb5cdd96bce4c4d
|
2023-03-09 |
rename `defined_ivar` to `definedivar` |
6462c1a042fec4017f7e3bf2c13ec6a29efd23d6
|
2023-03-13 |
`Hash#dup` for kwsplat arguments |
f29c9d6d36ebeb3e768a514cbfa00cd2ab35fcbc
|
2023-03-16 |
compile branch body if needed |
e5a5e43c36443e06756aba6de95c94b41b910a82
|
2023-03-17 |
should not restore builtin_inline_index |
c9fd81b860b5ec193ba57c73c740955937452497
|
2023-03-09 |
`vm_call_single_noarg_inline_builtin` |
0112a5b3423ddb2ddf46c4392f23f9b75128568e
|
2023-03-09 |
`Array#first` and `Array#last` in Ruby |
f89c34823423f5e1fb69f1896e956a8a61b8c54a
|
2023-03-29 |
enable GH actions on `USE_RUBY_DEBUG_LOG=1` |
ba72849a3f5d2369821dfecbb5bf60b9a0e7cd4e
|
2023-03-29 |
cosmetic change |
94e41822679ebd269564ad10d366596e1514d4ef
|
2023-03-29 |
`rb_current_ractor_raw(b)` |
30b43f4f1a37641edc0b146b8a648686a65a3aef
|
2023-03-29 |
`rb_ractor_thread_list()` only for current ractor |
f5b824c745782d02b9420f8626f633e3de748d73
|
2023-03-29 |
show debug log for `ractor_terminal_interrupt_all` |
83667008b925c32b3ab70fb6ec70f7398e960d1e
|
2023-03-30 |
dump `RUBY_DEBUG_LOG` logs into `/dev/null` |
2093e4c2db1e19991e601bf5191eddb4652de35d
|
2023-03-30 |
`nt->serial` for `RUBY_DEBUG_LOG` |
fbc6661a725f0aa594b55bbce1d861928a3373fc
|
2023-03-31 |
Revert "dump `RUBY_DEBUG_LOG` logs into `/dev/null`" |
66755164aa91ae0ec2712ab159d8acd8fa646574
|
2023-03-31 |
add `RUBY_DEBUG_LOG` fo `each_machine_stack_value` |
fdfd50d006b80c459537a0c8e5dcc7d409cb7789
|
2023-03-31 |
reorder `thread_pthread.c` functions |
369bdff9ca0d50e845b9623ec2d3e3f14e079248
|
2023-03-31 |
add debug log to `rb_ractor_thread_switch` |
95dafb53cde279c32cfcab9e42ea63e31ea5f861
|
2023-03-31 |
relax assertion |
ad7362db074e3dfe7c5d62b42edbef87c25eb24c
|
2023-03-31 |
rename `rb_thread_t::locking_native_thread` |
4c0f82eb5b13e436a93497eaf23d965efa35a39e
|
2023-03-31 |
remove "\n" for `RUBY_DEBUG_LOG()` |
f803bcfc872b31faeb1b894e315175e410024cd5
|
2023-03-31 |
pass `th` to `thread_sched_to_waiting()` |
1d19776c7f4daf30f7dae3ffb9c762ccd3669176
|
2023-03-31 |
cosmetic change |
9720f5ac894566ade2aabcf9adea0a3235de1353
|
2023-03-31 |
use `sleep_forever()` on `thread_join_sleep()` |
b2e848193aad70cffd972b15fcc6cbf6be843d94
|
2023-04-03 |
fix deadlock on `Thread#join` |
f3acaf312c2a0069acd279edc0ceafcc34ddfdc3
|
2023-04-04 |
`rb_th_serial(th)` allows `th == NULL` |
29e01c6f5f8901bdaab818dfd4699cfa2a86b8e6
|
2023-04-15 |
skip if `DidYouMean.formatter=` is not defined |
628e432739e1d2578d357420aa652a97eb8c2649
|
2023-04-19 |
fix `NameError` message |
457824e2d3ddebef6435d43e0a4b22f738f9fae4
|
2023-04-26 |
`RUBY_DEBUG_LOG_PID` for `RUBY_DEBUG_LOG()` |
06b68db7cfd194de2c7c0bd45e18692f6f8a7b87
|
2023-04-26 |
show a separator even if `ec` is NULL. |
ffce3117b6b615666cab8f92a7fc32ecefc0121c
|
2023-04-26 |
add new debug log line on `rb_ractor_terminate_all` |
bcf823fddbe38e0503805a7ba6ded53c1bc1e19d
|
2023-07-28 |
Revert "[rubygems/rubygems] Set thread configurations inside block" |
6dc15cc8895b28800d5c187929d846ac4eb7cd3f
|
2023-07-28 |
do not clear cme but invalidate cc |
7a7aba755d8da34555445510dc568380d0d96791
|
2023-07-29 |
check liveness of cc->klass and cc->cme_ |
087a2deccfb9d99961f1ce8526b80c5f72ee9a5d
|
2023-07-29 |
check `cc->*` liveness strictly |
36023d5cb751d62fca0c27901c07527b20170f4d
|
2023-07-31 |
mark `cc->cme_` if it is for `super` |
280419d0e0ba3e96e19551c70cba789fbedd80e1
|
2023-07-31 |
`calling->cd` instead of `calling->ci` |
cfd7729ce7a31c8b6ec5dd0e99c67b2932de4732
|
2023-07-31 |
use inline cache for refinements |
6a5c548218035bfdaf226c7ab1d0af37c9480900
|
2023-08-01 |
remove strange line event |
d68c01fd314ebd6dc1d89c95a2734fad4f0953b0
|
2023-08-01 |
support `rescue` event for TracePoint |
802ca3a1023e8018599d36fda250cbe64e77013c
|
2023-10-11 |
`RUBY_DEBUG_LOG` supports `%p` for pid |
be1bbd5b7d40ad863ab35097765d3754726bbd54
|
2023-04-10 |
M:N thread scheduler for Ractors |
10ba3fc302d68f977ce958b27a46ce0dab537f0c
|
2023-10-12 |
Use `sysconf()` to get PAGE_SIZE |
2dca02e273489c802a9860284a17333ddf67f161
|
2023-10-12 |
disable MN scheduler on !`USE_MN_THREADS` |
cdb36dfe7ddb7cbd7ed95e84b24114c8869a7e5e
|
2023-10-12 |
fix `native_thread_destroy()` timing |
d8a74207e7a4e4ae92b33b0a12a5351270ebbe75
|
2023-10-13 |
use `uint32_t` instead of `__uint32_t` |
62dfaeec2c3f6be255f48419307e69bfcfb3d849
|
2023-10-13 |
disable MN schedulers for some platforms |
275c18525c5bd48529fd676cde710f1dedf91b4d
|
2023-10-13 |
Allow `NON_SCALAR_THREAD_ID` machines |
eb79b0319bc9b04067bd9c795f9447dd03615df2
|
2023-10-13 |
release sched_lock before VM lock |
55c5ebe0a02eee319eb6a965a08bb53c5dcc7feb
|
2023-10-14 |
disable MN threads on s390s-linux |
c9990c8d0fdec0f79791ac3096ee6925fab0be7c
|
2023-10-17 |
"+MN" in description |
46b8846b5c40cf4053f678dae1684f1c6eb52673
|
2023-10-18 |
Show backtraces when failed |
7c731b5f7990d452dbda8dd88e401577c24e3153
|
2023-11-08 |
NEWS entry for new TracePoint event `rescue` |
c2a8141634d15000c420676cb5045ea78a72c1e1
|
2023-11-08 |
NEWS entry for M:N thread scheduler. |
352a885a0f1a4d4576c686301ee71ea887a345e5
|
2023-11-16 |
Thread specific storage APIs |
c4c39082af3520cd96aefc2219a7037865f3f710
|
2023-12-09 |
add `flags` to `rb_postponed_job_preregister` |
687d29f93ce45bd6721fc06530015a147e4057f0
|
2023-12-10 |
try modified tests. |
7ba2506232d3fa6c4e82e3708c0ff746a1a8de5c
|
2023-12-14 |
check modifcation whil ar->st |
406d4bb59905903cf7b9fa62c2d590e963edda5c
|
2023-12-15 |
add a test |
9b4cb69a88163340cac7c0a350eaf18832edb28f
|
2023-12-15 |
support `skip` in bootstraptest |
c9a9b8036c71974ab938a8bb3d6f095d4a318a8e
|
2023-12-15 |
remove `Ractor::Selector` from Ruby level |
9c9e6d5b91f23c15357d88036382d68ae3c77d97
|
2023-12-15 |
[DOC] NEWS entries for C APIs |
6c4b04de5cba36077f86b08d54c4c316f3df1d87
|
2023-12-18 |
clear `sched->lock_onwer` at fork |
f9a48548cf3ef54fc0a385ccd78c708737055ecc
|
2023-12-19 |
restore the stack pointer on finalizer |
2fe5fc176b31ce132e05a91b2c96b4a935e46ceb
|
2023-12-19 |
setup `waiting_fd` for `thread_sched_wait_events()` |
ec51a3c8183d555b6ccaa37834fac855ded3af88
|
2023-12-19 |
declare `rb_thread_io_blocking_call` |
7a0dfdea8c92d2393d624bc7961f36e082c43471
|
2023-12-19 |
use `rb_thread_io_blocking_call()` more |
054f56fd3e5bf84e5443896fd1f4e439c2773c60
|
2023-12-19 |
moved object should not have a shape ID |
4927f251481df57a209284bb2ad2b237468e7792
|
2023-12-20 |
skip `MAP_STACK` on FreeBSD |
cae11dd8576d9ddb9bead2e5340677c5d05b03f5
|
2023-12-22 |
debug.gem v1.9.1 |
bbfc262c994f84801abfb1302cf6142dfee50adf
|
2023-12-22 |
MN: fix "raise on close" |
c974ee1abe5df5a4bb97264e608afbd134c77652
|
2023-12-22 |
ensure to restart antoher thread |
a4b737213eb1d8f352f1f148c27e96a3f09f5d08
|
2023-12-22 |
MN: ceil timeout milli seconds |
2fe9e08578689adec0be8a36d0ae49541551d357
|
2023-12-22 |
MN: skip RUBY_DESCRIPTION spec on MN enabled |
beec3d07c907ec875e05fe2d22cea2263857b499
|
2023-12-22 |
MN: skip waiting on `read_nonblock' |
fa5de8f68d51e4fbc91190061e3ce3817bd68964
|
2023-12-22 |
MN: skip waiting on fiber schedulers |
82015496b924744ae3999987ba679978beb153c7
|
2023-12-24 |
MN: access `timer_th.waiting` with lock |
541371e286d2f139c49e7805f6f229618eb63144
|
2023-12-24 |
accept `RB_WAITFD_IN | RB_WAITFD_OUT` for waiting events |
a87ae242bb460c7643d0f974b96489b5f73a2d45
|
2023-12-24 |
Use noinline version of accessing current ec |
d65d2fb6b5c56c495f2f98f8e6ac5994ad5d93dd
|
2023-12-28 |
Do not `poll` first |
41dd15944f8843539a070a6aa1b01a71421ce4d0
|
2024-01-08 |
fix `rb_thread_wait_for_single_fd` on non MN case |
b3c13de858d0dbe4e3965485d47da58b6960cb64
|
2024-02-20 |
skip a test on non-UTF-8 locale |
d578684989fd2d75f086a259719e3eb0fe57ccb2
|
2024-02-20 |
`rb_thread_lock_native_thread()` |
3680981c7b71df8c3a426164787ccefe5296bb25
|
2024-03-26 |
skip `test_gc_stress_at_startup` |
5d9fd674c9ceefd6baffdd05d33c5b60a7c64e42
|
2024-04-10 |
put empty `rb_gc_force_recycle()` |
9180e33ca3a5886fec3f9e0a2f48072b55914e65
|
2024-03-26 |
show warning for unused block |
145cced9bcb6a52fccfa0c669121bd07d3b3ff74
|
2024-04-15 |
fix incorrect warning. |
9a57b047033034c30a3351d08ad648735299c8cf
|
2024-04-15 |
`super{}` doesn't use block |
f9f301800199e7b5b9a6e92cf726cd0214d417a4
|
2024-04-17 |
`ISeq#to_a` respects `use_block` status |
7bc66a366ded3ae2d07a418e17a9da6ee24612fd
|
2024-04-17 |
skip on Prism generated iseq |
e9d7478dedbd2b57530bc17efe8a9db9b8b2f280
|
2024-04-17 |
relax unused block warning for duck typing |
662ce928a7fb31117bc584aad10d9c5c82689abd
|
2024-04-19 |
`RUBY_TRY_UNUSED_BLOCK_WARNING_STRICT` |
448efa90af19a680f740aeb86e85782e868e7ae7
|
2024-06-10 |
respect `RUBY_TEST_TIMEOUT_SCALE` |
528a23b53c07001461e35aad30deabd736bb417c
|
2024-06-10 |
Check current file on TracePoint |
6086bae5c85cc297003012afc9cf5966fc75746a
|
2024-06-11 |
check `SPEC_TEMP_DIR` is world-writable or not |
39c9d99f6ccb81479c077e5cf1623572ade226a1
|
2024-06-12 |
'SPEC_TEMP_DIR` should not be world-writable |
e4385baaa2bfe4c0a6540f4c996df4ccff71cdca
|
2024-06-13 |
avoid recursive calls on `check_rvalue_consistency` |
fc33559c40e08e4ae0a98821a679abddc4bb247c
|
2024-06-13 |
clear `kw_flag` if given hash is nil |
513520a1735d0d980bb74f9eac20f29225c91427
|
2024-06-13 |
do not call `check_rvalue_consistency` here |
420ef906bd13e1dd403047d85207690e1af0db54
|
2024-06-13 |
respect `--error-output stderr` on parallel mode |
b182f2a04520a0138992b27f9e6bfd15bdfd6f96
|
2024-06-20 |
fix sendfwd with `send` and `method_missing` |
bd583ca645ea348a2894f4227fcb1af650ee8dec
|
2024-06-21 |
retry on cancelling of `getaddrinfo` |
92f2cf1bf9430514a182f6e7bb8c2090b8285cbd
|
2024-06-24 |
With ASAN `EC_REPUSH_TAG` doesn't work |
30a8dbc861a03d881b7f058cd1a111c1222b66d6
|
2024-06-28 |
maximum showing line number on btest failure |
685a4e5be77ec376f29a180c7ed9fbee23e05bac
|
2024-07-03 |
VM barrier needs to store GC root |
ffc69eec0a5746d48ef3cf649639c67631a6a609
|
2024-04-27 |
`struct rb_thread_sched_waiting` |
e500222de1a8d5e7a844209a7e912b03db8cdf76
|
2024-07-08 |
fix last commit |
43aee3393d70f8893e312b38a9a30c1dba295c41
|
2024-07-10 |
fix `defined?(@ivar)` with Ractors |
d5afa2cc95710f34d5547efdcfc1562305248590
|
2024-08-09 |
do not show unused block on `send` |
a838f980f599d95ccf344157f7074e997af31f48
|
2024-10-09 |
`me->defined_class` should be T_CLASS/T_ICLASS |
583587dfbf524b96593f5469d68c844c7297ba98
|
2024-10-30 |
[ruby/error_highlight] use `instance_method` to get method object |
783dde2159a3689ad2d3ef6b7d0005a7cf80adba
|
2024-10-31 |
`alias` should not set `defined_class` for Modules |
ab7ab9e4508c24b998703824aa9576fb2e092065
|
2024-11-05 |
`Warning[:strict_unused_block]` |
c8297c3eed571e978dded34dd2036a53d6f28bb3
|
2024-11-04 |
`interrupt_exec` |
f0d0c030c04c1c3949ac85a37b7d4bf8acebface
|
2024-11-04 |
`Ractor.main?` |
075a102c937969c62a6798b32b3c3188df91a075
|
2024-11-04 |
`Ractor.[]` and `Ractor.[]=` |
aa63699d10e489bc6d9c13406fc47f581001568b
|
2024-11-04 |
support `require` in non-main Ractors |
8d88d35fc1ae183cee48f3819ac6cd709c96d285
|
2024-11-05 |
correct dependencies |
4886a54d74338c8a9c57312b51331296a2d506df
|
2024-11-05 |
fix rjit-bindgen info |
0d63b9b4a49d7477b5201f5d40ecd64916cd0e43
|
2024-11-05 |
check closing flag |
97aaf6f760259c639dc3ceb3a80fe82411649569
|
2024-11-05 |
introduce `rb_ec_check_ints()` |
78064d0770c40af89f9a57eb111a27fba00b2ec8
|
2024-11-06 |
skip `SystemStackError` |
1615996067b91f7e7e2b9c239b25247b4471e8b9
|
2024-11-07 |
specify NOINLINE for LTO |
2f870b651aae5bb42a76b5d067a9f27f5864516b
|
2024-11-28 |
add NEWS entries about Ractor related changes. |
da2c083fca8c0477fd5fd99dc1725d1c4dc5fa3c
|
2024-11-28 |
add a NEWS entry about extra rescue/ensure frames |
0bdb38ba6be208064a514c12a9b80328645689f8
|
2024-12-12 |
`Ractor.set_if_absent(key)` |
e09c23433e2a7f4e2410b46c8dc79496f0453307
|
2024-12-13 |
followup 0bdb38ba6be208064a514c12a9b80328645689f8 |
c194b26132eb7babe8a98d3fc61b9a8ac15a23d0
|
2024-12-18 |
debug v1.10.0 |
c695536cc8ea4be69849394b0c64c974d52c603a
|
2024-12-20 |
use `st_update` to prevent table extension |
bd569cb7081e11628ee637ce9364d56c653c932c
|
2024-12-23 |
add back quotes for method/class names |
ab8fd5bb6cdb9c661673f2edf0546ff3a63fe189
|
2024-12-24 |
not a incompatbile, but a feature |
ce66eea167847d4300150791bde4932b907b0cc0
|
2025-03-04 |
try to show timeout sec |
46f3d82f40535235f9fcda2d804fc564314f4e87
|
2025-03-04 |
Revert "try to show timeout sec" |
1ce10f3fbb037bc8383d0cf7fe72d9f261669246
|
2025-03-04 |
do not reset `EnvUtil.timeout_scale` |
64c520fc25278c653cb19cd88633c3f112301e8c
|
2025-05-23 |
skip the test now we couldn't fix |
ef2bb61018cd9ccb5b61a3d91911e04a773da4a7
|
2025-05-26 |
`Ractor::Port` |
70131741851aa703b4e7a334d947ffdbe875ec31
|
2025-05-29 |
fix for test-bundled-gems to catch up new API |
49b7a092fa42341faf98d53fee11cfb776201ff0
|
2025-05-30 |
skip tests for BigDecimal 3.2.0 |
7924296844fe616b24935018d82f2c65424c4156
|
2025-05-30 |
skip flaky test |
c0c94ab183d0d428595ccb74ae71ee945f1afd45
|
2025-05-30 |
skip failing test in a week |
57d10c6e806c4572eb75084462ecdf883591f4ea
|
2025-05-31 |
NEWS entries for `Ractor::Port` |
e8b31c273c205d6e5482c9cf1832fbe8fdc97f5b
|
2025-05-31 |
rake 13.3.0 -> 13.2.1 |
7b75b1f2da85b3862d4cebe176f41cf044ed6e7f
|
2025-05-31 |
prepare IDs for `Ractor::monitor` |
8070d5d97d0b1ff4f2457326d7af325560ac9ec7
|
2025-06-04 |
`Ractor#take` and warn |
0ca80484aca180762f0a17db53981a3e69c0f7f9
|
2025-06-03 |
mark main Ractor object |
a62166e28efeb13d309bc4b7dc04371a5b62b3cc
|
2025-06-03 |
support nested VM barrier synchronization |
1baa396e21c272cc9cc1fea4e5d372ae1979fb9f
|
2025-06-05 |
fix `rp(obj)` for any object |
16057041178d3084884693937d6f02e0680e0657
|
2025-06-06 |
ignore confirming belonging while finrializer |
98ac3f1fe451789c2676956d09cdda6dee78f947
|
2025-06-07 |
increase timeout for high load env |
d0b5f3155406e8243b78e4cedd3a38710c7c323c
|
2025-06-07 |
record load average at fail |