summaryrefslogtreecommitdiff
path: root/common.mk
AgeCommit message (Collapse)Author
2020-03-13Update and extract for each gemNobuyoshi Nakada
2020-03-12Add prepare-gems to download and extract bundled gemsNobuyoshi Nakada
2020-02-28Prevent unloading methods used in root_fiber while calling another Fiber (#2939)Takashi Kokubun
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 Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2020-02-25Share extracted bundled gems with gems for bundlerNobuyoshi Nakada
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`. Notes: Merged: https://github.com/ruby/ruby/pull/2922
2020-02-24Fixed symbol misused as IDNobuyoshi Nakada
`rb_funcallv_public` and `rb_respond_to` require an `ID`, not a `Symbol`. [Bug #16649]
2020-02-23Revert "Prefer `exe/ruby` to execute from it"Nobuyoshi Nakada
This reverts commit c7b71af9e21b3f0b8fe413a3c20cf4bd633c40d0, as an example in bundler expects untouch PATH.
2020-02-22Prefer `exe/ruby` to execute from itNobuyoshi Nakada
2020-02-22Introduce disposable call-cache.Koichi Sasada
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. Notes: Merged: https://github.com/ruby/ruby/pull/2888
2020-02-22VALUE size packed callinfo (ci).Koichi Sasada
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. Notes: Merged: https://github.com/ruby/ruby/pull/2888
2020-02-15Workaround for bison provided by scoop on mswin environmentHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/2909
2020-02-12Fixed a potential memory leakNobuyoshi Nakada
`rb_str_new_cstr` can raise a `NoMemoryError`.
2020-02-09Check if bindable against the refined target [Bug #16617]Nobuyoshi Nakada
2020-01-28Fix file dependency in makeAlan Wu
2020-01-27Fixed missing dependency on array.rbNobuyoshi Nakada
2020-01-26Moved Array#shuffle and Array#shuffle! to rbincNobuyoshi Nakada
2020-01-22Remove special handling of $SAFE and related C-APIsJeremy Evans
These were all deprecated in Ruby 2.7. Notes: Merged: https://github.com/ruby/ruby/pull/2845
2020-01-21add default break pointsKoichi Sasada
2020-01-18Update clean-local [ci skip]Nobuyoshi Nakada
* Remove builtin_binary.inc which is generated for each time miniruby is built. * dSYM is a directory, not a file.
2020-01-17Update dependenciesNobuyoshi Nakada
internal/rational.h needs internal/warnings.h with Apple clang, for `UNALIGNED_MEMBER_ACCESS`.
2020-01-17Update dependencies in makefiles againKazuhiro NISHIYAMA
patch from https://travis-ci.org/ruby/ruby/jobs/638231960
2020-01-17Update dependencies in makefilesKazuhiro NISHIYAMA
patch from https://travis-ci.org/ruby/ruby/jobs/638226493
2020-01-12Clean generated ChangeLog [ci skip]Nobuyoshi Nakada
2020-01-12Ignore existing ChangeLog file and generate always [ci skip]Nobuyoshi Nakada
2020-01-12Added make target to export the ChangeLog fileNobuyoshi Nakada
2020-01-11Let execution context local storage be an ID tableLourens Naudé
Notes: Merged: https://github.com/ruby/ruby/pull/2814
2020-01-10Update dependencies for c6b26f5ccf9296f7fbb23c055401c4f55d32efa0Nobuyoshi Nakada
2020-01-02Bump benchmark-driver to v0.15.7 (#2811)Lourens Naudé
2020-01-03move internal/debug.h definitions to internal.hKoichi Sasada
Debug utilities should be accessible from any internal code.
2019-12-31Updated dependencies on internal/warnings.hNobuyoshi Nakada
Needed for `UNALIGNED_MEMBER_ACCESS` using `COMPILER_WARNING_`* macros. Notes: Merged: https://github.com/ruby/ruby/pull/2799
2019-12-26update dependencies卜部昌平
Notes: Merged: https://github.com/ruby/ruby/pull/2711
2019-12-25update-bundled_gems: drop branch name on github [ci skip]Nobuyoshi Nakada
2019-12-13Create backtrace location array directlyNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/2739
2019-12-13Moved Kernel#warn to warning.rbNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/2739
2019-12-11add depenency pointed by update-depsKoichi Sasada
2019-12-11* remove trailing spaces. [ci skip]git
2019-12-11support cross-compilation.Koichi Sasada
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. Notes: Merged: https://github.com/ruby/ruby/pull/2735
2019-12-11remove prelude.cKoichi Sasada
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. Notes: Merged: https://github.com/ruby/ruby/pull/2735
2019-12-11use compiled binary for gem_prelude.rb.Koichi Sasada
`gem_prelude.rb` is not compiled yet. This patch compile it to compiled binary. Notes: Merged: https://github.com/ruby/ruby/pull/2735
2019-12-04Add missing dependencyTakashi Kokubun
https://travis-ci.org/ruby/ruby/jobs/620972117
2019-12-02Revert "builtin_binary.inc needs miniruby itself for RubyVM.each_builtin"Nobuyoshi Nakada
This reverts commit 2615030c521afc822c66a7e139ccba3d2365ab56, which doesn't work when cross compiling, except for mingw.
2019-12-02builtin_binary.inc needs miniruby itself for RubyVM.each_builtinNobuyoshi Nakada
2019-11-29fastpath for ivar read of FL_EXIVAR objects.Koichi Sasada
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
2019-11-23Show include directive differences only when under gitv2_7_0_preview3Nobuyoshi Nakada
When building from tarballs, the source directory is not a git repository.
2019-11-18Update dependenciesNobuyoshi Nakada
2019-11-18update deps.Koichi Sasada
https://travis-ci.org/ruby/ruby/jobs/613242256#L2205
2019-11-15load prelude.rb by builtin features.Koichi Sasada
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.
2019-11-13Update dependenciesKazuhiro NISHIYAMA
patch from https://travis-ci.org/ruby/ruby/jobs/611152175#L2204
2019-11-12Create `RUBYCOMMONDIR` directory in advanceNobuyoshi Nakada
As well as the directory per architecture. Closes https://github.com/ruby/ruby/pull/2669
2019-11-11add deps for miniprelude.cKoichi Sasada
2019-11-11Extract gem files after updateNobuyoshi Nakada
So that test/optparse/test_did_you_mean.rb can find did_you_mean.rb.