Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
3f5e85b
ZJIT: Add LoadArg instruction for JIT entry blocks
tekknolagi Feb 19, 2026
f578284
ZJIT: Add Entries superblock as single CFG root
tekknolagi Feb 19, 2026
c058a98
ZJIT: Replace dominator set-intersection with Cooper's idom algorithm
tekknolagi Feb 19, 2026
607af48
ZJIT: Measure side-exit compile time
tekknolagi Feb 18, 2026
b205bf6
ZJIT: Measure how much each part of compile-time costs
tekknolagi Feb 18, 2026
bb8881f
[ruby/rubygems] Honor concurrent_downloads from gemrc
afurm Feb 18, 2026
7ca0aa5
Copy terminator when moving strings to the heap.
eightbitraptor Feb 16, 2026
e6f73fc
Remove HEAP_PAGE_OBJ_LIMIT
eightbitraptor Feb 18, 2026
c0c97c0
ZJIT: Simplify po_from to take a single BlockId
tekknolagi Feb 19, 2026
06c8b1a
ZJIT: Remove find() from po_from
tekknolagi Feb 19, 2026
126b657
Use rb_ensure instead of guard objects for Dir.pwd
jhawthorn Feb 19, 2026
b5ccab2
IO::Buffer#locked: Release lock even when the block raises (#16180)
hanazuki Feb 20, 2026
6ea68a5
[ruby/rubygems] Don't check whether a plugin needs to be installed:
Edouard-chin Feb 10, 2026
b093886
[DOC] Fix range docs intro
Earlopain Feb 19, 2026
f01f66c
Move win32-registry from default to bundled gems
larskanis Feb 17, 2026
28de927
Add win32-registry entries to doc
hsbt Feb 20, 2026
3417f80
Update bundled gems list as of 2026-02-20
matzbot Feb 20, 2026
3dc80a0
Removed unnecessary setup for make bundled_gems_spec-run
hsbt Feb 20, 2026
2d2afa8
Group rubyspec_capiext
nobu Feb 20, 2026
986aa69
Suppress an uninitialized variable warning
nobu Feb 20, 2026
f3d52cb
[ruby/rubygems] Document concurrent_downloads in environment command
afurm Feb 20, 2026
ee2d902
[ruby/json] Use single quotes for allow_invalid_escape doc
etiennebarrie Feb 20, 2026
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
4 changes: 3 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,10 @@ Other changes are listed in the following sections. We also listed release
history from the previous bundled version that is Ruby 3.4.0 if it has GitHub
releases.

### The following bundled gem is promoted from default gems.
### The following bundled gems are promoted from default gems.

* tsort 0.2.0
* win32-registry 0.1.2

### The following default gem is added.

Expand Down Expand Up @@ -80,6 +81,7 @@ releases.
* repl_type_completor 0.1.13
* pstore 0.2.1
* rdoc 7.2.0
* win32ole 1.9.3
* irb 1.17.0

### RubyGems and Bundler
Expand Down
5 changes: 4 additions & 1 deletion common.mk
Original file line number Diff line number Diff line change
Expand Up @@ -800,7 +800,10 @@ RUBYSPEC_CAPIEXT_SRCDIR = $(srcdir)/$(RUBYSPEC_CAPIEXT)
RUBYSPEC_CAPIEXT_DEPS = $(RUBYSPEC_CAPIEXT_SRCDIR)/rubyspec.h $(RUBY_H_INCLUDES) {$(VPATH)}internal/abi.h $(LIBRUBY)
RUBYSPEC_CAPIEXT_BUILD = $(enable_shared:yes=rubyspec-capiext)

rubyspec-capiext: build-ext $(DOT_WAIT)
yes-rubyspec-capiext: build-ext
$(ACTIONS_GROUP)
rubyspec-capiext: build-ext $(DOT_WAIT) yes-rubyspec-capiext $(DOT_WAIT)
$(ACTIONS_ENDGROUP)
# make-dependent rules should be included after this and built after build-ext.

clean-spec: PHONY
Expand Down
7 changes: 3 additions & 4 deletions defs/gmake.mk
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@ fix-depends check-depends: all hello
# 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) \
| build-ext
| build-ext yes-rubyspec-capiext
$(no_silence:no=$(ECHO) building $@)
$(Q) $(MAKEDIRS) $(@D)
$(Q) $(DLDSHARED) -L. $(XDLDFLAGS) $(XLDFLAGS) $(LDFLAGS) $(INCFLAGS) $(CPPFLAGS) $(OUTFLAG)$@ $< $(LIBRUBYARG)
Expand All @@ -525,9 +525,8 @@ ifneq ($(POSTLINK),)
endif
$(Q) $(RMALL) $@.*

