aboutsummaryrefslogtreecommitdiffstats
path: root/common.mk
Commit message (Collapse)AuthorAgeFilesLines
* Prevent unloading methods used in root_fiber while calling another Fiber (#2939)Takashi Kokubun2020-02-281-0/+1
| | | | | | Fixing SEGVs like: http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2744905 http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2744420 http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2741400
* Share extracted bundled gems with gems for bundlerNobuyoshi Nakada2020-02-251-4/+5
| | | | | | Extract bundled gems under ".bundle/gems" and get rid of duplication which cause constant redefinition warnings at `test-all` after `extract-gems` and `test-bundler`.
* Fixed symbol misused as IDNobuyoshi Nakada2020-02-241-0/+1
| | | | | `rb_funcallv_public` and `rb_respond_to` require an `ID`, not a `Symbol`. [Bug #16649]
* Revert "Prefer `exe/ruby` to execute from it"Nobuyoshi Nakada2020-02-231-1/+1
| | | | | This reverts commit c7b71af9e21b3f0b8fe413a3c20cf4bd633c40d0, as an example in bundler expects untouch PATH.
* Prefer `exe/ruby` to execute from itNobuyoshi Nakada2020-02-221-1/+1
|
* Introduce disposable call-cache.Koichi Sasada2020-02-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains several ideas: (1) Disposable inline method cache (IMC) for race-free inline method cache * Making call-cache (CC) as a RVALUE (GC target object) and allocate new CC on cache miss. * This technique allows race-free access from parallel processing elements like RCU. (2) Introduce per-Class method cache (pCMC) * Instead of fixed-size global method cache (GMC), pCMC allows flexible cache size. * Caching CCs reduces CC allocation and allow sharing CC's fast-path between same call-info (CI) call-sites. (3) Invalidate an inline method cache by invalidating corresponding method entries (MEs) * Instead of using class serials, we set "invalidated" flag for method entry itself to represent cache invalidation. * Compare with using class serials, the impact of method modification (add/overwrite/delete) is small. * Updating class serials invalidate all method caches of the class and sub-classes. * Proposed approach only invalidate the method cache of only one ME. See [Feature #16614] for more details.
* VALUE size packed callinfo (ci).Koichi Sasada2020-02-221-0/+8
| | | | | | | | | | | | | | | | | | | | Now, rb_call_info contains how to call the method with tuple of (mid, orig_argc, flags, kwarg). Most of cases, kwarg == NULL and mid+argc+flags only requires 64bits. So this patch packed rb_call_info to VALUE (1 word) on such cases. If we can not represent it in VALUE, then use imemo_callinfo which contains conventional callinfo (rb_callinfo, renamed from rb_call_info). iseq->body->ci_kw_size is removed because all of callinfo is VALUE size (packed ci or a pointer to imemo_callinfo). To access ci information, we need to use these functions: vm_ci_mid(ci), _flag(ci), _argc(ci), _kwarg(ci). struct rb_call_info_kw_arg is renamed to rb_callinfo_kwarg. rb_funcallv_with_cc() and rb_method_basic_definition_p_with_cc() is temporary removed because cd->ci should be marked.
* Workaround for bison provided by scoop on mswin environmentHiroshi SHIBATA2020-02-151-0/+1
|
* Fixed a potential memory leakNobuyoshi Nakada2020-02-121-0/+1
| | | | `rb_str_new_cstr` can raise a `NoMemoryError`.
* Check if bindable against the refined target [Bug #16617]Nobuyoshi Nakada2020-02-091-0/+1
|
* Fix file dependency in makeAlan Wu2020-01-281-0/+2
|
* Fixed missing dependency on array.rbNobuyoshi Nakada2020-01-271-0/+1
|
* Moved Array#shuffle and Array#shuffle! to rbincNobuyoshi Nakada2020-01-261-0/+3
|
* Remove special handling of $SAFE and related C-APIsJeremy Evans2020-01-221-34/+0
| | | | These were all deprecated in Ruby 2.7.
* add default break pointsKoichi Sasada2020-01-211-0/+2
|
* Update clean-local [ci skip]Nobuyoshi Nakada2020-01-181-1/+1
| | | | | | | * Remove builtin_binary.inc which is generated for each time miniruby is built. * dSYM is a directory, not a file.
* Update dependenciesNobuyoshi Nakada2020-01-171-0/+1
| | | | | internal/rational.h needs internal/warnings.h with Apple clang, for `UNALIGNED_MEMBER_ACCESS`.
* Update dependencies in makefiles againKazuhiro NISHIYAMA2020-01-171-0/+3
| | | | patch from https://travis-ci.org/ruby/ruby/jobs/638231960
* Update dependencies in makefilesKazuhiro NISHIYAMA2020-01-171-0/+1
| | | | patch from https://travis-ci.org/ruby/ruby/jobs/638226493
* Clean generated ChangeLog [ci skip]Nobuyoshi Nakada2020-01-121-1/+1
|
* Ignore existing ChangeLog file and generate always [ci skip]Nobuyoshi Nakada2020-01-121-0/+2
|
* Added make target to export the ChangeLog fileNobuyoshi Nakada2020-01-121-0/+5
|
* Let execution context local storage be an ID tableLourens Naudé2020-01-111-0/+1
|
* Update dependencies for c6b26f5ccf9296f7fbb23c055401c4f55d32efa0Nobuyoshi Nakada2020-01-101-0/+6
|
* Bump benchmark-driver to v0.15.7 (#2811)Lourens Naudé2020-01-021-1/+1
|
* move internal/debug.h definitions to internal.hKoichi Sasada2020-01-031-3/+0
| | | | Debug utilities should be accessible from any internal code.
* Updated dependencies on internal/warnings.hNobuyoshi Nakada2019-12-311-0/+93
| | | | | Needed for `UNALIGNED_MEMBER_ACCESS` using `COMPILER_WARNING_`* macros.
* update dependencies卜部昌平2019-12-261-0/+933
|
* update-bundled_gems: drop branch name on github [ci skip]Nobuyoshi Nakada2019-12-251-1/+3
|
* Create backtrace location array directlyNobuyoshi Nakada2019-12-131-0/+1
|
* Moved Kernel#warn to warning.rbNobuyoshi Nakada2019-12-131-0/+4
|
* add depenency pointed by update-depsKoichi Sasada2019-12-111-0/+7
|
* * remove trailing spaces. [ci skip]git2019-12-111-1/+1
|
* support cross-compilation.Koichi Sasada2019-12-111-1/+1
| | | | | | | | On cross-compilation, compiled binary can no be created because compiled binary should be created by same interpreter (on cross- compilation, host ruby is used to build ruby (BASERUBY)). So that cross-compilation system loads required scripts in text. It is same as miniruby.
* remove prelude.cKoichi Sasada2019-12-111-68/+4
| | | | | | | | | prelude.c is an automatically generated file by template/prelude.c.tmpl. However it does not contain any required functions. So remove it from dependency. Also miniprelude.c is included by mini_builtin.c and does not need to make miniprelude.o.
* use compiled binary for gem_prelude.rb.Koichi Sasada2019-12-111-1/+2
| | | | | `gem_prelude.rb` is not compiled yet. This patch compile it to compiled binary.
* Add missing dependencyTakashi Kokubun2019-12-041-0/+1
| | | | https://travis-ci.org/ruby/ruby/jobs/620972117
* Revert "builtin_binary.inc needs miniruby itself for RubyVM.each_builtin"Nobuyoshi Nakada2019-12-021-2/+2
| | | | | This reverts commit 2615030c521afc822c66a7e139ccba3d2365ab56, which doesn't work when cross compiling, except for mingw.
* builtin_binary.inc needs miniruby itself for RubyVM.each_builtinNobuyoshi Nakada2019-12-021-2/+2
|
* fastpath for ivar read of FL_EXIVAR objects.Koichi Sasada2019-11-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vm_getivar() provides fastpath for T_OBJECT by caching an index of ivar. This patch also provides fastpath for FL_EXIVAR objects. FL_EXIVAR objects have an each ivar array and index can be cached as T_OBJECT. To access this ivar array, generic_iv_tbl is exposed by rb_ivar_generic_ivtbl() (declared in variable.h which is newly introduced). Benchmark script: Benchmark.driver(repeat_count: 3){|x| x.executable name: 'clean', command: %w'../clean/miniruby' x.executable name: 'trunk', command: %w'./miniruby' objs = [Object.new, 'str', {a: 1, b: 2}, [1, 2]] objs.each.with_index{|obj, i| rep = obj.inspect rep = 'Object.new' if /\#/ =~ rep x.prelude str = %Q{ v#{i} = #{rep} def v#{i}.foo @iv # ivar access method (attr_reader) end v#{i}.instance_variable_set(:@iv, :iv) } puts str x.report %Q{ v#{i}.foo } } } Result: v0.foo # T_OBJECT clean: 85387141.8 i/s trunk: 85249373.6 i/s - 1.00x slower v1.foo # T_STRING trunk: 57894407.5 i/s clean: 39957178.6 i/s - 1.45x slower v2.foo # T_HASH trunk: 56629413.2 i/s clean: 39227088.9 i/s - 1.44x slower v3.foo # T_ARRAY trunk: 55797530.2 i/s clean: 38263572.9 i/s - 1.46x slower
* Show include directive differences only when under gitv2_7_0_preview3Nobuyoshi Nakada2019-11-231-1/+3
| | | | | When building from tarballs, the source directory is not a git repository.
* Update dependenciesNobuyoshi Nakada2019-11-181-173/+2
|
* update deps.Koichi Sasada2019-11-181-2/+3
| | | | https://travis-ci.org/ruby/ruby/jobs/613242256#L2205
* load prelude.rb by builtin features.Koichi Sasada2019-11-151-2/+4
| | | | | | | | | The script in prelude.rb was embed in MRI to load it (eval this script at everyboot). This commit change the loading process of prelude.rb. MRI doesn't eval a script, but load from compiled binary with builtin feature. So that Init_prelude() does not load `prelude.rb` now.
* Update dependenciesKazuhiro NISHIYAMA2019-11-131-0/+13
| | | | patch from https://travis-ci.org/ruby/ruby/jobs/611152175#L2204
* Create `RUBYCOMMONDIR` directory in advanceNobuyoshi Nakada2019-11-121-1/+7
| | | | | | As well as the directory per architecture. Closes https://github.com/ruby/ruby/pull/2669
* add deps for miniprelude.cKoichi Sasada2019-11-111-1/+1
|
* Extract gem files after updateNobuyoshi Nakada2019-11-111-0/+1
| | | | So that test/optparse/test_did_you_mean.rb can find did_you_mean.rb.
* Get rid of FreeBSD make incompatibility [Bug #16331]Nobuyoshi Nakada2019-11-101-23/+27
| | | | | | | | | | | | | | | | | | FreeBSD make works differently with `-j` option. > -j max_jobs > Specify the maximum number of jobs that `make` may have running > at any one time. The value is saved in `.MAKE.JOBS.` Turns > compatibility mode off, unless the `B` flag is also specified. > When compatibility mode is off, all commands associated with a > target are executed in a single shell invocation as opposed to > the traditional one shell invocation per line. This can break > traditional scripts which change directories on each command > invocation and then expect to start with a fresh environment on > the next line. It is more efficient to correct the scripts > rather than turn backwards compatibility on. Stop using exit, cd, exec in middle of commands.
* Fix builtin scirpt pathsNobuyoshi Nakada2019-11-091-6/+6
| | | | | Do not search builtin scripts by using VPATH, to get rid of weird nmake VPATH.