Commit graph

262 commits

Author SHA1 Message Date
Nobuyoshi Nakada
6b2d9ed2a5
Handle preperly comments in middle of lines in gems/bundled_gems 2025-08-12 16:04:57 +09:00
Hiroshi SHIBATA
be7b1164e6 Split autogenerated dependency to depend file from common.mk 2025-07-25 19:50:06 +09:00
Nobuyoshi Nakada
698cf146ac
Fetch only necessary commits of bundled gems 2025-06-09 23:41:13 +09:00
Nobuyoshi Nakada
7a56c31641
Revert "[Bug #21388] Make snapshots of gems"
This reverts commit e90282be7b, a commit miss.
2025-06-07 18:43:56 +09:00
Nobuyoshi Nakada
e90282be7b
[Bug #21388] Make snapshots of gems
If the revision of bundled gems is specified for ruby master (and
`git` is usable), checkout that revision and build a snapshot gem, and
use it for `test-spec` instead of the downloaded release version.
2025-06-07 18:41:36 +09:00
Alan Wu
92b218fbc3 YJIT: ZJIT: Allow both JITs in the same build
This commit allows building YJIT and ZJIT simultaneously, a "combo
build". Previously, `./configure --enable-yjit --enable-zjit` failed. At
runtime, though, only one of the two can be enabled at a time.

Add a root Cargo workspace that contains both the yjit and zjit crate.
The common Rust build integration mechanisms are factored out into
defs/jit.mk.

Combo YJIT+ZJIT dev builds are supported; if either JIT uses
`--enable-*=dev`, both of them are built in dev mode.

The combo build requires Cargo, but building one JIT at a time with only
rustc in release build remains supported.
2025-05-15 00:39:03 +09:00
Nobuyoshi Nakada
ed2806117a Do not let files depend on a phony target 2025-05-12 17:45:39 +09:00
Nobuyoshi Nakada
b48b841378 digest.so needs ruby/digest.h which is installed by build-ext 2025-05-12 02:50:25 +09:00
Nobuyoshi Nakada
204740b73f Revert "Try removing building C API specs in CRuby makefiles entirely"
This reverts commit 2a9236366d.
spec/ruby/optional/capi/spec_helper.rb doesn't work well for mingw.
2025-05-12 02:50:25 +09:00
Benoit Daloze
2a9236366d Try removing building C API specs in CRuby makefiles entirely
* Since it does not work when using some configure options such as:
  .../configure --with-ext=-test-/cxxanyargs,+ --enable-shared
  as the CI does.
* It also duplicates the logic of spec/ruby/optional/capi/spec_helper.rb incorrectly.
  ruby/spec maintainers have no experience and no interest in dealing with these complicated CRuby build system issues.
  We asked help on the CRuby Slack and nobody helped so far.
2025-05-09 23:22:15 +02:00
Andrew Konchin
29be534fad Try fixing building C API specs with make
* But it doesn't work because there is no .ext/include/ruby/digest.h
  when using .../configure --with-ext=-test-/cxxanyargs,+ --enable-shared
  as the CI does.
2025-05-09 23:22:15 +02:00
Takashi Kokubun
82606faaea Add zjit.mk 2025-04-18 21:52:55 +09:00
Nobuyoshi Nakada
0d44e23831
Prevent test-bundled-gems outputs from mixing
Run test-bundled-gems-run and test-bundled-gems-spec sequentially.
2024-05-26 22:17:57 +09:00
Nobuyoshi Nakada
e937878883
Revert "Update revision.h if branch unmatch not only revision"
This reverts commit 5a332940ed.
Something does not work well on Github Actions.
2024-05-09 01:02:59 +09:00
Nobuyoshi Nakada
5a332940ed
Update revision.h if branch unmatch not only revision [ci skip] 2024-05-08 21:39:32 +09:00
Nobuyoshi Nakada
3169c15863
Fix rubyspec-capiext dependency
Not to build the rubyspec-capiext extension libraries again on the
next build after the build all extensions get built, ensure these
extensions are up to date when recursively building from exts.mk.
2024-04-19 14:12:41 +09:00
Nobuyoshi Nakada
53a8ad151b
Escape colons in pre-commit dependency [ci skip]
Colons are special in Makefiles.
2024-04-16 15:09:56 +09:00
Nobuyoshi Nakada
0fb39ab1b9
Clean intermediate files and debug info for each target
By replacing `ALLOBJS` suffix with intermediate file suffixes instead
of roughly removing by wildcards.  Made `cleanlibs` append `.dSYM`
suffix for each word in `TARGET_SO`, not the end of the entire list.
2024-03-10 22:12:00 +09:00
Nobuyoshi Nakada
2c787bf90f
Run POSTLINK for rubyspec CAPIEXT objects 2024-03-04 23:25:51 +09:00
Nobuyoshi Nakada
9cf1c2bb0c
Refresh NEWS.md at starting new development [ci skip] 2023-12-25 20:10:37 +09:00
Kazuhiro NISHIYAMA
0fb10074e1 Fix error when gems/src is read-only
When I shared srcdir as read-only in lima-vm,
`make install` causes following error:

```
Update rbs to 33813a60752624d58dfe5ae770b39bfaf29fbaf1
error: cannot open .git/FETCH_HEAD: Read-only file system
```

I cannot find any ignore option for `git checkout --detach`
when already checked out. So I add `if`.
2023-10-11 13:32:54 +09:00
Nobuyoshi Nakada
1527246a7e
Download Unicode files once [ci skip] 2023-09-26 02:09:57 +09:00
Nobuyoshi Nakada
2b41df2477 .NOTPARALLEL with prerequisites needs recent GNU Make
GNU Make prior to 4.4 just ignores the prerequisites, and runs
everything in serial.
2023-09-21 12:18:41 +09:00
Nobuyoshi Nakada
e22086bb6a
Enable .NOTPARALLEL on ripper_srcs
And add special treats only for old GNU make.
2023-09-13 12:11:43 +09:00
Nobuyoshi Nakada
2cc32ad67c
Split commit recipe and pass more macros 2023-09-11 11:04:33 +09:00
Nobuyoshi Nakada
f339937abb RJIT: Remove macros inherited from MJIT but no longer used 2023-08-17 08:33:52 +09:00
Nobuyoshi Nakada
b76c2ec005
Use :: form workflow commands 2023-08-15 23:30:40 +09:00
Nobuyoshi Nakada
2a3acbc420
Fix test and precheck order for old GNU Make 2023-08-14 11:30:05 +09:00
Nobuyoshi Nakada
907560f5dc
Fix test-bundler dependencies 2023-08-11 15:23:48 +09:00
Nobuyoshi Nakada
8fbb79f49e
Fix order of test-syntax-suggest-prepare for old GNU Make 2023-08-11 14:47:20 +09:00
Nobuyoshi Nakada
52722ea37b
Extract common variables 2023-07-30 19:38:18 +09:00
Nobuyoshi Nakada
d516910b61
Serially update only the ripper source, even with old GNU make 2023-07-10 16:36:03 +09:00
Yuichiro Kaneko
a1b01e7701
Use Lrama LALR parser generator instead of Bison
https://bugs.ruby-lang.org/issues/19637

Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2023-05-12 18:25:10 +09:00
Nobuyoshi Nakada
a4cc3fcbd2
Replace arch_flags for universal build [ci skip] 2023-04-08 20:31:51 +09:00
Hiroshi SHIBATA
59905883c4 BundledGem.dummy_spec needs to checkout revision after cloning repository.
The current BundledGem.dummy_spec always called from master branch.
  It caused to CI faiulres like
  20230305T001003Z.fail.html.gz
2023-03-08 17:48:43 +09:00
Takashi Kokubun
2e875549a9 s/MJIT/RJIT/ 2023-03-06 23:44:01 -08:00
Takashi Kokubun
31f4b2d86b
Drop obsoleted MJIT header (#7458)
RJIT doesn't need this.
2023-03-06 21:41:48 -08:00
Nobuyoshi Nakada
241c4cfdd4 Move dummy gemspec file creation for extract-gems-sequential 2023-02-22 02:07:59 +09:00
Nobuyoshi Nakada
0a9efe8701 Use git directories instead of gemspec files as dependency
Minitest repository does not commit its gemspec file.
2023-02-22 02:07:59 +09:00
Yusuke Endoh
8eaa346620 No validation for bundled gems
7305356097
```
WARNING:  open-ended dependency on irb (>= 1.5.0) is not recommended
  if irb is semantically versioned, use:
    add_runtime_dependency 'irb', '~> 1.5', '>= 1.5.0'
WARNING:  open-ended dependency on reline (>= 0.3.1) is not recommended
  if reline is semantically versioned, use:
    add_runtime_dependency 'reline', '~> 0.3', '>= 0.3.1'
WARNING:  See http://guides.rubygems.org/specification-reference/ for help
/usr/lib/ruby/2.7.0/rubygems/specification_policy.rb:418:in `error': specification has warnings (Gem::InvalidSpecificationException)
```
2023-02-19 21:06:13 +09:00
Nobuyoshi Nakada
9821f6d0e5
Override release date in Makefile if possible 2023-02-13 15:12:54 +09:00
Nobuyoshi Nakada
63e1769b16
Add TAGS rule [ci skip] 2023-02-08 18:00:05 +09:00
Nobuyoshi Nakada
9794e49c88 Link RUBYSPEC_CAPIEXT against the built library 2023-01-26 16:31:08 +09:00
Nobuyoshi Nakada
be6a347ace Need gemspec files instead of cloned directories 2023-01-26 12:50:39 +09:00
Hiroshi SHIBATA
7eef4547b1 Fixed clone name 2023-01-26 12:50:39 +09:00
Nobuyoshi Nakada
7a4f7fc14d Use timestamp files to track test revision of bundled gems 2023-01-26 12:50:39 +09:00
Nobuyoshi Nakada
17f5631c6e [Bug #19340] Fix bundle gems with test revision
Build temporary gem package from cloned repository if test revision is
set.
2023-01-26 12:50:39 +09:00
Nobuyoshi Nakada
569fbf229b
Run after-update in the same main make process [ci skip] 2023-01-20 00:21:53 +09:00
Nobuyoshi Nakada
ee6e4d63df
Extract only one revision in header [ci skip]
Both of `$(srcdir)/revision.h` and `revision.h` exist because they are
the same file when in-place build.
2023-01-05 15:16:29 +09:00
Nobuyoshi Nakada
c6c7f5900f Test bundler and bundled gems by exam 2022-12-28 09:15:31 +09:00