summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-12-02Don't fail when 'did_you_mean' is not available.Vít Ondruch
Although 'did_you_mean' is always available in upstream Ruby, it might not be available when speed, memory, disk or network bandwidth is a concern. This is typically the case for production environment, where 'did_you_mean' is of limited usage. Also it might not be available optionally when Ruby is delivered via packaging systems. E.g. Linux distributions. Notes: Merged: https://github.com/ruby/ruby/pull/2764
2020-12-02digest: remove OpenSSL engineKazuki Yamaguchi
The OpenSSL engine of Digest uses the low-level API of OpenSSL, whose use has been discouraged for years for multiple reasons. A long-standing issue on a FIPS-enabled system is that using ::Digest results in crashing the Ruby process, because the low-level API lacks the mechanism to report an error (the policy violation) and thus kills the process as a last resort[1][2]. Also, the upcoming OpenSSL 3.0 will deprecate it for future removal[3]. Compiling with -Wdeprecated-declarations will start to emit warnings. A proper fix for this is to make it use the EVP API instead. This is a non-trivial work as it requires backwards-incompatible changes to the framework interface of Digest::Base and rb_digest_metadata_t. It is more than 15 years ago that the openssl library became part of the standard library. It has implemented the exactly same functionality as OpenSSL::Digest, in fact, as a subclass of Digest::Class. There is not much point in having an identical code in the digest library. Let's just get rid of OpenSSL within digest. This leaves the C implementations and the CommonCrypto engine for Apple systems. A patch is being prepared for the openssl library to provide ::Digest constants for better performance[4]. [1] https://bugs.ruby-lang.org/issues/6946 [2] https://bugs.ruby-lang.org/issues/13681 [3] https://www.openssl.org/docs/OpenSSL300Design.html [4] https://github.com/ruby/openssl/pull/377 Notes: Merged: https://github.com/ruby/ruby/pull/3149
2020-12-02Fix code example in Readline::HISTORY documentation.Cristian Greco
Wrapping the example into a <code> block to avoid it being rendered as a link. Notes: Merged: https://github.com/ruby/ruby/pull/3686
2020-12-02memory_view.c: Check availability in rb_memory_view_getKenta Murata
2020-12-02Added dependencies for net-ftpHiroshi SHIBATA
2020-12-02Added dependencies for net-httpHiroshi SHIBATA
2020-12-02Added dependencies for net-smtpHiroshi SHIBATA
2020-12-02Added dependencies for net-protocolHiroshi SHIBATA
2020-12-02Added dependencies for tmpdirHiroshi SHIBATA
2020-12-02Added dependencies for erbHiroshi SHIBATA
2020-12-02Added dependencies for ppHiroshi SHIBATA
2020-12-01Fix docs about movement for rb_gc_register_mark_object()Alan Wu
This API in fact pins objects passed to it. See vm.c:2546. Notes: Merged: https://github.com/ruby/ruby/pull/3815
2020-12-02* 2020-12-02 [ci skip]git
2020-12-02Bundle rbs 0.18.1 (#3825)Soutaro Matsumoto
Notes: Merged-By: soutaro <matsumoto@soutaro.com>
2020-12-01Update fixnum.hjacopo
Fix a typo: "nevative" => "negative" in `rb_fix_plus_fix`. Notes: Merged: https://github.com/ruby/ruby/pull/3834
2020-12-01Added dependencies for open-uriHiroshi SHIBATA
2020-12-01Added dependencies for timeHiroshi SHIBATA
2020-12-01Added dependencies for primeHiroshi SHIBATA
2020-12-01Added dependencies for weakrefHiroshi SHIBATA
2020-12-01should not use rb_str_modify(), tooKoichi Sasada
Same as 8247b8edde, should not use rb_str_modify() here. https://bugs.ruby-lang.org/issues/17343#change-88858 Notes: Merged: https://github.com/ruby/ruby/pull/3833
2020-12-01Update ext/.documentNobuyoshi Nakada
2020-12-01Add monitor to document filesKazuhiro NISHIYAMA
2020-12-01rb_ext_ractor_safe() to declare ractor-safe extKoichi Sasada
C extensions can violate the ractor-safety, so only ractor-safe C extensions (C methods) can run on non-main ractors. rb_ext_ractor_safe(true) declares that the successive defined methods are ractor-safe. Otherwiwze, defined methods checked they are invoked in main ractor and raise an error if invoked at non-main ractors. [Feature #17307] Notes: Merged: https://github.com/ruby/ruby/pull/3824
2020-12-01should not use rb_ary_modify()Koichi Sasada
ractor_copy() used rb_ary_modify() to make sure this array is not sharing anything, but it also checks frozen flag. So frozen arrays raises an error. To solve this issue, this patch introduces new function rb_ary_cancel_sharing() which makes sure the array does not share another array and it doesn't check frozen flag. [Bug #17343] A test is quoted from https://github.com/ruby/ruby/pull/3817 Notes: Merged: https://github.com/ruby/ruby/pull/3831
2020-12-01show with sharing infoKoichi Sasada
2020-11-30-> creates a lambda so this updates the documentation to reflect thatJames Koenig
Notes: Merged: https://github.com/ruby/ruby/pull/3828
2020-12-01ractor local storage C-APIKoichi Sasada
To manage ractor-local data for C extension, the following APIs are defined. * rb_ractor_local_storage_value_newkey * rb_ractor_local_storage_value * rb_ractor_local_storage_value_set * rb_ractor_local_storage_ptr_newkey * rb_ractor_local_storage_ptr * rb_ractor_local_storage_ptr_set At first, you need to create a key of storage by rb_ractor_local_(value|ptr)_newkey(). For ptr storage, it accepts the type of storage, how to mark and how to free with ractor's lifetime. rb_ractor_local_storage_value/set are used to access a VALUE and rb_ractor_local_storage_ptr/set are used to access a pointer. random.c uses this API. Notes: Merged: https://github.com/ruby/ruby/pull/3822
2020-12-01tune parallel testKoichi Sasada
This patch contains the fowllowing hacks: (1) Add "--timetable-data=FILE" option for test-all This option enables to dump timeline event contains worker, suite, and start/end time. (2) remove TestJIT in test_jit_debug.rb on parallel test. it is duplicated test. (3) move test_jit.rb and test_jit_debug.rb at first because these two tests are bottleneck of parallel tests. On my environment, `make test-all TESTS=-j12` reduced the total time 190 seconds -> 140 seconds. Notes: Merged: https://github.com/ruby/ruby/pull/3826
2020-11-30Fix `Ractor.make_shareable` for recursive structures with unfreezable componentsMarc-Andre Lafortune
Followup to #3823 Notes: Merged: https://github.com/ruby/ruby/pull/3827
2020-12-01* 2020-12-01 [ci skip]git
2020-11-30Only check if the current ep is a local or not, then markAaron Patterson
The vm mark function should only check if the current frame is a local or not and then mark values in that frame. Since it's walking up the stack looking at each cfp, then all ep's should be examined. This fixes a bug in the Rails tests where we're seeing segv in railties. Thanks Yasuo Honda for giving me a reliable repro! Notes: Merged: https://github.com/ruby/ruby/pull/3829
2020-11-30[DOC] Update -l option [ci skip]Nobuyoshi Nakada
`-l` option has used `chomp!` since Ruby 2.5. [Bug #12926]
2020-11-30Clean temproray directory created by test-specNobuyoshi Nakada
2020-11-30Clean static-rubyNobuyoshi Nakada
2020-11-30Fix rb_interned_str_* functions to not assume static stringsJean Boussier
Fixes [Feature #13381] When passed a `fake_str`, `register_fstring` would create new strings with `str_new_static`. That's not what was expected, and answer almost no use cases. Notes: Merged: https://github.com/ruby/ruby/pull/3786
2020-11-30Fixed Ractor.shareable? on cross-recursive objects [Bug #17344]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3823 Merged-By: nobu <nobu@ruby-lang.org>
2020-11-30Raise when loading unprovided builtin function [Bug #17192]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3622 Merged-By: nobu <nobu@ruby-lang.org>
2020-11-30Keep references of memory-view-exported objects (#3816)Kenta Murata
* memory_view.c: remove a reference in view->obj at rb_memory_view_release * memory_view.c: keep references of memory-view-exported objects * Update common.mk * memory_view.c: Use st_update Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-11-30[DOC] Fixed st_udpate comment [ci skip]Nobuyoshi Nakada
Clarified that the first and second arguments to the callback function are pointers to the KEY and the VALUE, but not those values themselves.
2020-11-30* 2020-11-30 [ci skip]git
2020-11-30support SIGSEGV/BUS while read_barrier_handler()Koichi Sasada
read_barrier_handler() can cause SIGSEGV/BUS so it should show the errors.
2020-11-29Get rid of allocation when the capacity is smallNobuyoshi Nakada
2020-11-29* 2020-11-29 [ci skip]git
2020-11-28Do not throttle the workaround for --jit-waitTakashi Kokubun
--jit-wait CI can be stuck when the workaround is throttled http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3274091
2020-11-28NEWS for [Feature #17136] [ci skip]Nobuyoshi Nakada
2020-11-28[Feature #17136] Remove special behavior from $KCODENobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3483
2020-11-28Revived the getenv macro for dln_find.cNobuyoshi Nakada
This partially reverts commit "Windows: Improve readablity of getenv() encoding" 14453a256d58b11b06d432e2a4388d95aac298d6. The `getenv` macro defined here is to also substitute the function in dln_find.c, not only in this file.
2020-11-28Windows: Improve readablity of getenv() encodingLars Kanis
getenv() did use the expected codepage as an implicit parameter of the macro. This is mis-leading since include/ruby/win32.h has a different definition. Using the "cp" variable explicit (like the other function calls) makes it more readable and consistent.
2020-11-28Increase timeout for MJIT ActionsTakashi Kokubun
It's too short for --jit-wait https://github.com/ruby/ruby/runs/1466690076?check_suite_focus=true
2020-11-27Fix compactions.size for throttlingTakashi Kokubun
096f54428d changes the behavior for this kind of cases.