summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Try to fix error on SolarisKazuhiro NISHIYAMA2022-04-281-1/+1
| | | | | | | | | | | https://rubyci.s3.amazonaws.com/solaris10-sunc/ruby-master/log/20220428T000004Z.fail.html.gz ``` linking static-library libruby-static.a /bin/sh: syntax error at line 8: `(' unexpected gmake: *** [Makefile:318: libruby-static.a] Error 2 exit 2 failed(make) ```
* Work around shell syntax error on SolarisAlan Wu2022-04-271-3/+9
| | | | | | | | The shell in Solaris 10 has trouble understanding the syntax I used in YJIT's library merging script. This commit reduces the code the shell needs to parse before exiting on non-YJIT builds to hopefully fix the error on Solaris.
* Update default gems list at cd2613b6a43bac87574dac17b8b9b8 [ci skip]git2022-04-271-0/+1
|
* [ruby/net-http] Bump version to 0.2.1.pre1Charles Oliver Nutter2022-04-281-1/+1
| | | | https://github.com/ruby/net-http/commit/0017cc64c0
* Update yjit.mdMaxime Chevalier-Boisvert2022-04-271-1/+1
| | | Fix configure line in YJIT build instructions
* * 2022-04-28 [ci skip]git2022-04-281-1/+1
|
* YJIT: Remove unnecessary `extern crate` declarationAlan Wu2022-04-271-1/+0
| | | | | | Thanks to suggestion from bjorn3 on GitHub. Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
* YJIT: Make add_comment() more conciseAlan Wu2022-04-271-9/+3
| | | | | | Thanks to suggestions from Stranger6667 on GitHub. Co-authored-by: Dmitry Dygalo <dmitry@dygalo.dev>
* Rust YJITAlan Wu2022-04-2755-11529/+16145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In December 2021, we opened an [issue] to solicit feedback regarding the porting of the YJIT codebase from C99 to Rust. There were some reservations, but this project was given the go ahead by Ruby core developers and Matz. Since then, we have successfully completed the port of YJIT to Rust. The new Rust version of YJIT has reached parity with the C version, in that it passes all the CRuby tests, is able to run all of the YJIT benchmarks, and performs similarly to the C version (because it works the same way and largely generates the same machine code). We've even incorporated some design improvements, such as a more fine-grained constant invalidation mechanism which we expect will make a big difference in Ruby on Rails applications. Because we want to be careful, YJIT is guarded behind a configure option: ```shell ./configure --enable-yjit # Build YJIT in release mode ./configure --enable-yjit=dev # Build YJIT in dev/debug mode ``` By default, YJIT does not get compiled and cargo/rustc is not required. If YJIT is built in dev mode, then `cargo` is used to fetch development dependencies, but when building in release, `cargo` is not required, only `rustc`. At the moment YJIT requires Rust 1.60.0 or newer. The YJIT command-line options remain mostly unchanged, and more details about the build process are documented in `doc/yjit/yjit.md`. The CI tests have been updated and do not take any more resources than before. The development history of the Rust port is available at the following commit for interested parties: https://github.com/Shopify/ruby/commit/1fd9573d8b4b65219f1c2407f30a0a60e537f8be Our hope is that Rust YJIT will be compiled and included as a part of system packages and compiled binaries of the Ruby 3.2 release. We do not anticipate any major problems as Rust is well supported on every platform which YJIT supports, but to make sure that this process works smoothly, we would like to reach out to those who take care of building systems packages before the 3.2 release is shipped and resolve any issues that may come up. [issue]: https://bugs.ruby-lang.org/issues/18481 Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> Co-authored-by: Noah Gibbs <the.codefolio.guy@gmail.com> Co-authored-by: Kevin Newton <kddnewton@gmail.com>
* [DOC] Enhanced RDoc for Kernel (#5847)Burdette Lamar2022-04-271-30/+61
| | | Treats #Integer; fixes an error in #String.
* [DOC] Change URLs from git.ioKazuhiro NISHIYAMA2022-04-272-3/+4
| | | | see https://github.blog/changelog/2022-04-25-git-io-deprecation/
* Enhanced RDoc for File (#5849)Burdette Lamar2022-04-261-35/+67
| | | | | | | | | | | Treats: #path ::stat ::lstat #lstat ::directory? Also adds section "Example Files" that explains assumptions about example files. I'm using t.txt already, and I'm pretty sure I'll need t.dat (binary data). I don't know whether I'll need t.rus (Russian text).
* Faster rb_class_superclassJohn Hawthorn2022-04-261-7/+6
| | | | | This uses the RCLASS_SUPERCLASSES array to quickly find the next SUPERCLASS of klass which is a T_CLASS.
* * 2022-04-27 [ci skip]git2022-04-271-1/+1
|
* Use compiled instead of compliedKaĆ­que Kandy Koga2022-04-261-2/+2
| | | | Capitalize creates
* Expose `rb_hash_new_capa(long)`Jean Boussier2022-04-262-0/+17
| | | | | | | | [Feature #18683] This allows parsers and similar libraries to create Hashes of a certain capacity in advance. It's useful when the key and values are streamed, hence `bulk_insert()` can't be used.
* [DOC] Enhanced RDoc for Kernel (#5846)Burdette Lamar2022-04-251-26/+37
| | | | | | | Treats: #Array #Hash #String
* Document beginless, endless ranges in Range class documentationJeremy Evans2022-04-251-1/+10
|
* Simplify example code for Enumerable#each_with_objectColin Hart2022-04-251-2/+4
|
* Fix strict aliasing issue with call to rb_id_table_lookup()Alan Wu2022-04-251-2/+3
| | | Previously, GCC 11 with -O2 LTO issues -Wmaybe-uninitialized here.
* [CI] Use -O2 on LTO builds as intendedAlan Wu2022-04-251-5/+5
| | | | | | Previously, since the `optflags` environment variable was set to `-O1` and `optflags` comes after the flags appended as `CC`, we were doing LTO builds with `-O1`.
* [DOC] Move :nodoc: so rdoc finds `RbConfig.ruby`Alan Wu2022-04-251-2/+1
| | | | | | Rdoc [build] of `master` did not have this method but the reference manual [did]. [build]: https://docs.ruby-lang.org/en/master/RbConfig.html [did]: https://docs.ruby-lang.org/ja/master/class/RbConfig.html#S_RUBY
* io.nonblock returns the block's value [ci skip]Kazuhiro NISHIYAMA2022-04-261-2/+2
|
* * 2022-04-26 [ci skip]git2022-04-261-1/+1
|
* [DOC] Enhanced RDoc for Math module (#5837)Burdette Lamar2022-04-252-242/+457
| | | | | | Revises intro. Adds "What's Here". Revises methods doc.
* [DOC] mention assignment expression valuesNobuyoshi Nakada2022-04-251-0/+6
|
* Update to ruby/spec@3affe1eBenoit Daloze2022-04-25277-7355/+3575
|
* Update to ruby/mspec@215497eBenoit Daloze2022-04-254-13/+48
|
* Fix ARGF#lineno to return Integer as documentedJean Boussier2022-04-251-1/+1
| | | | [Bug #18753]
* [ruby/rdoc] Fix a typo [ci skip]Kazuhiro NISHIYAMA2022-04-251-1/+1
| | | | https://github.com/ruby/rdoc/commit/b42c4a2fe2
* More details for Rational literals (#5840)Burdette Lamar2022-04-241-7/+28
|
* * 2022-04-25 [ci skip]git2022-04-251-1/+1
|
* Reuse `rb_proc_arity`S.H2022-04-241-7/+2
|
* * 2022-04-24 [ci skip]git2022-04-241-1/+1
|
* add description for IO.nonblock=.Tanaka Akira2022-04-241-0/+40
|
* Remove unnecessary sortKazuhiro NISHIYAMA2022-04-231-2/+2
| | | | Because `Dir.[]` returns the sorted results since Ruby 3.0.
* Avoid defining the same test class in multiple filesJeremy Evans2022-04-2247-1356/+1280
| | | | | | | | | Should fix issues with parallel testing sometimes not running all tests. This should be viewed skipping whitespace changes. Fixes [Bug #18731]
* Fix build if UBF_TIMER == UBF_TIMER_PTHREADJeremy Evans2022-04-221-1/+1
|
* rbinstall: Also do `Gem.ruby` patching for unpacked bundled gemsAlan Wu2022-04-221-1/+7
| | | | | | | | | | | | | | | | Pointing `Gem.ruby` to the newly installed ruby gives mkmf the right inputs to build extensions in bundled gems. Previously, this patching was only done for compressed bundled gems. This patch also prevents `tool/fake.rb` from propagating to the child process running mkmf for the native extension. The way `tool/fake.rb` changes mkmf variables using `Kernel#trace_var` created spooky action at a distance which made debugging difficult. AppVeyor Windows CI started to fail starting with 8a3663789c52ec5635194656af6b69d3d03120ee because it enabled extension building for bundled gems on mswin. This patch should address the CI failures.
* introduce struct `rb_native_thread`Koichi Sasada2022-04-2310-132/+167
| | | | | | | | | `rb_thread_t` contained `native_thread_data_t` to represent thread implementation dependent data. This patch separates them and rename it `rb_native_thread` and point it from `rb_thraed_t`. Now, 1 Ruby thread (`rb_thread_t`) has 1 native thread (`rb_native_thread`).
* * 2022-04-23 [ci skip]git2022-04-231-1/+1
|
* refactoring thread inits in vm.cKoichi Sasada2022-04-231-30/+22
| | | | | | * `th_init` accepts vm and ractor. * remove `ruby_thread_init` because it is duplicated with `th_init`. * add some comments.
* Uncomment code to raise LocalJumpError for yield across thread through enumJeremy Evans2022-04-212-2/+55
| | | | | | | | Not sure if this is the correct fix. It does raise LocalJumpError in the yielding thread as you would expect, but the value yielded to the calling thread is still yielded without an exception. Fixes [Bug #18649]
* Use https for wss testHiroshi SHIBATA2022-04-221-1/+1
|
* [ruby/uri] Include RFC2396_REGEXP module directlyPeter Zhu2022-04-222-3/+3
| | | | | | | REGEXP is defined as RFC2396_REGEXP in lib/uri/common.rb. If we include REGEXP then a broken URL is generated in rdoc for URI and URI::MailTo. https://github.com/ruby/uri/commit/ed6ded9c80
* [ruby/uri] Feat: Support WSSOKURA Masafumi2022-04-223-3/+75
| | | | | | | | There was a file for WSS so I added one line of `require_relative` to make it work. Now `URI.parse('wss://example.com')` returns `URI::WS`. https://github.com/ruby/uri/commit/ff8a103564
* * 2022-04-22 [ci skip]git2022-04-221-1/+1
|
* rename thread internal namingKoichi Sasada2022-04-2210-189/+206
| | | | | | | | | | | | | | | | | | | | | | | | Now GVL is not process *Global* so this patch try to use another words. * `rb_global_vm_lock_t` -> `struct rb_thread_sched` * `gvl->owner` -> `sched->running` * `gvl->waitq` -> `sched->readyq` * `rb_gvl_init` -> `rb_thread_sched_init` * `gvl_destroy` -> `rb_thread_sched_destroy` * `gvl_acquire` -> `thread_sched_to_running` # waiting -> ready -> running * `gvl_release` -> `thread_sched_to_waiting` # running -> waiting * `gvl_yield` -> `thread_sched_yield` * `GVL_UNLOCK_BEGIN` -> `THREAD_BLOCKING_BEGIN` * `GVL_UNLOCK_END` -> `THREAD_BLOCKING_END` * removed * `rb_ractor_gvl` * `rb_vm_gvl_destroy` (not used) There are GVL functions such as `rb_thread_call_without_gvl()` yet but I don't have good name to replace them. Maybe GVL stands for "Greate Valuable Lock" or something like that.
* [ruby/pathname] Implement Pathname#lutimeAkinori MUSHA2022-04-212-0/+36
| | | | https://github.com/ruby/pathname/commit/268cb5acff
* Private local variables should shadow outer variables [Bug #18629]Nobuyoshi Nakada2022-04-212-1/+6
|