summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* [ci-skip][Feature #18910][lldb] New directory structureMatt Valentine-House2022-08-186-6/+11
| | | | | Push the newly refactored lldb files into a sub-directory so that we're not cluttering up the misc directory
* [ci-skip][Feature #18910][lldb] Port rclass_ext to new LLDB FrameworkMatt Valentine-House2022-08-182-19/+14
|
* [ci-skip][Feature #18910][lldb] Port heap_page command to new LLDB frameworkMatt Valentine-House2022-08-182-14/+26
|
* [ci-skip][Feature #18910][lldb] Provide class framework for lldb commandsMatt Valentine-House2022-08-185-5/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `lldb_cruby.py` manages lldb custom commands using functions. The file is a large list of Python functions, and an init handler to map some of the Python functions into the debugger, to enable execution of custom logic during a debugging session. Since LLDB 3.7 (September 2015) there has also been support for using python classes rather than bare functions, as long as those classes implement a specific interface. This PR Introduces some more defined structure to the LLDB helper functions by switching from the function based implementation to the class based one, and providing an auto-loading mechanism by which new functions can be loaded. The intention behind this change is to make working with the LLDB helpers easier, by reducing code duplication, providing a consistent structure and a clearer API for developers. The current function based approach has some advantages and disadvantages Advantages: - Adding new code is easy. - All the code is self contained and searchable. Disadvantages: - No visible organisation of the file contents. This means - Hard to tell which functions are utility functions and which are available to you in a debugging session - Lots of code duplication within lldb functions - Large files quickly become intimidating to work with - for example, `lldb_disasm.py` was implemented as a seperate Python module because it was easier to start with a clean slate than add significant amounts of code to `lldb_cruby.py` This PR attempts, to fix the disadvantages of the current approach and maintain, or enhance, the benefits. The new structure of a command looks like this; ``` class TestCommand(RbBaseCommand): # program is the keyword the user will type in lldb to execute this command program = "test" # help_string will be displayed in lldb when the user uses the help functions help_string = "This is a test command to show how to implement lldb commands" # call is where our command logic will be implemented def call(self, debugger, command, exe_ctx, result): pass ``` If the command fulfils the following criteria it will then be auto-loaded when an lldb session is started: - The package file must exist inside the `commands` directory and the filename must end in `_command.py` - The package must implement a class whose name ends in `Command` - The class inherits from `RbBaseCommand` or at minimum a class that shares the same interface as `RbBaseCommand` (at minimum this means defining `__init__` and `__call__`, and using `__call__` to call `call` which is defined in the subclasses). - The class must have a class variable `package` that is a String. This is the name of the command you'll call in the `lldb` debugger.
* Allow strings in assert_pattern_listNobuyoshi Nakada2022-08-192-4/+14
|
* * 2022-08-19 [ci skip]git2022-08-191-1/+1
|
* Harden SizedQueue#push timeout testNobuyoshi Nakada2022-08-191-3/+3
|
* Add tests for assert_pattern_listNobuyoshi Nakada2022-08-181-0/+16
|
* [DOC] `offset` argument of Regexp#matchNobuyoshi Nakada2022-08-181-1/+6
|
* rb_str_resize: Only clear coderange on truncationJean Boussier2022-08-184-8/+23
| | | | | If we are expanding the string or only stripping extra capacity then coderange won't change, so clearing it is wasteful.
* Implement SizedQueue#push(timeout: sec)Jean Boussier2022-08-184-35/+111
| | | | | | | [Feature #18944] If both `non_block=true` and `timeout:` are supplied, ArgumentError is raised.
* Update bundled gems list at 2022-08-18git2022-08-182-2/+2
|
* [Bug #18964] Update the code range of appended portionNobuyoshi Nakada2022-08-184-4/+59
|
* ext/pty/extconf.rb: Try libutil only on OpenBSDYusuke Endoh2022-08-181-2/+4
| | | | | | | | | | | | | | icc now seems to provide libutil.so that is not related to pty. This extconf.rb wrongly finds it and adds `-lutil`, but `ruby -rpty` fails because it cannot find libutil.so on the runtime. http://rubyci.s3.amazonaws.com/icc-x64/ruby-master/log/20220815T210005Z.fail.html.gz ``` Exception raised: <#<LoadError: libutil.so: cannot open shared object file: No such file or directory - /home/chkbuild/chkbuild/tmp/build/20220815T210005Z/ruby/.ext/x86_64-linux/pty.so>> ``` This change makes extconf.rb check libutil only on OpenBSD.
* Suppress detached head warnings [ci skip]Nobuyoshi Nakada2022-08-181-1/+4
| | | | Check out the revisions for testing as "detached" from the beginning.
* * 2022-08-18 [ci skip]git2022-08-181-1/+1
|
* Added vm setivar benchmark from yjit-benchJemma Issroff2022-08-171-0/+35
|
* Fix flaky test for GC thrashingPeter Zhu2022-08-171-0/+4
| | | | | GC could be in an intermediate state after creating the objects, so we should finish GC by running a minor GC.
* Extract common code from `rb_enc_vsprintf` and `rb_str_vcatf`Nobuyoshi Nakada2022-08-171-33/+25
|
* Update dependenciesNobuyoshi Nakada2022-08-171-5/+0
|
* yjit.h is not necessary for all sources using mjit.hNobuyoshi Nakada2022-08-172-1/+1
|
* Move `mjit_exec` to vm.cNobuyoshi Nakada2022-08-172-95/+97
|
* Make date in installed gemspec files stableNobuyoshi Nakada2022-08-171-0/+1
| | | | | Set `date` member to `RUBY_RELEASE_DATE` instead of the date at the build time, to make installed files reproducible.
* Refactor `RbInstall::Specs::FileCollector`Nobuyoshi Nakada2022-08-171-66/+41
| | | | | | | - Split into `Ext` and `Lib` classes. - `Ext#files` should not include built extension libraries. - `Ext#files` should include scripts under its own `lib`. - `Lib#files` should be prefixed with `lib/`.
* * 2022-08-17 [ci skip]git2022-08-171-1/+1
|
* The tzdata 2022c removed Amsterdam Mean TimeNobuyoshi Nakada2022-08-171-0/+2
|
* [ruby/cgi] Implement `CGI.url_encode` and `CGI.url_decode`Jean Boussier2022-08-163-17/+142
| | | | | | | | [Feature #18822] Ruby is somewhat missing an RFC 3986 compliant escape method. https://github.com/ruby/cgi/commit/c2729c7f33
* Update the excluding message for Psych [ci skip]Nobuyoshi Nakada2022-08-161-1/+4
|
* Optimize Marshal dump/load for large (> 31-bit) FIXNUM (#6229)John Hawthorn2022-08-154-25/+148
| | | | | | | | | | | | | | | | | | | | | | | * Optimize Marshal dump of large fixnum Marshal's FIXNUM type only supports 31-bit fixnums, so on 64-bit platforms the 63-bit fixnums need to be represented in Marshal's BIGNUM. Previously this was done by converting to a bugnum and serializing the bignum object. This commit avoids allocating the intermediate bignum object, instead outputting the T_FIXNUM directly to a Marshal bignum. This maintains the same representation as the previous implementation, including not using LINKs for these large fixnums (an artifact of the previous implementation always allocating a new BIGNUM). This commit also avoids unnecessary st_lookups on immediate values, which we know will not be in that table. * Fastpath for loading FIXNUM from Marshal bignum * Run update-deps
* Do not clone method entries when bind_call is usedPenelope Phippen2022-08-151-4/+14
| | | | | | | | | | | | | | | I noticed that this site unconditionally clones the method entry, which means that `bind_call` always allocates a `T_IMEMO`. While this clone is necessary for `bind`, it is not necessary for `bind_call`. I work at Stripe, and the sorbet_runtime gem uses bind call as part of it's [call validation](https://github.com/sorbet/sorbet/blob/master/gems/sorbet-runtime/lib/types/private/methods/call_validation.rb#L157) so this can save us a lot of allocations. This patch adds a `clone` parameter to `convert_umethod_to_method_components`, which then controls whether or not we do this cloning. This patch passed Stripe CI and works in our QA environment. I reviewed it with @tenderlove to talk about correctness also.
* [ruby/rdoc] [DOC] Remove duplicated line in RDoc::MarkupReferencePeter Zhu2022-08-161-1/+0
| | | | https://github.com/ruby/rdoc/commit/488f89aee4
* * 2022-08-16 [ci skip]git2022-08-161-1/+1
|
* Simplify around `USE_YJIT` macro (#6240)Nobuyoshi Nakada2022-08-155-31/+21
| | | | | | | | * Simplify around `USE_YJIT` macro - Use `USE_YJIT` macro only instead of `YJIT_BUILD`. - An intermediate macro `YJIT_SUPPORTED_P` is no longer used. * Bail out if YJIT is enabled on unsupported platforms
* Add test for GC thrashing of young object creationPeter Zhu2022-08-151-0/+22
| | | | This test will prevent performance regressions like [Bug #18929].
* [ruby/date] [DOC] Enhanced intro for Date (https://github.com/ruby/date/pull/72)Burdette Lamar2022-08-151-133/+51
| | | | https://github.com/ruby/date/commit/59a6673221
* [rubygems/rubygems] Fix Ruby platform incorrectly removed on `bundle update`David Rodríguez2022-08-152-1/+42
| | | | https://github.com/rubygems/rubygems/commit/0d321c9e3a
* * 2022-08-15 [ci skip]git2022-08-151-1/+1
|
* [ruby/rinda] Handle situations where IPv4 multicast is not availableJeremy Evans2022-08-151-30/+41
| | | | | | Fixes [Bug #13864] https://github.com/ruby/rinda/commit/3cd620f38c
* Update dependenciesNobuyoshi Nakada2022-08-141-6/+3
|
* * 2022-08-14 [ci skip]git2022-08-141-1/+1
|
* Silent configure does not output cached configurationsNobuyoshi Nakada2022-08-141-2/+3
|
* [DOC] Add the link to [Feature #18809]Nobuyoshi Nakada2022-08-131-0/+1
|
* Add a NEWS entry about Integer#ceildiv [ci skip]Kouhei Yanagita2022-08-131-0/+3
|
* * 2022-08-13 [ci skip]git2022-08-131-1/+1
|
* [ruby/rdoc] [DOC] Enhances text about escapes ↵Burdette Lamar2022-08-131-31/+87
| | | | | | (https://github.com/ruby/rdoc/pull/917) https://github.com/ruby/rdoc/commit/c40bac829c
* Adjust columns in gems/bundled_gems [ci skip]Nobuyoshi Nakada2022-08-121-15/+15
|
* Preserve each column positions in gems/bundled_gemsNobuyoshi Nakada2022-08-121-1/+3
|
* Bundle unreleased debugNobuyoshi Nakada2022-08-121-1/+1
|
* Introduce with_warn_vsprintf macroS-H-GAMELINKS2022-08-121-27/+22
|
* Short-circuit `Process._fork`Nobuyoshi Nakada2022-08-121-9/+22
|