aboutsummaryrefslogtreecommitdiffstats
path: root/defs
Commit message (Collapse)AuthorAgeFilesLines
* Use `$(CHDIR)` so works with symlink [ci skip]Nobuyoshi Nakada2022-05-271-1/+1
|
* Revert "Stop rebuilding miniruby always [ci skip]"Nobuyoshi Nakada2022-05-271-1/+1
| | | | This reverts commit 2f5edfa47d06c9605a5a0aa3ad72d7fef4d44fa3.
* Stop rebuilding miniruby always [ci skip]Nobuyoshi Nakada2022-05-261-1/+1
|
* Rust YJITAlan Wu2022-04-271-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In December 2021, we opened an [issue] to solicit feedback regarding the porting of the YJIT codebase from C99 to Rust. There were some reservations, but this project was given the go ahead by Ruby core developers and Matz. Since then, we have successfully completed the port of YJIT to Rust. The new Rust version of YJIT has reached parity with the C version, in that it passes all the CRuby tests, is able to run all of the YJIT benchmarks, and performs similarly to the C version (because it works the same way and largely generates the same machine code). We've even incorporated some design improvements, such as a more fine-grained constant invalidation mechanism which we expect will make a big difference in Ruby on Rails applications. Because we want to be careful, YJIT is guarded behind a configure option: ```shell ./configure --enable-yjit # Build YJIT in release mode ./configure --enable-yjit=dev # Build YJIT in dev/debug mode ``` By default, YJIT does not get compiled and cargo/rustc is not required. If YJIT is built in dev mode, then `cargo` is used to fetch development dependencies, but when building in release, `cargo` is not required, only `rustc`. At the moment YJIT requires Rust 1.60.0 or newer. The YJIT command-line options remain mostly unchanged, and more details about the build process are documented in `doc/yjit/yjit.md`. The CI tests have been updated and do not take any more resources than before. The development history of the Rust port is available at the following commit for interested parties: https://github.com/Shopify/ruby/commit/1fd9573d8b4b65219f1c2407f30a0a60e537f8be Our hope is that Rust YJIT will be compiled and included as a part of system packages and compiled binaries of the Ruby 3.2 release. We do not anticipate any major problems as Rust is well supported on every platform which YJIT supports, but to make sure that this process works smoothly, we would like to reach out to those who take care of building systems packages before the 3.2 release is shipped and resolve any issues that may come up. [issue]: https://bugs.ruby-lang.org/issues/18481 Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> Co-authored-by: Noah Gibbs <the.codefolio.guy@gmail.com> Co-authored-by: Kevin Newton <kddnewton@gmail.com>
* Obey spec file locations to rubygemsNobuyoshi Nakada2022-04-071-1/+1
|
* Remove github and git related files from extracted bundled gemsNobuyoshi Nakada2022-03-311-0/+1
|
* Add a Module#const_added callbackJean Boussier2022-01-141-0/+1
| | | | | | | | | | | | [Feature #17881] Works similarly to `method_added` but for constants. ```ruby Foo::BAR = 42 # call Foo.const_added(:FOO) class Foo::Baz; end # call Foo.const_added(:Baz) Foo.autoload(:Something, "path") # call Foo.const_added(:Something) ```
* Get rid of building main again when test-bundled-gemsNobuyoshi Nakada2022-01-141-1/+1
|
* Run the prerequisites of test-bundled-gems in orderNobuyoshi Nakada2022-01-021-1/+6
|
* Remove unversioned phony target for pkgconfig file [Bug #18374]Nobuyoshi Nakada2021-12-041-0/+2
| | | | | It results in a circular dependency when `--with-ruby-pc=ruby.pc` is given. [ci skip]
* Fix circular dependencies specific to in-place build [Bug #18374]Nobuyoshi Nakada2021-12-041-4/+6
| | | | | | | | | | * Move the rubyspec running recipe after the rule for rubyspec C-API extension library, so that separate dummy recipe is not needed. * Add a dummy recipe for rubyspec.h before the rubyspec running recipe, so that the dependency of extensions do not fire the latter.
* Needs to update revision.h unless existing [ci skip]Nobuyoshi Nakada2021-12-021-0/+5
|
* Prune stale worktrees before checking out a new pull request [ci skip]Nobuyoshi Nakada2021-10-281-0/+1
|
* Fix rubyspec_capiext dependency and flagsNobuyoshi Nakada2021-08-301-2/+2
| | | | | - The file needed to link may be the import library. - Remove duplicate flags.
* Use proper suffixNobuyoshi Nakada2021-08-301-1/+1
|
* Use `empty` instead of NOOP in mk file to make it safer Yuta Saito2021-08-251-1/+1
| | | | | This would avoid unintentional use of the `NOOP` environment variable Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
* Fix build failure on macOS with --enable-sharedYuta Saito2021-08-251-0/+4
| | | | | | | ./spec/ruby/optional/capi/ext/array_spec.c can match with spec/%/ if using GNU Make under version 3.81. make command installed on macOS is 3.81, so ruby can't be built with default make on macOS with --enable-shared option since https://github.com/ruby/ruby/commit/bda56a03a625793cb3fd110458c3f7323d73705e
* Show verbose error messages when single pattern match failsKazuki Tsujimoto2021-08-151-0/+1
| | | | | | | [0] => [0, *, a] #=> [0] length mismatch (given 1, expected 2+) (NoMatchingPatternError) Ignore test failures of typeprof caused by this change for now.
* Disable debug flag for executable files when LTO [ci skip]Nobuyoshi Nakada2021-08-141-2/+6
| | | | | Get rid of tons of linker warnings that it could not find object file symbol for every symbols, when targeting darwin.
* Run only directories or *_spec.rb files only by mspec [Bug #18072]Nobuyoshi Nakada2021-08-101-1/+1
| | | | | Not to match *.c files under spec/ruby/optional/capi/ext, in the case of in-place build.
* Group commands on GitHub ActionsNobuyoshi Nakada2021-08-071-0/+5
|
* Make jobserver availableNobuyoshi Nakada2021-08-061-1/+1
|
* Build rubyspec CAPI extensionsNobuyoshi Nakada2021-08-051-0/+4
|
* Predefine recursive key IDNobuyoshi Nakada2021-07-271-0/+1
|
* Added intern_ids.rbNobuyoshi Nakada2021-07-271-10/+16
|
* Remove short options with argument [Bug #17870]Nobuyoshi Nakada2021-05-211-0/+1
| | | | | | Remove GNU make `-O` and `-W` options which are short but followed by an argument, so that `$mflags.set?(?n)` does not return `true` wrongly.
* mac: ignore SDKROOT at installationNobuyoshi Nakada2021-04-101-0/+4
|
* gmake.mk: renamed BUNDLED_GEMS as bundled-gemsNobuyoshi Nakada2020-12-021-3/+3
| | | | Hyphenated names are safe in GNU make.
* rubyspec-capiext: Use plain DLDFLAGS without flags for librubyNobuyoshi Nakada2020-11-221-2/+3
|
* Added rubyspec-capiext targetNobuyoshi Nakada2020-11-211-0/+10
| | | | This target builds extensions for rubyspec optional C-API tests.
* Fixed installation failure [Bug #17191]Nobuyoshi Nakada2020-09-291-1/+1
| | | | | | | Try update and extract bundled gems only when baseruby is available. It should be done only when installing from developemental build and not from the tarball, but it is not obvious to differentiate them.
* Escape `#` for GNU make 3Nobuyoshi Nakada2020-07-051-1/+1
|
* Skip comment and empty lines in gems/bundled_gems fileNobuyoshi Nakada2020-07-051-1/+1
|
* Removed duplicate targetNobuyoshi Nakada2020-06-251-1/+1
| | | | | | | While `spec/bundler` and `spec/bundler/` are treated different targets by GNU make 4, the same target by GNU make 3. The latter target, ending with a slash, was to run `test-bundler-parallel`, instead of `spec/bundler/%`.
* Run spec/bundler without a sub-makeNobuyoshi Nakada2020-06-101-2/+2
|
* spec/bundler must not be run by mspecNobuyoshi Nakada2020-06-101-0/+3
|
* Removed + token from single test runner recipes [ci skip]Nobuyoshi Nakada2020-06-091-3/+3
| | | | These test runners do not deal with `-n` make flag.
* Defaulted benchmark output to markdown with comarisonNobuyoshi Nakada2020-06-081-1/+1
|
* Run tests in more parallelNobuyoshi Nakada2020-06-061-0/+3
|
* Aligned test-bundler-parallel at the end of the test orderNobuyoshi Nakada2020-06-051-1/+1
|
* Pass MAKE value to configure for non-default name caseNobuyoshi Nakada2020-05-111-0/+1
| | | | GNU make does not export it by default.
* Added tooldir variableNobuyoshi Nakada2020-04-051-2/+2
|
* Ensure the cache directory to be shared existsNobuyoshi Nakada2020-04-021-1/+1
|
* Share download cache with bundlerNobuyoshi Nakada2020-03-311-0/+6
|
* Deal with bundled gems by BASERUBYNobuyoshi Nakada2020-03-281-1/+1
| | | | | | As the currently released/snapshot tarballs should contain the bundled gems extracted already, RUNRUBY is not required when building from them with GNU make.
* Update and extract for each gemNobuyoshi Nakada2020-03-131-3/+27
|
* `update-gems` should wait for `update-bundled_gems`Nobuyoshi Nakada2020-03-131-5/+2
|
* Add prepare-gems to download and extract bundled gemsNobuyoshi Nakada2020-03-121-5/+4
|
* config.status should be newer than config.cache if existsNobuyoshi Nakada2020-01-081-0/+2
|
* Fixed misspellingsNobuyoshi Nakada2019-12-202-2/+2
| | | | Fixed misspellings reported at [Bug #16437], only in ruby and rubyspec.