| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Reduce backtracks at the same character classes arounding an
optional pattern.
https://github.com/ruby/date/commit/1fd15f7c49
|
|
|
|
| |
https://github.com/ruby/date/commit/ec86dbbdc1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds sections:
String Encoding
Symbol and Regexp Encodings
Filesystem Encoding
Locale Encoding
IO Encodings
External Encoding
Internal Encoding
Script Encoding
Transcoding
Transcoding a String
|
| |
|
|
|
|
|
| |
I noticed this yesterday when pairing with Aaron, there was an extra "e"
in "callees".
|
| |
|
| |
|
|
|
|
|
|
| |
This commit adds the ABI version as build metadata to
RUBY_LIB_VERSION. This will ensure that gems are installed in a path
with the ABI version.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously when checking ancestors, we would walk all the way up the
ancestry chain checking each parent for a matching class or module.
I believe this was especially unfriendly to CPU cache since for each
step we need to check two cache lines (the class and class ext).
This check is used quite often in:
* case statements
* rescue statements
* Calling protected methods
* Class#is_a?
* Module#===
* Module#<=>
I believe it's most common to check a class against a parent class, to
this commit aims to improve that (unfortunately does not help checking
for an included Module).
This is done by storing on each class the number and an array of all
parent classes, in order (BasicObject is at index 0). Using this we can
check whether a class is a subclass of another in constant time since we
know the location to expect it in the hierarchy.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[Bug #18599]
`vm->loaded_features` and `vm->loaded_features_snapshot` both share the
same root. When a feature is pushed into `loaded_features`, the sharing
is broken and `loaded_features` is copied.
So an application requiring 1000 files, will allocate 1000 arrays of
increasing size, which is very wasteful.
To avoid this, we first clear the snapshot, so that `loaded_features`
can directly be pushed into.
Co-Authored-By: Peter Zhu <peter.zhu@shopify.com>
|
|
|
|
|
| |
rb_ary_shift is just a special case of rb_ary_behead where we behead
only 1 element.
|
| |
|
| |
|
|
|
|
|
| |
Dependencies was not updated in
06dab12717a05bf49e4c6dff1d6f5458678d0e00.
|
|
|
|
|
| |
I forgot to include this as part of
638fd8774bed27b997f3b634ba8be7aa304be3c3.
|
| |
|
|
|
|
|
|
|
| |
Fixes this compiler warning:
warning: 'loc' may be used uninitialized in this function [-Wmaybe-uninitialized]
bt_yield_loc(loc - cfunc_counter, cfunc_counter, btobj);
|
| |
|
|
|
|
|
| |
All shared libraries must have `include/ruby/internal/abi.h` to include
the ABI version. Including `ruby.h` will guarantee that.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Header file include/ruby/internal/abi.h contains RUBY_ABI_VERSION which
is the ABI version. This value should be bumped whenever an ABI
incompatible change is introduced.
When loading dynamic libraries, Ruby will compare its own
`ruby_abi_version` and the `ruby_abi_version` of the loaded library. If
these two values don't match it will raise a `LoadError`. This feature
can also be turned off by setting the environment variable
`RUBY_RUBY_ABI_CHECK=0`.
This feature will prevent cases where previously installed native gems
fail in unexpected ways due to incompatibility of changes in header
files. This will force the developer to recompile their gems to use the
same header files as the built Ruby.
In Ruby, the ABI version is exposed through
`RbConfig::CONFIG["ruby_abi_version"]`.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The existing implementation, given the below .inputrc, erroneously
creates a "C-v" key binding:
set keymap emacs-ctlx
"\C-v": "[C-x C-v was pressed]"
This fixes it to instead create a "C-x C-v" keybinding.
https://github.com/ruby/reline/commit/719f52d231
|
|
|
|
| |
https://github.com/ruby/zlib/commit/5e8f0b4164
|
|
|
|
|
|
|
| |
RDoc is using only CGI.escape, escapeHTML, and unescape.
We don't have to load the whole source code of cgi gem.
https://github.com/ruby/rdoc/commit/d096222cc2
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/623162ad2b
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
.. even when the argument is not explicitly passed.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Also, the default error printer and Exception#full_message use the
method instead of `Exception#message` to get the message string.
`Exception#detailed_message` calls `Exception#message`, decorates and
returns the result. It adds some escape sequences to highlight, and the
class name of the exception to the end of the first line of the message.
[Feature #18370]
|
|
|
|
|
| |
rb_decorate_message adds bold escape sequences to message, and the class
name of exception (like " (RuntimeError)) of "message (RuntimeError)").
|
|
|
|
| |
[Feature #18367]
|
|
|
|
|
| |
Factor out from rb_error_write the responsibility to check if stderr is
a tty.
|
| |
|
| |
|
|
|
|
|
| |
The message should end with a newline, and break the long
paragraph.
|
|
|
|
|
| |
Copied from https://github.com/ruby/docs.ruby-lang.org/ to be as
same as docs.ruby-lang.org.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Disable the use of `__assume()`, when combinations of `isnan()`,
`isinf()` and `__assume()` will be wrongly optimized due to the
bug of VS2022.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
`UNREACHABLE` in ruby/internal/has/builtin.h is only used as just
a flag now, and redefined in ruby/backward/2/assume.h then.
|
| |
|