summaryrefslogtreecommitdiff
path: root/vm_opts.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove an unused VM optionTakashi Kokubun2023-03-131-1/+0
| | | | This seems to be used nowhere today.
* oops Direct threading should be defaultAlan Wu2021-10-201-1/+1
|
* Fix compilation for OPT_THREADED_CODE=2Alan Wu2021-10-201-1/+1
|
* Remove obsoleted opt_call_c_function insn (#3232)Takashi Kokubun2020-06-171-0/+4
| | | | | * Remove obsoleted opt_call_c_function insn * Keep opt_call_c_function with DEFINE_INSN_IF
* add #include guard hack卜部昌平2020-04-131-5/+2
| | | | | | | | | | | | | | | | | | | | | | According to MSVC manual (*1), cl.exe can skip including a header file when that: - contains #pragma once, or - starts with #ifndef, or - starts with #if ! defined. GCC has a similar trick (*2), but it acts more stricter (e. g. there must be _no tokens_ outside of #ifndef...#endif). Sun C lacked #pragma once for a looong time. Oracle Developer Studio 12.5 finally implemented it, but we cannot assume such recent version. This changeset modifies header files so that each of them include strictly one #ifndef...#endif. I believe this is the most portable way to trigger compiler optimizations. [Bug #16770] *1: https://docs.microsoft.com/en-us/cpp/preprocessor/once *2: https://gcc.gnu.org/onlinedocs/cppinternals/Guard-Macros.html
* Use cppflags to pass preprocessor optionsNobuyoshi Nakada2019-10-231-0/+2
|
* Unify SUPPORT_JOKE and OPT_SUPPORT_JOKETakashi Kokubun2019-09-031-1/+0
| | | | | | | | | | for simplicity and consistency. Now SUPPORT_JOKE needs to be prefixed with OPT_ to make the config visible in `RubyVM::VmOptsH`, and the inconsistency was introduced. As it has never been available for override in configure (no #ifndef guard), it should be fine to rename the config.
* Avoid defining unused instructionsTakashi Kokubun2019-09-031-1/+2
|
* vm_opts.h: share USE_IC_FOR_IVAR as OPT_IC_FOR_IVARk0kubun2018-10-141-0/+4
| | | | | | | | | | with mjit_compile.c (tool/ruby_vm/views/_mjit_compile_getivar.erb). mjit_compile.c: ditto tool/ruby_vm/views/_mjit_compile_getivar.erb: ditto vm_opts.h: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix OPT_CALL_THREADED_CODE issue.ko12018-09-261-3/+13
| | | | | | | | | | | | * insns.def (opt_send_without_block): reorder insn position because `opt_str_freeze` insn refer this insn (function) when OPT_CALL_THREADED_CODE is true. * vm_opts.h (OPT_THREADED_CODE): introduce new macro to select threaded code implementation with a compile option (-D...). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Remove "trace_instruction" compile option.ko12017-12-241-1/+0
| | | | | | | | | * iseq.h (rb_compile_option_struct): trace instruction is removed so that remove the trace_instruction compile option. Don't show warning (just ignore) for Ruby 2.5. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.h: rename membernobu2015-11-251-1/+1
| | | | | | | | | | | * iseq.h (rb_compile_option_struct): rename the member frozen_string_literal_debug as debug_frozen_string_literal. [Feature #11725] * ruby.c (proc_options): do not set $DEBUG and $VERBOSE only if no arguments is given. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * iseq.c (make_compile_option_value): include frozen_string_literal*ko12015-10-231-6/+7
| | | | | | | | | | | | in a made option value. * vm_opts.h: forgot to add OPT_FROZEN_STRING_LITERAL_DEBUG at last commit. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_opts.h, iseq.c, iseq.h: add compile option to force frozenko12015-08-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix minor code comment typostmm12013-04-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_opts.h: enable optimization - operand unifications.ko12012-12-041-2/+2
| | | | | | | | | | | | | 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * Makefile.in (probes.o): add -C to ignore #include in probes.d.naruse2012-11-221-0/+4
| | | | | | | | * probes.d: include vm_opts.h instead of vm_core.h. * vm_opts.h (VM_COLLECT_USAGE_DETAILS): move definition from vm_core.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_opts.h (OPT_GLOBAL_METHOD_CACHE): new build option toshugo2012-10-061-0/+1
| | | | | | | | | enable/disable global method caching. [ruby-dev:46203] [Bug #7111] * vm_method.c (rb_method_entry_get_with_omod): don't use global method cache if OPT_GLOBAL_METHOD_CACHE is 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_opts.h: enable "OPT_TRACE_INSTRUCTION" on default.ko12008-08-231-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c, vm.c, vm_core.h, vm_insnhelper.c: specify "const".ko12008-05-221-0/+1
| | | | | | | | * vm_opts.h: add a OPT_TOKEN_THREADED_CODE macro. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h, insnhelper.h, thread_pthread.h, vm_core.h, vm_opts.h:nobu2008-01-181-4/+3
| | | | | | | | | | | | prefixed include guards with RUBY. * id.h: added include guard. * regenc.h, regint.h, regparse.h: prefixed include guards with ONIGURUMA. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * $Date$ keyword removed to avoid inclusion of locale dependentakr2008-01-061-1/+0
| | | | | | | string. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * blockinlining.c, compile.c, compile.h, debug.c, debug.h,ko12007-11-131-1/+1
| | | | | | | | | | | 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c (iseq_compile_each/NODE_RESBODY): fix to addko12007-08-191-13/+16
| | | | | | | | | additional nop to prevent tailcall optimization. * vm_opts.h: clean up comments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c, vm_macro.def: support tail call optimizationko12007-05-211-1/+2
| | | | | | | | | | | | | (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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval.c, node.h, thread.c, yarvcore.[ch], eval_intern.h:ko12007-04-191-0/+1
| | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_opts.h: set properties:ko12007-02-061-47/+47
| | | | | | | | | svn:keywords: Author Date Id Revision svn:eol-style: native git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * complement last commit.ko12007-02-061-0/+47
* common.mk (*.inc): use VPATH. * vm_opts.h: renamed from vm_opts.h.base. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e