aboutsummaryrefslogtreecommitdiffstats
path: root/common.mk
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Updated miniprelude.o dependencyNobuyoshi Nakada2019-11-091-4/+32
|
* Embed builtin ruby scripts in miniprelude.cNobuyoshi Nakada2019-11-091-1/+1
| | | | | | Instead of reading from the files by the full-path at runtime. As rbinc files need to be included in distributed tarballs, the full-paths at the packaging are unavailable at compilation times.
* Fixed the dependencyNobuyoshi Nakada2019-11-091-1/+1
|
* Added pack.rb to BUILTIN_RB_SRCSNobuyoshi Nakada2019-11-081-5/+7
|
* Rubified the APIs of pack.cYusuke Endoh2019-11-081-0/+5
|
* Update builtin include filesNobuyoshi Nakada2019-11-081-3/+6
|
* Renamed `load_*.inc` as `*.rbinc` to utilize a suffix ruleNobuyoshi Nakada2019-11-081-18/+12
|
* use builtins for GC.Koichi Sasada2019-11-081-0/+5
| | | | Define a part of GC in gc.rb.
* Define IO#read/write_nonblock with builtins.Koichi Sasada2019-11-081-1/+6
| | | | | | | IO#read/write_nonblock methods are defined in prelude.rb with special private method __read/write_nonblock to reduce keyword parameters overhead. We can move them into io.rb with builtin functions.
* use builtin for RubyVM::AbstractSyntaxTree.Koichi Sasada2019-11-081-1/+6
| | | | | Define RubyVM::AbstractSyntaxTree in ast.rb with __builtin functions.
* use builtin for TracePoint.Koichi Sasada2019-11-081-1/+6
| | | | Define TracePoint in trace_point.rb and use __builtin_ syntax.
* support builtin features with Ruby and C.Koichi Sasada2019-11-081-1/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support loading builtin features written in Ruby, which implement with C builtin functions. [Feature #16254] Several features: (1) Load .rb file at boottime with native binary. Now, prelude.rb is loaded at boottime. However, this file is contained into the interpreter as a text format and we need to compile it. This patch contains a feature to load from binary format. (2) __builtin_func() in Ruby call func() written in C. In Ruby file, we can write `__builtin_func()` like method call. However this is not a method call, but special syntax to call a function `func()` written in C. C functions should be defined in a file (same compile unit) which load this .rb file. Functions (`func` in above example) should be defined with (a) 1st parameter: rb_execution_context_t *ec (b) rest parameters (0 to 15). (c) VALUE return type. This is very similar requirements for functions used by rb_define_method(), however `rb_execution_context_t *ec` is new requirement. (3) automatic C code generation from .rb files. tool/mk_builtin_loader.rb creates a C code to load .rb files needed by miniruby and ruby command. This script is run by BASERUBY, so *.rb should be written in BASERUBY compatbile syntax. This script load a .rb file and find all of __builtin_ prefix method calls, and generate a part of C code to export functions. tool/mk_builtin_binary.rb creates a C code which contains binary compiled Ruby files needed by ruby command.
* Do not occupy `ARGV` by XRUBY commandNobuyoshi Nakada2019-11-051-1/+1
| | | | | Instead run test-bundled-gems.rb by `ENV['RUBY']`, which should be set by runruby.rb.
* Share test-bundled-gems-run in common.mkNobuyoshi Nakada2019-11-051-0/+5
|
* Update Unicode Emoji version from 12.0 to 12.1.Martin Dürst2019-10-301-1/+1
| | | | | | | | | | This update does not add any new codepoint assignments, it just expands the range of emoji codepoint sequences recommended for public interchange. Depending on how emoji data files are cached, this commit may require manual intervention in some build environments (including some CI systems).
* Combine call info and cache to speed up method invocationAlan Wu2019-10-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | To perform a regular method call, the VM needs two structs, `rb_call_info` and `rb_call_cache`. At the moment, we allocate these two structures in separate buffers. In the worst case, the CPU needs to read 4 cache lines to complete a method call. Putting the two structures together reduces the maximum number of cache line reads to 2. Combining the structures also saves 8 bytes per call site as the current layout uses separate two pointers for the call info and the call cache. This saves about 2 MiB on Discourse. This change improves the Optcarrot benchmark at least 3%. For more details, see attached bugs.ruby-lang.org ticket. Complications: - A new instruction attribute `comptime_sp_inc` is introduced to calculate SP increase at compile time without using call caches. At compile time, a `TS_CALLDATA` operand points to a call info struct, but at runtime, the same operand points to a call data struct. Instruction that explicitly define `sp_inc` also need to define `comptime_sp_inc`. - MJIT code for copying call cache becomes slightly more complicated. - This changes the bytecode format, which might break existing tools. [Misc #16258]
* Added refresh-gemsNobuyoshi Nakada2019-10-241-0/+2
| | | | Refreshes bundled gems to the latest version, and extracts them.
* name2ctype.h depends on also Emoji dataNobuyoshi Nakada2019-10-231-1/+2
|
* Comparable#clamp with a range [Feature #14784]Nobuyoshi Nakada2019-10-161-0/+2
|
* make rb_raise a GVL-only function again卜部昌平2019-10-101-2/+0
| | | | | | Requested by ko1 that ability of calling rb_raise from anywhere outside of GVL is "too much". Give up that part, move the GVL aquisition routine into gc.c, and make our new gc_raise().
* Now error.o needs thread.hNobuyoshi Nakada2019-10-101-0/+1
|
* allow rb_raise from outside of GVL卜部昌平2019-10-101-0/+1
| | | | | | | | | | | | | | | Now that allocation routines like ALLOC_N() can raise exceptions on integer overflows. This is a problem when the calling thread has no GVL. Memory allocations has been allowed without it, but can still fail. Let's just relax rb_raise's restriction so that we can call it with or without GVL. With GVL the behaviour is unchanged. With no GVL, wait for it. Also, integer overflows can theoretically occur during GC when we expand the object space. We cannot do so much then. Call rb_memerror and let that routine abort the process.
* Added dependencies on prerequisite makefilesNobuyoshi Nakada2019-10-051-3/+3
|
* Use benchmark-driver v0.15.6Takashi Kokubun2019-09-191-1/+1
| | | | to fix another keyword argument warning which was added recently.
* Upgrade benchmark_driver to v0.15.5Takashi Kokubun2019-09-131-1/+1
| | | | Fixed new Struct-related keyword argument warnings
* Fixed wrong usage of file2lastrev.rbNobuyoshi Nakada2019-09-071-1/+1
|
* Upgrade benchmark-driver to v0.15.4Takashi Kokubun2019-09-071-1/+1
| | | | Fixing a bug on Windows introduced in v0.15.0
* Upgrade benchmark-driver to v0.15.3Takashi Kokubun2019-09-071-1/+1
| | | | | It got some nice features for better support of benchmark_driver-output-charty, Windows, ridk, and rbenv.
* Explain how to run an individual btest in helpTakashi Kokubun2019-09-031-1/+1
|
* Upgrade benchmark-driver for keyword args warningsTakashi Kokubun2019-09-011-1/+1
|
* Show MFLAGS to check `Set ENV` in .github/workflows/ubuntu.ymlKazuhiro NISHIYAMA2019-08-261-0/+1
|
* CPPFLAGS is not needed for linkNobuyoshi Nakada2019-08-261-1/+1
|
* Moved INCFLAGS to XCFLAGS from CPPFLAGS as well as mswinNobuyoshi Nakada2019-08-261-1/+1
| | | | Rules which have used CPPFLAGS will need XCFLAGS or INCFLAGS now.
* Add INCFLAGS for fake.rbNobuyoshi Nakada2019-08-261-1/+1
| | | | | INCFLAGS is not included in CPPFLAGS on mswin, not to be exported to rbconfig.rb.
* Removed unnecessary flags for fake.rbNobuyoshi Nakada2019-08-261-1/+1
| | | | | | Flags for ruby core such as warning and `_FORTIFY_SOURCE` macro are not necessary to make fake.rb, except for `RUBY_EXPORT` macro which prevents to include ruby/backward.h.
* Use () instead of {} for nmakeHiroshi SHIBATA2019-08-221-2/+2
|
* `--fomart progress` is default. It's duplicated.Hiroshi SHIBATA2019-08-221-1/+1
|
* Introduce test-bundler-parallel task.Hiroshi SHIBATA2019-08-221-1/+9
|
* Fix some bundler specs (#2380)David Rodríguez2019-08-201-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * These seem to consistenly pass already * Show actual command when running `make test-bundler` Current the setup command that installs the necessary gems for testing bundler was printed, but not the actual command that runs the tests. That was a bit confusing. * Borrow trick from setproctitle specs * A title that long doesn't get set sometimes No idea why, but the test doesn't need that the title is that long. * Fix most gem helper spec ruby-core failures * Fix the rest of the gem helper failures * Fix version spec by improving the assertion * Remove unnecessary `BUNDLE_RUBY` environment var We can use `RUBY` when necessary, and `BUNDLE_RUBY` is not a good name because bundler considers `BUNDLE_*` variables as settings. * Rename `BUNDLE_GEM` to `GEM_COMMAND` This is more descriptive I think, and also friendlier for bundler because `BUNDLE_` env variables are interpreted by bundler as settings, and this is not a bundler setting. This fixes one bundler spec failure in config specs against ruby-core. * Fix quality spec when run in core Use the proper path helper. * Fix dummy lib builder to never load default gems If a dummy library is named as a default gem, when requiring the library from its executable, the default gem would be loaded when running from core, because in core all default gems share path with bundler, and thus they are always in the $LOAD_PATH. We fix the issue by loading lib relatively inside dummy lib executables. * More exact assertions Sometimes I have the problem that I do some "print debugging" inside specs, and suddently the spec passes. This happens when the assertion is too relaxed, and the things I print make it match, specially when they are simple strings like "1.0" than can be easily be part of gem paths that I print for debugging. I fix this by making a more exact assertion. * Detect the correct shebang when ENV["RUBY"] is set * Relax assertion So that the spec passes even if another paths containing "ext" are in the load path. This works to fix a ruby-core issue, but it's a better assertion in general. We just want to know that the extension path was added. * Use folder structure independent path helper It should fix this spec for ruby-core. * Fix the last failing spec on ruby-core * Skip `bundle open <default_gem>` spec when no default gems
* Prefer exact ITEM to benchmarkNobuyoshi Nakada2019-08-181-1/+1
|