aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* * vm_core.h: remove VM_FRAME_MAGIC_FINISH (finish frame type).ko12012-06-158-89/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r35576 "lib/test/unit.rb: refactoring puke"nobu2012-06-152-7/+20
| | | | | | | * lib/test/unit.rb (Test::Unit::Runner#puke): always add skipped results to the report for parallel test. [Bug #6595] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test: TEST_COLORSnobu2012-06-153-3/+3
| | | | | | | | * bootstraptest/runner.rb (main): fixed typo. * lib/test/unit.rb (Test::Unit::Runner#_prepare_run): ditto. * sample/test.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test: skipped colornobu2012-06-151-3/+9
| | | | | | | * lib/test/unit.rb (Test::Unit::Runner#failed): use different color for Skipped. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test: TEST_COLORSnobu2012-06-153-7/+13
| | | | | | | | | | | * bootstraptest/runner.rb (main): customize colors by dircolors-like style environment variable TEST_COLORS. * lib/test/unit.rb (Test::Unit::Runner#_prepare_run): ditto. * sample/test.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test: unknown --color argumentnobu2012-06-152-4/+6
| | | | | | | | * bootstraptest/runner.rb (main): warn unknown --color argument. * sample/test.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test: help messagenobu2012-06-151-0/+2
| | | | | | | * bootstraptest/runner.rb (main): add --color option to the help message. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * nacl/pepper_main.c: Removed an unnecessary and errorneous inclusion.yugui2012-06-152-1/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typoskazu2012-06-141-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/make-snapshot MKDIR_Pnobu2012-06-141-3/+2
| | | | | | | * tool/make-snapshot (package): MKDIR_P is needed as direct macro to build enc/unicode/name2ctype.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2012-06-15svn2012-06-141-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/make-snapshot MKDIR_Pnobu2012-06-141-1/+2
| | | | | | | * tool/make-snapshot (package): MKDIR_P is needed to build enc/unicode/name2ctype.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix CPPOUTFILEnobu2012-06-142-2/+7
| | | | | | | | * configure.in (RUBY_CPPOUTFILE): check if output is really sent to specified file to tell if -o option works. [ruby-dev:45742] [Bug#6591] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix CPPOUTFILEnobu2012-06-142-2/+8
| | | | | | | * configure.in (RUBY_CPPOUTFILE): check if output file is actually created. [ruby-dev:45742] [Bug#6591] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (proc_exec_sh): don't strip leading spaces of the script.akr2012-06-142-3/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c (rb_file_s_basename, rb_file_s_dirname): documentaion fix.usa2012-06-142-5/+11
| | | | | | | File.basename and File.dirname support File::ALT_SEPARATOR. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c: add castnobu2012-06-141-1/+1
| | | | | | * ruby.c (parse_and_compile_main): add cast to a pointer type. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c: set nil if nothing donenobu2012-06-141-1/+4
| | | | | | | * eval.c (ruby_eval_main_internal): set nil to the result if nothing executed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix r36079nobu2012-06-145-15/+15
| | | | | | * include/ruby/ruby.h: public symbols must have default visibility. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * nacl/pepper_maini.c: Applies the new embedding API to pepper_ruby.yugui2012-06-142-77/+34
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Embedding CRuby interpreter without internal headers has been difficultyugui2012-06-145-97/+306
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for few years because: * NODE is no longer accessible. * rb_iseq_eval_main crashes without preparing with rb_thread_t. * some existing APIs calls exit(3) without giving the opportunity to finalize or handle errors to the client. * No general-purpose function to compile a source to an iseq are published in the public headers. This commit solves the problems. * include/ruby/ruby.h: Grouped APIs for embedding CRuby interpreter. (ruby_setup, ruby_compile_main_from_file, ruby_compile_main_from_string, ruby_eval_main, ruby_set_script_name): new APIs to embed CRuby. (ruby_opaque_t) Opaque pointer to an internal data, to NODE or iseq in particular. * eval.c (ruby_setup): Similar to ruby_init but returns an error code instead of exit(3) on error. (ruby_eval_main): Similar to ruby_exec_node but returns the evaluation result. (ruby_eval_main_internal): renamed from ruby_exec_internal. * ruby.c (toplevel_context): new helper function. (PREPARE_EVAL_MAIN): moved. (process_options): refactored with new functions. (parse_and_compile_main) new helper funciton. (ruby_compile_main_from_file, ruby_compile_main_from_string) new API (ruby_set_script_name): new API. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c: Add doxygen comments.yugui2012-06-146-0/+89
| | | | | | | | | | | | * ruby.c: ditto. * thread_pthread.c: ditto * version.c: ditto. * vm_core.h: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in: revert r36071 and add NetBSD to blacklist of -ansi.naruse2012-06-142-4/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c (get_stack): Linux is the only OS which includesnaruse2012-06-132-15/+17
| | | | | | the size of guard page into the stack size. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/drb/drb.rb: Replace broken links to the English DRb book.drbrain2012-06-132-9/+8
| | | | | | | Patch by Zachary Scott. [ruby-trunk - Bug #6544] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/observer.rb: Update broken link to the Programming Ruby book.drbrain2012-06-133-2/+8
| | | | | | | | Patch by Zachary Scott. [ruby-trunk - Bug #6536] * lib/drb/drb.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* update doc.akr2012-06-131-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regparse.c (PFETCH_READY): suppress Wunused-but-set-variable.naruse2012-06-132-23/+24
| | | | | | | * regparse.c (is_onechar_cclass): restructured to clarify that c is used iff found == 1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in: use -fbuiltin with -ansi -std=iso9899:199409.naruse2012-06-132-3/+11
| | | | | | | | | This prevents errors introduced by disabling bulitin functions, which is the sub-effect of -ansi/-std. Now NetBSD can use -ansi -std=iso9899:199409. Maybe mingw, cygwin and darwin can also. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * Makefile.in: don't remove macros. now name2ctype uses macros.naruse2012-06-136-13879/+26763
| | | | | | | | | | * tool/enc-unicode.rb: add comment why it uses Hash#index. * enc/unicode/{name2ctype.kwd,name2ctype.src,name2ctype.h.blt}: update to follow the current name2ctype.h. FYI current Unicode version is 6.1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2012-06-14svn2012-06-131-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/net/http/responses.rb, lib/webrick/httpstatus.rb: Add HTTPknu2012-06-134-4/+71
| | | | | | | | | | | | | | | | response codes added in RFCs 2817 and 4918. [ruby-core:45547] [Feature #6569] * lib/net/http/responses.rb: Rename Net::HTTPMultipleChoice to Net::HTTPMultipleChoices, leaving the former as alias to the latter for backward compatibitily. [ruby-core:45547] [Feature #6569] * lib/net/http/responses.rb: Add comments about unused, still-in-draft and private extension response codes. [ruby-core:45547] [Feature #6569] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add a test.akr2012-06-131-0/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/dl/test_func.rb (test_qsort1, test_qsort2): use TYPE_SIZE_Tngoto2012-06-132-2/+7
| | | | | | | for size_t variables. [ruby-dev:45733] [Bug #6584] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: option for darwinnobu2012-06-132-3/+8
| | | | | | | * configure.in: remove -ansi and -std options for lgamma_r() and finite(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: option for cygwinnobu2012-06-131-0/+5
| | | | | | | * configure.in: cygwin does not provide some declarations in strict ANSI mode. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: option for cygwinnobu2012-06-131-3/+1
| | | | | | | * configure.in: cygwin does not provide some declarations in strict ANSI mode. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* update doc.akr2012-06-131-0/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (rb_fork_internal): move a variable declaration.akr2012-06-132-1/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regparse.c (PFETCH_READY): this line was to suppress warning,shyouhei2012-06-132-1/+7
| | | | | | | | but did emit warnings if -Wuninitialized was set. Assigning NULL instead if pfetch_prev should suffice the situation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: option for cygwinnobu2012-06-132-0/+10
| | | | | | | | * configure.in: cygwin needs C99 for some stuff, e.g., pthread_attr_setstacksize, sched_yield. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in: warnflagsnobu2012-06-132-1/+6
| | | | | | | | * Makefile.in (.c.i): add warnflags to make the result consistent with compilation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: suppress warningnobu2012-06-131-0/+2
| | | | | | * process.c (compare_posix_sh): not used on Win32. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in: On Windows platforms, system provided headers areshyouhei2012-06-132-4/+21
| | | | | | | | | | VC++ optimized. That is, C++ habits are often contaminated into various headers. Most frequent situation is the use of // comments. We bypass ANSI C mode for them. Otherwise extension libs cannot include those headers. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* include/ruby/win32.h: fix comment stylenobu2012-06-132-21/+29
| | | | | | | * include/ruby/win32.h: get rid of C99 style one line comments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* encoding.c: strdup macronobu2012-06-132-1/+11
| | | | | | | * encoding.c (enc_alias_internal): use strdup defined as macro. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: check iff naclnobu2012-06-131-1/+3
| | | | | | * configure.in (RUBY_NACL_CHECK_PEPPER_TYPES): check only on nacl. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: suppress warningnobu2012-06-131-0/+2
| | | | | | * thread_pthread.c (get_stack): define guard only when it is used. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: no SIZE_T_MAXnobu2012-06-132-2/+5
| | | | | | | | * process.c (rb_exec_fillarg): get rid of SIZE_T_MAX which may need more headers. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: fix array element sizenobu2012-06-132-2/+5
| | | | | | | | * process.c (rb_exec_fillarg): fix array element size. "continue" and "readonly" exceeded the size. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e