RUBYSPEC_CAPIEXT_SO := $(patsubst %.c,$(RUBYSPEC_CAPIEXT)/%.$(DLEXT),$(notdir $(wildcard $(srcdir)/$(RUBYSPEC_CAPIEXT)/*.c)))
rubyspec-capiext: $(RUBYSPEC_CAPIEXT_SO)
@ $(NULLCMD)
RUBYSPEC_CAPIEXT_EXTS := $(patsubst %.c,$(RUBYSPEC_CAPIEXT)/%.$(DLEXT),$(notdir $(wildcard $(srcdir)/$(RUBYSPEC_CAPIEXT)/*.c)))
rubyspec-capiext: $(RUBYSPEC_CAPIEXT_EXTS)

spec/%/ spec/%_spec.rb: programs exts $(RUBYSPEC_CAPIEXT_BUILD) PHONY
+$(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec-run -B $(srcdir)/spec/default.mspec $(SPECOPTS) $(patsubst %,$(srcdir)/%,$@)
Expand Down
32 changes: 19 additions & 13 deletions dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -1586,23 +1586,29 @@ dir_chdir(VALUE dir)
}

#ifndef _WIN32
VALUE
rb_dir_getwd_ospath(void)
static VALUE
getcwd_to_str(VALUE arg)
{
char *path;
VALUE cwd;
VALUE path_guard;

path_guard = rb_imemo_tmpbuf_new();
path = ruby_getcwd();
rb_imemo_tmpbuf_set_ptr(path_guard, path);
const char *path = (const char *)arg;
#ifdef __APPLE__
cwd = rb_str_normalize_ospath(path, strlen(path));
return rb_str_normalize_ospath(path, strlen(path));
#else
cwd = rb_str_new2(path);
return rb_str_new2(path);
#endif
rb_free_tmp_buffer(&path_guard);
return cwd;
}

static VALUE
getcwd_xfree(VALUE arg)
{
xfree((void *)arg);
return Qnil;
}

VALUE
rb_dir_getwd_ospath(void)
{
char *path = ruby_getcwd();
return rb_ensure(getcwd_to_str, (VALUE)path, getcwd_xfree, (VALUE)path);
}
#endif

Expand Down
6 changes: 6 additions & 0 deletions doc/maintainers.md
Original file line number Diff line number Diff line change
Expand Up @@ -616,6 +616,12 @@ It may needs to make consensus on ruby-core/ruby-dev before making major changes
* https://github.com/ruby/tsort
* https://rubygems.org/gems/tsort

#### win32-registry

* Nakamura Usaku ([unak])
* https://github.com/ruby/win32-registry
* https://rubygems.org/gems/win32-registry

## Platform Maintainers

### mswin64 (Microsoft Windows)
Expand Down
2 changes: 2 additions & 0 deletions doc/standard_library.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ of each.
- [readline]: Wrapper for the Readline extension and Reline
- [fiddle]: A libffi wrapper for Ruby
- [tsort]: Topological sorting using Tarjan's algorithm
- [win32-registry]: Registry accessor library for the Windows platform.

## Tools

Expand Down Expand Up @@ -208,6 +209,7 @@ of each.
[uri]: https://github.com/ruby/uri
[weakref]: https://github.com/ruby/weakref
[win32ole]: https://github.com/ruby/win32ole
[win32-registry]: https://github.com/ruby/win32-registry
[yaml]: https://github.com/ruby/yaml
[zlib]: https://github.com/ruby/zlib

Expand Down
4 changes: 2 additions & 2 deletions ext/json/lib/json.rb
Original file line number Diff line number Diff line change
Expand Up @@ -201,10 +201,10 @@
# defaults to +false+.
#
# With the default, +false+:
# JSON.parse(%{"Hell\\o"}) # invalid escape character in string (JSON::ParserError)
# JSON.parse('"Hell\o"') # invalid escape character in string (JSON::ParserError)
#
# When enabled:
# JSON.parse(%{"Hell\\o"}, allow_invalid_escape: true) # => "Hello"
# JSON.parse('"Hell\o"', allow_invalid_escape: true) # => "Hello"
#
# ====== Output Options
#
Expand Down
Loading