summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-11-28Raise `NoMatchingPatternError` when expr `in` pat doesn't matchNobuyoshi Nakada
* `expr in pattern` should raise `NoMatchingError` when unmatched * `expr in pattern` should return `nil`. (this is unspecified, but this feature is experimental, at all) [Feature #16355]
2019-11-27Fix documentation of `MonitorMixin#new_cond` [ci skip] (#2707)y-yagi
Since https://github.com/ruby/ruby/pull/2576, `new_cond` uses the Monitor object, not the receiver.
2019-11-28Suppress strict-aliasing warning by x86_64-w64-mingw32-gcc 7.4.0Nobuyoshi Nakada
2019-11-28Delete newline when C-k on emacs mode at EOLaycabta
2019-11-28Remove two removed constantsaycabta
2019-11-28Fix ghost method line noaycabta
2019-11-27Update documentation for ruby2_keywords [ci skip]Jeremy Evans
2019-11-27Drop windows-2016 on GitHub ActionsKazuhiro NISHIYAMA
https://help.github.com/en/actions/automating-your-workflow-with-github-actions/software-installed-on-github-hosted-runners#windows-server-2016 > Note: The Windows Server 2016 virtual environment will be removed on December 3, 2019. Notes: Merged: https://github.com/ruby/ruby/pull/2704
2019-11-28* 2019-11-28 [ci skip]git
2019-11-27Don't modify rest array when using ruby2_keywordsJeremy Evans
Previously, the rest array was modified, but it turns out that is not necessary. Not modifying the rest array fixes cases when the rest array is used more than once. Notes: Merged: https://github.com/ruby/ruby/pull/2706
2019-11-27prefer class_serial over m_tbl卜部昌平
Decades ago, among all the data that a class has, its method table was no doubt the most frequently accessed data. Previous data structures were based on that assumption. Today that is no longer true. The most frequently accessed field moved to class_serial. That field is not always as wide as VALUE but if it is, let us swap m_tbl and class_serial. Calculating ------------------------------------- ours trunk Optcarrot Lan_Master.nes 47.363 46.630 fps Comparison: Optcarrot Lan_Master.nes ours: 47.4 fps trunk: 46.6 fps - 1.02x slower Notes: Merged: https://github.com/ruby/ruby/pull/2701
2019-11-27* 2019-11-27 [ci skip]git
2019-11-27rename __builtin_inline!(code) and introduce others.Koichi Sasada
rename __builtin_inline!(code) to __builtin_cstmt(code). Also this commit introduce the following inlining C code features. * __builtin_cstmt!(STMT) (renamed from __builtin_inline!) Define a function which run STMT implicitly and call this function at evatuation time. Note that you need to return some value in STMT. If there is a local variables (includes method parameters), you can read these values. static VALUE func(ec, self) { VALUE x = ...; STMT } Usage: def double a # a is readable from C code. __builtin_cstmt! 'return INT2FIX(FIX2INT(a) * 2);' end * __builtin_cexpr!(EXPR) Define a function which invoke EXPR implicitly like `__builtin_cstmt!`. Different from cstmt!, which compiled with `return EXPR;`. (`return` and `;` are added implicitly) static VALUE func(ec, self) { VALUE x = ...; return EXPPR; } Usage: def double a __builtin_cexpr! 'INT2FIX(FIX2INT(a) * 2)' end * __builtin_cconst!(EXPR) Define a function which invoke EXPR implicitly like cexpr!. However, the function is called once at compile time, not evaluated time. Any local variables are not accessible (because there is no local variable at compile time). Usage: GCC = __builtin_cconst! '__GNUC__' * __builtin_cinit!(STMT) STMT are writtein in auto-generated code. This code does not return any value. Usage: __builtin_cinit! '#include <zlib.h>' def no_compression? __builtin_cconst! 'Z_NO_COMPRESSION ? Qtrue : Qfalse' end
2019-11-26[ripper] Fixed unique key check in pattern matchingNobuyoshi Nakada
Check keys * by an internal table, instead of unstable dispatched results * and by parsed key values, instead of escaped forms in the source
2019-11-26Hoisted out `push_pvtbl`/`pop_pvtbl`Nobuyoshi Nakada
2019-11-26Wrap `p_kw` in an array at `p_kwarg`Nobuyoshi Nakada
Not in `p_kw` itself, which makes key and variable/expr pair only now.
2019-11-26Allow `$10` and more in the Ripper DSLNobuyoshi Nakada
2019-11-26Write rbinc files to the source directoryNobuyoshi Nakada
Update the target file itself of the dependency on this script. Fall back to the current working directory if unwritable.
2019-11-26Remove an unnecessary variableaycabta
2019-11-26Add sync task for ruby/opensslHiroshi SHIBATA
2019-11-26Slightly fix the warning message [ci skip]Takashi Kokubun
I'm not sure, but maybe it was gramatically incorrect?
2019-11-26Suggest an alternative to suppress the irb warningTakashi Kokubun
2019-11-26Add `--with-openssl-dir` to windows on GitHub ActionsKazuhiro NISHIYAMA
https://github.com/ruby/ruby/commit/7bd7a013b14fb6c4403ff243ec5db13c5c71f552/checks?check_suite_id=328682567#step:10:1634 ``` *** Following extensions are not compiled: openssl: Could not be configured. It will not be installed. " d:/a/ruby/ruby/src/ext/openssl/extconf.rb:97: OpenSSL library could not be found. You might want to use --with-openssl-dir=<dir> option to specify the prefix where OpenSSL is installed." ```
2019-11-26* 2019-11-26 [ci skip]git
2019-11-26Fix `$(RMALL) -r` on WindowsNAKAMURA Usaku
`set recursive=1 &` sets `1 ` to `recursive`, not `1`.
2019-11-25[ripper] Quoted label without expression must be a local variableNobuyoshi Nakada
The difference from 0b8c73aa65add5c57b46b0cfdf4e661508802172 is to add the result of `string_add` event to marking objects. ```C RNODE($1)->nd_rval = add_mark_object(p, $$); ```
2019-11-25lldb_cruby.py: improved dump of SymbolNobuyoshi Nakada
[ci skip]
2019-11-25Improve consistency of bool/true/falseKazuhiro NISHIYAMA
2019-11-25add fast path for argc==0.Koichi Sasada
If calling builtin functions with no arguments, we don't need to calculate argv location.
2019-11-25Set TRUE/FALSE to `bool ruby_tz_uptodate_p` instead of 1/FALSEKazuhiro NISHIYAMA
2019-11-25Fix a typo [ci skip]Kazuhiro NISHIYAMA
2019-11-25Remove duplicated line in NEWS [ci skip]Junichi Ito
[ruby-core:95935] [Misc #16365]
2019-11-25lldb_cruby.py: fixed dump of embedded RArrayNobuyoshi Nakada
[ci skip]
2019-11-25Fix the docs for Proc#>>.Paweł Przeniczny
The docs are wrong about the behaviour of `#>>` (looks like it was copied from `#<<`) In `(prc >> g).call(n)` _prc_ is called first (with _n_), *then* _g_ is called with the result. Code examples are OK. Notes: Merged: https://github.com/ruby/ruby/pull/2691
2019-11-25Cache loaded module to suppress method redefined warningsaycabta
2019-11-25* 2019-11-25 [ci skip]git
2019-11-25Remove e2mmap dependencyaycabta
2019-11-25Remove lib/irb/slex.rbaycabta
2019-11-24Remove debug code...aycabta
2019-11-24* 2019-11-24 [ci skip]git
2019-11-24Disable tracer ext of IRB when tracer doesn't foundaycabta
2019-11-23Show include directive differences only when under gitv2_7_0_preview3Nobuyoshi Nakada
When building from tarballs, the source directory is not a git repository.
2019-11-23Use realpath to try to fix failures with symlinksKazuhiro NISHIYAMA
2019-11-22Stop using undefined matrix.os for macOSTakashi Kokubun
and use github.workflow instead. Applied a similar change to MJIT too.
2019-11-23Tracer.set_get_line_procs should support block and Proc objectaycabta
Original Tracer.set_get_line_procs is implemented by "def set_get_line_procs(p = proc)". It means that original Tracer.set_get_line_procs supports block and Proc object.
2019-11-23Tracer.add_filter should support block and Proc objectaycabta
Original Tracer.add_filter is implemented by "def add_filter(p = proc)". It means that original Tracer.add_filter supports block and Proc object.
2019-11-22Count pinned slots using only bitmapJohn Hawthorn
This is significantly faster than checking BUILTIN_TYPEs because we access significantly less memory. We also use popcount to count entire words at a time. The only functional difference from the previous implementation is that T_ZOMBIE objects will no longer be counted. However those are temporary objects which should be small in number, and this method has always been an estimate. Notes: Merged: https://github.com/ruby/ruby/pull/2688
2019-11-22Optimize pinned page sortingJohn Hawthorn
Previously we would count the pinned objects on each comparison. Since sorting is O(N log N) and we calculated this on both left and right pages on each comparison this resulted in a extra iterations over the slots. Notes: Merged: https://github.com/ruby/ruby/pull/2688
2019-11-22Use value of use_verifier in gc_compactJohn Hawthorn
Notes: Merged: https://github.com/ruby/ruby/pull/2688
2019-11-23* 2019-11-23 [ci skip]git