Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
11c8bad
CI: Also show errors in rust-warnings.yml [ci skip]
XrXr Aug 15, 2025
26776ee
ZJIT: Remove unused HIR test code (#14248)
tekknolagi Aug 16, 2025
7f398a3
ZJIT: Make `opnd!()` work on both `&InsnId` and `InsnId`
XrXr Jul 22, 2025
db3d82b
ZJIT: Guide WB skipping for Insn::SetLocal using HIR type info
XrXr Jul 22, 2025
87c4ebd
Fix tests using assert_raise_with_message on US-ASCII systems
peterzhu2118 Aug 16, 2025
a79600d
CI: windows: Use possibly faster device for TMP/TEMP
nobu Aug 16, 2025
4d0836d
CI: windows: Skip rebuilding vcpkg packages when cache restored
nobu Aug 16, 2025
d96991c
[DOC] Tweaks for String#hex
BurdetteLamar Aug 16, 2025
9b40837
[DOC] Tweaks for String#include?
BurdetteLamar Aug 16, 2025
e0b2e2f
[DOC] Tweaks for String#index
BurdetteLamar Aug 16, 2025
ad04745
[DOC] Tweaks for GC.stat_heap
BurdetteLamar Aug 16, 2025
7c28fb2
[Bug #21546] Make the generated pc file relocatable
nobu Aug 17, 2025
504b963
Fix dependencies of generated prism sources for NMake
nobu Jul 23, 2025
90cb2bb
Gererate prism source files dependencies from template.rb
nobu Jul 30, 2025
449cc25
Use `File` instead of `IO`, for read/write singleton methods
nobu Aug 1, 2025
ddbfe35
Use autogen.sh if exists
nobu Aug 1, 2025
3c1244a
Define targets for packages also in common.mk
nobu Aug 1, 2025
75a968d
Add the recipe to fix/update depend files
nobu Aug 1, 2025
6e10267
[rubygems/rubygems] Removed to workaround for Bundler 2.2.
hsbt Aug 6, 2025
d4bf58b
[rubygems/rubygems] Don't worry about missing Makefile.
ioquatix Jul 27, 2025
3c669e2
[rubygems/rubygems] Remove unnecessary rubygems filters
deivid-rodriguez Aug 8, 2025
a6aa8e6
[rubygems/rubygems] Fix spec no longer run since rubygems timeout was…
deivid-rodriguez Aug 8, 2025
2e98328
[rubygems/rubygems] Use a rubygems filter for the timeout spec
deivid-rodriguez Aug 8, 2025
f074f82
[rubygems/rubygems] Fix `bundle cache --no-all` not printing a deprec…
deivid-rodriguez Aug 8, 2025
8d5f00c
[rubygems/rubygems] Fix Bundler printing more flags than actually pas…
deivid-rodriguez Aug 8, 2025
8136039
[rubygems/rubygems] Introduce `bundle list --format=json`
schneems May 29, 2025
bcc287f
[rubygems/rubygems] Fix `bundle update foo` not upgrading foo to late…
deivid-rodriguez Aug 1, 2025
679e8b1
[rubygems/rubygems] Fix `bundle show --verbose` and recommend it as a…
deivid-rodriguez Aug 8, 2025
9983d2b
[rubygems/rubygems] Delay pending spec
deivid-rodriguez Aug 8, 2025
302c5ae
[rubygems/rubygems] Consistently use banner of desc when defining CLI…
deivid-rodriguez Aug 11, 2025
12c200a
[rubygems/rubygems] Improve `bundle config` documentation
deivid-rodriguez Aug 11, 2025
f3d62db
[rubygems/rubygems] Improve `doctor` CLI flag documentation
deivid-rodriguez Aug 11, 2025
4a3a544
[rubygems/rubygems] Improve `bundle plugin` documentation
deivid-rodriguez Aug 11, 2025
d04f187
[rubygems/rubygems] Refactor git specs
deivid-rodriguez Jul 30, 2025
50c1fae
[rubygems/rubygems] Fix incorrect error message capitalization
deivid-rodriguez Jul 30, 2025
8576da4
[rubygems/rubygems] Enforce checksums strictly for registry gems
deivid-rodriguez Jul 30, 2025
7125f76
[rubygems/rubygems] Use spaces around optional parameter values
deivid-rodriguez Aug 11, 2025
f0ee763
Merge specs checking CLI flags and subcommands are documented
deivid-rodriguez Aug 11, 2025
5be3ebb
[ruby/json] Remove trailing spaces [ci skip]
nobu Aug 7, 2025
0de695e
[ruby/json] Append newline at EOF [ci skip]
nobu Aug 8, 2025
e3ce56c
Fix typos
dduugg Aug 13, 2025
7ddc53b
Exclude prism/generate-srcs.mk.rb from sync targets of prism
hsbt Aug 18, 2025
70378db
Remove impossible case in rb_raw_obj_info_buitin_type for array
peterzhu2118 Aug 15, 2025
ef3fdb0
Move flags for arrays out of if statements in rb_raw_obj_info_buitin_…
peterzhu2118 Aug 15, 2025
094fa3e
Output array shared root flag in rb_raw_obj_info_buitin_type
peterzhu2118 Aug 15, 2025
cb31be5
ZJIT: Codegen for NewHash (#14059)
corona10 Aug 18, 2025
d330bcf
ZJIT: Make sure output operands are not VRegs (#14188)
tekknolagi Aug 18, 2025
5b3c87a
ZJIT: Make jit.get_opnd noisily fail
tekknolagi Aug 15, 2025
ad9fda7
ZJIT: Don't return Option from codegen helper functions
tekknolagi Aug 15, 2025
1e42f9e
ZJIT: Remove empty returns from control instructions in codegen
tekknolagi Aug 15, 2025
3c2cff6
ZJIT: Don't return Option from side exits
tekknolagi Aug 15, 2025
d2a53c7
ZJIT: Don't return Option from counter increment
tekknolagi Aug 15, 2025
f3dbf7d
ZJIT: Make a fix a bunch of other cases using Option
tekknolagi Aug 15, 2025
c663fe1
ZJIT: Make Defined retain its Snapshot
tekknolagi Aug 15, 2025
3322423
ZJIT: Refine type of Defined
tekknolagi Aug 15, 2025
68c7f10
ZJIT: Temporarily disable buggy defined? codegen
tekknolagi Aug 15, 2025
f38ba24
ZJIT: Handle ISEQ moves (#14250)
k0kubun Aug 18, 2025
0df9a46
Increase timeout on slow tests (#14264)
tekknolagi Aug 18, 2025
e6f3334
Use mark and move for iseqw
peterzhu2118 Aug 15, 2025
7d2b724
Add missing writebarrier on complex obj dup
jhawthorn Aug 7, 2025
0b098a9
Add missing write barriers to Random
jhawthorn Aug 12, 2025
6f472c8
ZJIT: Fix BorrowError on --zjit-dump-disasm (#14267)
k0kubun Aug 18, 2025
306d508
Don't allow looking at the shape ID of immediates (#14266)
tekknolagi Aug 18, 2025
f5efd0e
[ruby/syntax_suggest] bundle exec standardrb --fix
hsbt Aug 19, 2025
d0d7f55
Gererate prism source files dependencies from template.rb
nobu Aug 1, 2025
9fedae9
Add missing writebarrier to rb_func_proc_dup
jhawthorn Jun 15, 2025
6f1bb06
Change TestHash#test_inspect to use EnvUtil.with_default_external
peterzhu2118 Aug 18, 2025
8740985
Change TestM17N#test_string_inspect_encoding to use EnvUtil.with_defa…
peterzhu2118 Aug 18, 2025
f3d95fa
Change TestM17N#test_object_utf16_32_inspect to use EnvUtil.with_defa…
peterzhu2118 Aug 18, 2025
89321c6
Change TestM17N#test_object_inspect_external to use EnvUtil.with_defa…
peterzhu2118 Aug 18, 2025
6281806
Change TestString#test_ascii_incomat_inspect to use EnvUtil.with_defa…
peterzhu2118 Aug 18, 2025
fc5ee24
ZJIT: Compile toregexp (#14200)
composerinteralia Aug 19, 2025
6fe4ed5
ZJIT: Remove more Option from codegen (#14265)
tekknolagi Aug 19, 2025
3ff1ca0
[ruby/openssl] Add missing write barriers in X509
jhawthorn Aug 12, 2025
da01faa
ZJIT: Remove try_num_bits (#14272)
k0kubun Aug 19, 2025
c1f16fc
Fix special consts unit tests for i686 (#14271)
tekknolagi Aug 19, 2025
e639aaa
ZJIT: Prepare for rb_range_new() calling <=>
XrXr Aug 19, 2025
6b197de
ZJIT: Mark Insn::NewRange as having side effects
XrXr Aug 19, 2025
b3053cb
[DOC] Tweaks for Object#hash
BurdetteLamar Aug 19, 2025
a396d94
Restore prism/srcs.mk files
hsbt Aug 20, 2025
f7687c4
Enable Dependabot updates for vcpkg
JamieMagee Aug 20, 2025
3443a0b
Bump actions/cache from 4.2.3 to 4.2.4
dependabot[bot] Aug 20, 2025
ba9e787
Revert the leftover of 90cb2bb871ff5d6d4d0dfbed2ee352c7ff818a87
nobu Aug 20, 2025
609fe7e
Bump lewagon/wait-on-check-action
dependabot[bot] Aug 20, 2025
683dd92
`cd` using the physical directory from symlinked build directory
nobu Aug 20, 2025
9d484e3
Fix indentation in clear_method_cache_by_id_in_class [ci skip]
peterzhu2118 Aug 20, 2025
5c96bbf
Avoid spawning thread for trivial getnameinfo calls
jhawthorn Aug 20, 2025
2c7ec3d
Fix race condition in method invalidation for Ractors
peterzhu2118 Aug 20, 2025
a7a026a
YJIT: Improve locals names (#14285)
st0012 Aug 20, 2025
19ad72d
ZJIT: Remove unnecessary option return type on gen_branch_params (#14…
st0012 Aug 20, 2025
426cdb2
.gdbinit: rb_shape_get_shape no longer exists
k0kubun Aug 20, 2025
6018967
Bump github.com/microsoft/vcpkg
dependabot[bot] Aug 20, 2025
feb8331
Atomic CC table set in cache_callable_method_entry
jhawthorn Aug 20, 2025
f2b1017
Add `Math.log1p` and `Math.expm1`
mame Aug 2, 2025
d318dc6
Add NEWS for Math.log1p and Math.expm1
mame Aug 21, 2025
a837ec0
Drop a workaround for CentOS 6
nobu Aug 21, 2025
b6bf44a
variable.c: handle cleared fields_obj in genfields cache
byroot Aug 21, 2025
027f4aa
[DOC] Tweaks for String#hash (#14253)
BurdetteLamar Aug 21, 2025
ad4b4f2
Remove dead rb_obj_is_main_ractor
peterzhu2118 Aug 18, 2025
18aa730
ZJIT: Refactor `gen_new_hash` (#14293)
st0012 Aug 21, 2025
b0c80c2
Remove unused SPECIAL_CONST_SHAPE_ID
etiennebarrie Aug 21, 2025
acb29f7
Do not respect ruby2_keywords on method/proc with post arguments
jeremyevans May 30, 2025
7ac16ef
Adjust snt < max_cpu calculation
jhawthorn Aug 20, 2025
f2715af
ZJIT: Allocate register for VRegs that begin and end at the same inde…
tekknolagi Aug 21, 2025
5076e88
ZJIT: Fill nils before function_stub_hit exit (#14294)
k0kubun Aug 21, 2025
8ad290b
YJIT: Fix BSD make build. Remove ZJIT stuff
XrXr Aug 21, 2025
2ee5a89
Make `vm_search_method` return a cme instead of a cc (#14299)
st0012 Aug 21, 2025
2c6363c
[DOC] Write up NEWS entries for JITs (#14301)
k0kubun Aug 21, 2025
823d55a
Add lock-free fastpath to callable_method_entry...
jhawthorn Aug 21, 2025
6fbe2dd
[DOC] Tweaks for String#insert
BurdetteLamar Aug 21, 2025
34cca18
Add more assertions to default.c
peterzhu2118 Aug 21, 2025
e3e8725
Fix issue where a new GC could be started during a GC
peterzhu2118 Aug 21, 2025
f378052
Fixes to encoding/transcoding for ractors.
luke-gruber Aug 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gdbinit
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ define rp
printf "%sT_OBJECT%s: ", $color_type, $color_end
print ((struct RObject *)($arg0))->basic
if ($flags & ROBJECT_EMBED)
print/x *((VALUE*)((struct RObject*)($arg0))->as.ary) @ (rb_shape_get_shape($arg0)->capacity)
print/x *((VALUE*)((struct RObject*)($arg0))->as.ary) @ (RSHAPE_CAPACITY(rb_obj_shape_id($arg0)))
else
print (((struct RObject *)($arg0))->as.heap)
if (((struct RObject*)($arg0))->as.heap.numiv) > 0
Expand Down
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,7 @@ updates:
directory: '/yjit'
schedule:
interval: 'daily'
- package-ecosystem: 'vcpkg'
directory: '/'
schedule:
interval: 'daily'
6 changes: 1 addition & 5 deletions .github/workflows/check_dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,7 @@ jobs:
- name: Run configure
run: ./configure -C --disable-install-doc --disable-rubygems --with-gcc 'optflags=-O0' 'debugflags=-save-temps=obj -g'

- run: make all golf

- run: ./goruby -veh

- run: ruby tool/update-deps --fix
- run: make fix-depends

- run: git diff --no-ext-diff --ignore-submodules --exit-code

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dependabot_automerge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
id: metadata

- name: Wait for status checks
uses: lewagon/wait-on-check-action@31f07a800aa1ba8518509dc8561cdf5a891deb4b # v1.4.0
uses: lewagon/wait-on-check-action@0dceb95e7c4cad8cc7422aee3885998f5cab9c79 # v1.4.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ github.event.pull_request.head.sha || github.sha }}
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/rust-warnings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@ jobs:
run: rustup default beta

- name: Rust warnings
shell: bash
run: |
set -euo pipefail
set -eu
cargo check --quiet --all-features --message-format=json \
| jq -r 'select(.reason == "compiler-message" and .message.level == "warning") | .message.rendered' \
> warnings.txt
cat warnings.txt
! grep --quiet '[^[:space:]]' warnings.txt
| jq -r 'select(.message.level == "warning" or .message.level == "error") | .message.rendered' \
| tee messages.txt
(exit "${PIPESTATUS[0]}") && ! grep --quiet '[^[:space:]]' messages.txt
5 changes: 5 additions & 0 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,11 @@ jobs:
if: ${{ matrix.test_task == 'check' && matrix.skipped_tests }}
continue-on-error: ${{ matrix.continue-on-skipped_tests || false }}

- name: test-pc
run: |
DESTDIR=${RUNNER_TEMP-${TMPDIR-/tmp}}/installed
$SETARCH make test-pc "DESTDIR=$DESTDIR"

- uses: ./.github/actions/slack
with:
label: ${{ matrix.test_task }} ${{ matrix.configure }}${{ matrix.arch }}
Expand Down
12 changes: 7 additions & 5 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@ jobs:
shell: pwsh

- name: Restore vcpkg artifact
uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
id: restore-vcpkg
uses: actions/cache/restore@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: src\vcpkg_installed
key: windows-${{ matrix.os }}-vcpkg-${{ hashFiles('src/vcpkg.json') }}
Expand All @@ -94,13 +95,14 @@ jobs:
run: |
vcpkg install --vcpkg-root=%USERPROFILE%\scoop\apps\vcpkg\current
working-directory: src
if: ${{ ! steps.restore-vcpkg.outputs.cache-hit }}

- name: Save vcpkg artifact
uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
uses: actions/cache/save@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: src\vcpkg_installed
key: windows-${{ matrix.os }}-vcpkg-${{ hashFiles('src/vcpkg.json') }}
if: ${{ github.ref_name == 'master' || startsWith(github.ref_name, 'ruby_') }}
if: ${{ ! steps.restore-vcpkg.outputs.cache-hit && (github.ref_name == 'master' || startsWith(github.ref_name, 'ruby_')) }}

- name: setup env
# Available Ruby versions: https://github.com/actions/runner-images/blob/main/images/windows/Windows2019-Readme.md#ruby
Expand All @@ -113,8 +115,8 @@ jobs:
-arch=${{ matrix.target || 'amd64' }} ^
${{ matrix.vcvars && '-vcvars_ver=' || '' }}${{ matrix.vcvars }}
nmake -f nul
set TMP=%USERPROFILE%\AppData\Local\Temp
set TEMP=%USERPROFILE%\AppData\Local\Temp
set TMP=%RUNNER_TEMP%
set TEMP=%RUNNER_TEMP%
set MAKEFLAGS=l
set /a TEST_JOBS=(15 * %NUMBER_OF_PROCESSORS% / 10) > nul
set RUBY_OPT_DIR=%GITHUB_WORKSPACE:\=/%/src/vcpkg_installed/%VCPKG_DEFAULT_TRIPLET%
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,7 @@ lcov*.info
/prism/prettyprint.c
/prism/serialize.c
/prism/token_type.c
/prism/srcs.mk

# tool/update-NEWS-gemlist.rb
/bundled_gems.json
Expand Down
21 changes: 21 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ Note: We're only listing outstanding class updates.
* `IO.select` accepts +Float::INFINITY+ as a timeout argument.
[[Feature #20610]]

* Math

* `Math.log1p` and `Math.expm1` are added. [[Feature #21527]]

* Socket

* `Socket.tcp` & `TCPSocket.new` accepts `open_timeout` as a keyword argument to specify
Expand Down Expand Up @@ -239,6 +243,22 @@ The following bundled gems are updated.

## JIT

* YJIT
* YJIT stats
* `ratio_in_yjit` no longer works in the default build.
Use `--enable-yjit=stats` on `configure` to enable it on `--yjit-stats`.
* Add `invalidate_everything` to default stats, which is
incremented when every code is invalidated by TracePoint.
* Add `mem_size:` and `call_threshold:` options to `RubyVM::YJIT.enable`.
* ZJIT
* Add an experimental method-based JIT compiler.
Use `--enable-zjit` on `configure` to enable the `--zjit` support.
* As of Ruby 3.5.0-preview2, ZJIT is not yet ready for speeding up most benchmarks.
Please refrain from evaluating ZJIT just yet. Stay tuned for the Ruby 3.5 release.
* RJIT
* `--rjit` is removed. We will move the implementation of the third-party JIT API
to the [ruby/rjit](https://github.com/ruby/rjit) repository.

[Feature #17473]: https://bugs.ruby-lang.org/issues/17473
[Feature #18455]: https://bugs.ruby-lang.org/issues/18455
[Feature #19908]: https://bugs.ruby-lang.org/issues/19908
Expand All @@ -254,3 +274,4 @@ The following bundled gems are updated.
[Feature #21287]: https://bugs.ruby-lang.org/issues/21287
[Feature #21347]: https://bugs.ruby-lang.org/issues/21347
[Feature #21360]: https://bugs.ruby-lang.org/issues/21360
[Feature #21527]: https://bugs.ruby-lang.org/issues/21527
27 changes: 27 additions & 0 deletions bootstraptest/test_ractor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1573,6 +1573,33 @@ class C8; def self.foo = 17; end
rs.map{|r| r.value} == Array.new(RN){n}
}

# check method cache invalidation
assert_equal 'true', %q{
class Foo
def hello = nil
end

r1 = Ractor.new do
1000.times do
class Foo
def hello = nil
end
end
end

r2 = Ractor.new do
1000.times do
o = Foo.new
o.hello
end
end

r1.value
r2.value

true
}

# check experimental warning
assert_match /\Atest_ractor\.rb:1:\s+warning:\s+Ractor is experimental/, %q{
Warning[:experimental] = $VERBOSE = true
Expand Down
92 changes: 13 additions & 79 deletions common.mk
Original file line number Diff line number Diff line change
Expand Up @@ -205,83 +205,6 @@ $(PRISM_BUILD_DIR)/.time $(PRISM_BUILD_DIR)/util/.time:
$(Q) $(MAKEDIRS) $(@D)
@$(NULLCMD) > $@

main: $(srcdir)/lib/prism/compiler.rb
srcs: $(srcdir)/lib/prism/compiler.rb
$(srcdir)/lib/prism/compiler.rb: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/lib/prism/compiler.rb.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb lib/prism/compiler.rb $(srcdir)/lib/prism/compiler.rb

main: $(srcdir)/lib/prism/dispatcher.rb
srcs: $(srcdir)/lib/prism/dispatcher.rb
$(srcdir)/lib/prism/dispatcher.rb: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/lib/prism/dispatcher.rb.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb lib/prism/dispatcher.rb $(srcdir)/lib/prism/dispatcher.rb

main: $(srcdir)/lib/prism/dsl.rb
srcs: $(srcdir)/lib/prism/dsl.rb
$(srcdir)/lib/prism/dsl.rb: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/lib/prism/dsl.rb.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb lib/prism/dsl.rb $(srcdir)/lib/prism/dsl.rb

main: $(srcdir)/lib/prism/inspect_visitor.rb
srcs: $(srcdir)/lib/prism/inspect_visitor.rb
$(srcdir)/lib/prism/inspect_visitor.rb: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/lib/prism/inspect_visitor.rb.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb lib/prism/inspect_visitor.rb $(srcdir)/lib/prism/inspect_visitor.rb

main: $(srcdir)/lib/prism/mutation_compiler.rb
srcs: $(srcdir)/lib/prism/mutation_compiler.rb
$(srcdir)/lib/prism/mutation_compiler.rb: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/lib/prism/mutation_compiler.rb.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb lib/prism/mutation_compiler.rb $(srcdir)/lib/prism/mutation_compiler.rb

main: $(srcdir)/lib/prism/node.rb
srcs: $(srcdir)/lib/prism/node.rb
$(srcdir)/lib/prism/node.rb: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/lib/prism/node.rb.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb lib/prism/node.rb $(srcdir)/lib/prism/node.rb

main: $(srcdir)/lib/prism/reflection.rb
srcs: $(srcdir)/lib/prism/reflection.rb
$(srcdir)/lib/prism/reflection.rb: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/lib/prism/reflection.rb.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb lib/prism/reflection.rb $(srcdir)/lib/prism/reflection.rb

main: $(srcdir)/lib/prism/serialize.rb
srcs: $(srcdir)/lib/prism/serialize.rb
$(srcdir)/lib/prism/serialize.rb: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/lib/prism/serialize.rb.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb lib/prism/serialize.rb $(srcdir)/lib/prism/serialize.rb

main: $(srcdir)/lib/prism/visitor.rb
srcs: $(srcdir)/lib/prism/visitor.rb
$(srcdir)/lib/prism/visitor.rb: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/lib/prism/visitor.rb.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb lib/prism/visitor.rb $(srcdir)/lib/prism/visitor.rb

srcs: prism/api_node.c
prism/api_node.c: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/ext/prism/api_node.c.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb ext/prism/api_node.c $@

srcs: prism/ast.h
prism/ast.h: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/include/prism/ast.h.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb include/prism/ast.h $@

srcs: prism/diagnostic.c
prism/diagnostic.c: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/src/diagnostic.c.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb src/diagnostic.c $@

srcs: prism/diagnostic.h
prism/diagnostic.h: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/include/prism/diagnostic.h.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb include/prism/diagnostic.h $@

srcs: prism/node.c
prism/node.c: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/src/node.c.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb src/node.c $@

srcs: prism/prettyprint.c
prism/prettyprint.c: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/src/prettyprint.c.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb src/prettyprint.c $@

srcs: prism/serialize.c
prism/serialize.c: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/src/serialize.c.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb src/serialize.c $@

srcs: prism/token_type.c
prism/token_type.c: $(PRISM_SRCDIR)/config.yml $(PRISM_SRCDIR)/templates/template.rb $(PRISM_SRCDIR)/templates/src/token_type.c.erb
$(Q) $(BASERUBY) $(PRISM_SRCDIR)/templates/template.rb src/token_type.c $@

EXPORTOBJS = $(DLNOBJ) \
localeinit.$(OBJEXT) \
loadpath.$(OBJEXT) \
Expand Down Expand Up @@ -797,7 +720,8 @@ clean-srcs-local::
realclean-srcs-local:: clean-srcs-local
$(Q)$(CHDIR) $(srcdir) && $(RM) \
parse.c parse.h lex.c enc/trans/newline.c $(PRELUDES) revision.h \
id.c id.h probes.dmyh configure aclocal.m4 tool/config.guess tool/config.sub gems/*.gem \
id.c id.h probes.dmyh configure aclocal.m4 tool/config.guess tool/config.sub \
$(PRISM_SRCDIR)/srcs.mk gems/*.gem \
|| $(NULLCMD)

clean-srcs-ext::
Expand Down Expand Up @@ -1290,7 +1214,6 @@ incs: $(INSNS) {$(VPATH)}node_name.inc {$(VPATH)}known_errors.inc \
{$(VPATH)}vm_call_iseq_optimized.inc $(srcdir)/revision.h \
$(REVISION_H) \
$(UNICODE_DATA_HEADERS) $(ENC_HEADERS) \
$(srcs_vpath)prism/ast.h $(srcs_vpath)prism/diagnostic.h \
{$(VPATH)}id.h {$(VPATH)}probes.dmyh

insns: $(INSNS)
Expand Down Expand Up @@ -1379,6 +1302,11 @@ $(REVISION_H)$(yes_baseruby:yes=~disabled~):
# uncommon.mk: $(REVISION_H)
# $(MKFILES): $(REVISION_H)

# $(common_mk_includes) is set by config.status or GNUmakefile
common_mk__$(gnumake:yes=artifact)_ = uncommon.mk
common_mk_$(gnumake)_artifact_ = $(MKFILES)
$(common_mk__artifact_): $(srcdir)/common.mk $(common_mk_includes)

ripper_srcs: $(RIPPER_SRCS)

$(RIPPER_SRCS): $(srcdir)/parse.y $(srcdir)/defs/id.def
Expand Down Expand Up @@ -1915,6 +1843,9 @@ clean-gems:

CLEAN_CACHE = clean-extlibs

prepare-package: prereq after-update
clean-cache: $(CLEAN_CACHE)

info: info-program info-libruby_a info-libruby_so info-arch
info-program: PHONY
@echo PROGRAM=$(PROGRAM)
Expand Down Expand Up @@ -2046,3 +1977,6 @@ help: PHONY

$(CROSS_COMPILING:yes=)builtin.$(OBJEXT): {$(VPATH)}mini_builtin.c
$(CROSS_COMPILING:yes=)builtin.$(OBJEXT): {$(VPATH)}miniprelude.c

!include $(srcdir)/prism/srcs.mk
!include $(srcdir)/depend
24 changes: 7 additions & 17 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -1680,21 +1680,6 @@ AS_IF([test "$rb_cv_func_weak" != x], [
AC_DEFINE(HAVE_FUNC_WEAK)
])

AC_CACHE_CHECK([for __attribute__((__deprecated__(msg))) in C++],
rb_cv_CentOS6_CXX_workaround,
RUBY_WERROR_FLAG([
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[],
[__attribute__((__deprecated__("message"))) int conftest(...);])],
[rb_cv_CentOS6_CXX_workaround=yes],
[rb_cv_CentOS6_CXX_workaround=no])
AC_LANG_POP()]))
AS_IF([test "$rb_cv_CentOS6_CXX_workaround" != no],[
AC_DEFINE([RUBY_CXX_DEPRECATED(msg)],
[__attribute__((__deprecated__(msg)))])])

AC_CACHE_CHECK([for std::nullptr_t], rb_cv_CXX_nullptr, [
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE(
Expand Down Expand Up @@ -4698,8 +4683,12 @@ AC_CONFIG_FILES(Makefile:template/Makefile.in, [
sed '/^MISSING/s/\$U\././g;/^VCS *=/s#@VCS@#'"$VCS"'#;/^VCSUP *=/s#@VCSUP@#'"$VCSUP"'#' Makefile
echo; test x"$EXEEXT" = x || echo 'miniruby: miniruby$(EXEEXT)'
AS_IF([test "$gnumake" != yes], [
echo ['$(MKFILES): $(srcdir)/common.mk $(srcdir)/depend']
sed ['s/{\$([^(){}]*)[^{}]*}//g'] ${srcdir}/common.mk ${srcdir}/depend
# extract NMake-style include list
set = `sed -n 's/^!include *//p' ${srcdir}/common.mk`
echo common_mk_includes "@S|@*" # generate the macro assignment
shift
common_mk_includes="`echo \"@S|@*\" | sed 's|\$(srcdir)|.|g'`"
(PWD= cd ${srcdir} && sed -f tool/prereq.status common.mk ${common_mk_includes})
AS_IF([test "$YJIT_SUPPORT" = yes], [
cat ${srcdir}/yjit/not_gmake.mk
echo ['$(MKFILES): ${srcdir}/yjit/not_gmake.mk']
Expand All @@ -4722,6 +4711,7 @@ AC_CONFIG_FILES(Makefile:template/Makefile.in, [
]) &&
test -z "`${MAKE-make} -f $tmpgmk info-program | grep '^PROGRAM=ruby$'`" &&
echo 'ruby: $(PROGRAM);' >> $tmpmk
rm -f uncommon.mk # remove stale uncommon.mk, it should be updated by GNUmakefile
test "$tmpmk" = "$tmpgmk" || rm -f "$tmpgmk"
]) && mv -f $tmpmk Makefile],
[EXEEXT='$EXEEXT' MAKE='${MAKE-make}' gnumake='$gnumake' GIT='$GIT' YJIT_SUPPORT='$YJIT_SUPPORT'])
Expand Down
3 changes: 3 additions & 0 deletions defs/gmake.mk
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,9 @@ update-deps:
$(GIT) --git-dir=$(GIT_DIR) merge --no-edit --ff-only $(update_deps)
$(GIT) --git-dir=$(GIT_DIR) branch --delete $(update_deps)

fix-depends check-depends: all hello
$(BASERUBY) -C $(srcdir) tool/update-deps $(if $(filter fix-%,$@),--fix)

# order-only-prerequisites doesn't work for $(RUBYSPEC_CAPIEXT)
# because the same named directory exists in the source tree.
$(RUBYSPEC_CAPIEXT)/%.$(DLEXT): $(srcdir)/$(RUBYSPEC_CAPIEXT)/%.c $(RUBYSPEC_CAPIEXT_DEPS) \
Expand Down
Loading
Loading