aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* use one-line pattern matching for warning testsKoichi Sasada2020-11-013-7/+5
|
* * 2020-11-01 [ci skip]git2020-11-011-2/+2
|
* Pattern matching is no longer experimentalKazuki Tsujimoto2020-11-014-64/+46
|
* Revert "Use adjusted sp on `iseq_set_sequence()`" and "Delay ↵wanabe2020-10-311-43/+18
| | | | | | | `remove_unreachable_chunk()` after `iseq_set_sequence()`" This reverts commit 3685ed7303fc08bf68cd3cc8d11e22a8ce63a067 and 5dc107b03f5cf32656a5308574b90458486c633c. Because of some CI failures https://github.com/ruby/ruby/pull/3404#issuecomment-719868313.
* [DOC] standard_library.rdoc: tweaked to make style consistentNobuyoshi Nakada2020-10-311-1/+1
| | | | [ci skip]
* Removed unused variableNobuyoshi Nakada2020-10-311-1/+0
|
* Use adjusted sp on `iseq_set_sequence()`wanabe2020-10-311-10/+8
|
* Delay `remove_unreachable_chunk()` after `iseq_set_sequence()`wanabe2020-10-311-8/+36
|
* Add warning for str_new_static functionsAlan Wu2020-10-301-3/+8
| | | | | | | Many functions in string.c assume that capa + termlen to be readable memory. Add comment in header to communicate this to extension authors. See also: comment in str_fill_term()
* Move variable closer to usageAlan Wu2020-10-301-1/+1
|
* Tweak return of `Ractor#close`, add docMarc-Andre Lafortune2020-10-301-0/+5
|
* * 2020-10-31 [ci skip]git2020-10-311-1/+1
|
* Ractor's "will" doesn't need copying.Koichi Sasada2020-10-312-35/+67
| | | | | | | | | | `r = Ractor.new{ expr }` generates the block return value from `expr` and we can get this value by `r.take`. Ractor.yield and Ractor#take passing values by copying on default. However, the block return value (we named it "will" in the code) is not referred from the Ractor because the Ractor is already dead. So we can pass the reference of "will" to another ractor without copying. We can apply same story for the propagated exception.
* Promote debug.rb to default gems.Hiroshi SHIBATA2020-10-303-3/+25
| | | | It have no upstream repo yet. This change is experimental for 3.0.0-preview2.
* add a test of define_method with shareable Proc.Koichi Sasada2020-10-301-0/+11
| | | | | | | a method defined by define_method with normal Proc can not cross ractors because the normal Proc is not shareable. However, shareable Proc can be crossed between ractors, so the method with shareable Proc should be called correctly.
* sync vm->waiting_fds correctly.Koichi Sasada2020-10-301-1/+7
| | | | | vm->waiting_fds is global resource so we need to lock it correctly. (forgot to sync one place)
* Promote win32ole to default gems.Hiroshi SHIBATA2020-10-303-3/+24
| | | | | But win32ole gem is still experimental for 3.0.0-preview2. I'm working to extract this library on https://github.com/ruby/win32ole.
* Fix a typo [ci skip]Kazuhiro NISHIYAMA2020-10-301-1/+1
|
* strip trailing spaces [ci skip]Nobuyoshi Nakada2020-10-302-2/+2
|
* Ractor.make_shareable(a_proc)Koichi Sasada2020-10-305-21/+157
| | | | | | | | | | | | | | | | | | | Ractor.make_shareable() supports Proc object if (1) a Proc only read outer local variables (no assignments) (2) read outer local variables are shareable. Read local variables are stored in a snapshot, so after making shareable Proc, any assignments are not affeect like that: ```ruby a = 1 pr = Ractor.make_shareable(Proc.new{p a}) pr.call #=> 1 a = 2 pr.call #=> 1 # `a = 2` doesn't affect ``` [Feature #17284]
* * 2020-10-30 [ci skip]git2020-10-301-1/+1
|
* Make ENV.replace handle multiple environ entries with the same keyJeremy Evans2020-10-291-1/+4
| | | | | | | | | | | | | | | While it is expected that all environment keys are unique, that is not enforced. It is possible by manipulating environ directly you can call a process with an environment with duplicate keys. If ENV.replace was passed a hash with a key where environ had a duplicate for that key, ENV.replace would end up deleting the key from environ. The fix in this case is to not assume that the environment key list has unique keys, and continue processing the entire key list in keylist_delete. Fixes [Bug #17254]
* check isolated Proc more strictlyKoichi Sasada2020-10-299-52/+264
| | | | | Isolated Proc prohibit to access outer local variables, but it was violated by binding and so on, so they should be error.
* An ellipsis (...) can only be placed at the beginningNobuyoshi Nakada2020-10-291-2/+6
|
* Use public allocators for creating new T_OBJECT objectsAaron Patterson2020-10-283-8/+5
| | | | This way the header flags and object internals are set correctly
* Objects are born embedded, so we don't need to check ivprAaron Patterson2020-10-281-2/+1
| | | | | It's not necessary to check ivpt because objects are allocated as "embedded" by default
* Fix error in update-deps due to tab/space differenceJeremy Evans2020-10-281-1/+1
|
* Add Thread.ignore_deadlock accessorJeremy Evans2020-10-284-2/+68
| | | | | | | | | | Setting this to true disables the deadlock detector. It should only be used in cases where the deadlock could be broken via some external means, such as via a signal. Now that $SAFE is no longer used, replace the safe_level_ VM flag with ignore_deadlock for storing the setting. Fixes [Bug #13768]
* Remove another unnecessary testAaron Patterson2020-10-281-5/+3
| | | | Same as 5be42c1ef4f7ed0a8004cad750a9ce61869bd768
* Remove unnecessary conditionalAaron Patterson2020-10-281-8/+6
| | | | | | | | As of 0b81a484f3453082d28a48968a063fd907daa5b5, `ROBJECT_IVPTR` will always return a value, so we don't need to test whether or not we got one. T_OBJECTs always come to life as embedded objects, so they will return an ivptr, and when they become "unembedded" they will have an ivptr at that point too
* If an object isn't embedded it will have an ivptrAaron Patterson2020-10-281-3/+2
| | | | | We don't need to check the existence if an ivptr because non-embedded objects will always have one
* * 2020-10-29 [ci skip]git2020-10-291-1/+1
|
* `dest` is always embedded so we can remove this checkAaron Patterson2020-10-281-6/+3
|
* compile.c: separate compile_builtin_function_call (#3711)Kenta Murata2020-10-281-80/+88
|
* Added benchmark of vm_send by variable [ci skip]Nobuyoshi Nakada2020-10-281-0/+3
|
* * 2020-10-28 [ci skip]git2020-10-281-1/+1
|
* test/ruby/test_rational.rb: Prevent "assigned but unused variable"Yusuke Endoh2020-10-281-1/+1
|
* Revert "Fixed typo"Nobuyoshi Nakada2020-10-271-1/+1
| | | | | | This reverts commit 379a5ca539af0e954b1cdf63b9365ad208b9c7f3. This "typo" is intentional to test the transposition detection by did_you_mean.
* Fixed typoHiroshi SHIBATA2020-10-271-1/+1
|
* Separate `send` into `public_send` and `__send__`Nobuyoshi Nakada2020-10-2722-42/+43
|
* Removed unused environment variableNobuyoshi Nakada2020-10-271-1/+0
|
* [DOC] more precise description of "**" in Dir.glob pattern [ci skip]Nobuyoshi Nakada2020-10-271-1/+3
|
* Revert assert for debugging on CIAlan Wu2020-10-261-1/+0
| | | | | This reverts commit ac69849e49982ea83036c04c5d5f7245e3956a49. The bug seems to have been fixed.
* freeze dynamic regexp literalsKoichi Sasada2020-10-272-1/+4
| | | | | Regexp literals are frozen, and also dynamically comppiled Regexp literals (/#{expr}/) are frozen.
* * 2020-10-27 [ci skip]git2020-10-271-1/+1
|
* freeze Process::StatusKoichi Sasada2020-10-271-0/+1
| | | | It seems immutable information.
* Allow non-argument endless-def with a space instead of parenthesesNobuyoshi Nakada2020-10-262-7/+10
|
* rational.c: convert a numerator to rational before calling fdiv in ↵Kenta Murata2020-10-262-1/+17
| | | | | | Kernel.Rational() (#3702) This makes `Rational(BigDecimal(1), 60) == Rational(1, 60)`. [Bug #16518]
* Assoc pattern matching (#3703)Nobuyoshi Nakada2020-10-268-65/+37
| | | | | [Feature #17260] One-line pattern matching using tASSOC R-assignment is rejected instead.
* Ignore <internal: entries from core library methods for Kernel#warn(message, ↵Benoit Daloze2020-10-265-12/+83
| | | | | | uplevel: n) * Fixes [Bug #17259]