Граф коммитов

522 Коммитов

Автор SHA1 Сообщение Дата
git f1f39a5fdb Update default gems list at c4d22d47f8 [ci skip] 2022-12-05 05:48:41 +00:00
Hiroshi SHIBATA 650b87b0bd
Manually bumped date-3.3.0 version 2022-12-05 14:40:32 +09:00
git 6b0ff6f9eb Update default gems list at 0f534bfb6a [ci skip] 2022-12-05 05:25:11 +00:00
git f64b235432 Update default gems list at d7b00b55a9 [ci skip] 2022-12-05 05:00:54 +00:00
git 3491ac8ae1 Update default gems list at 5fb3dec058 [ci skip] 2022-12-05 04:56:36 +00:00
git ed1e0c2d13 Update bundled gems list at 6f3c8fdab4 [ci skip] 2022-12-02 17:23:52 +00:00
Takashi Kokubun fa77bcf722
YJIT: Change the default --yjit-call-threshold to 30 (#6850) 2022-12-02 11:32:49 -05:00
Kazuhiro NISHIYAMA b3890670b2
Fix a link [ci skip] 2022-12-02 16:22:12 +09:00
Kazuhiro NISHIYAMA 6930a2564c
NEWS.md: sort [ci skip] 2022-12-02 16:22:12 +09:00
Samuel Williams 4fa47eabf2
Clarify the storage argument. (#6849)
* Slightly more consistent indentation with other parts of the document.
2022-12-02 17:49:42 +13:00
Nobuyoshi Nakada 01790de9e6
Fix indents in NEWS [ci skip]
The MarkDown parser in RDoc requires 4 columns indentation for
paragraphs following list items.  Otherwise, the following paragraphs
are not interpreted as the part of the preceeding list item,
2022-12-01 23:01:28 +09:00
Samuel Williams 0436f1e15a
Introduce `Fiber#storage` for inheritable fiber-scoped variables. (#6612) 2022-12-01 23:00:33 +13:00
Nobuyoshi Nakada 4e68b59431 [Feature #19138] Add `SyntaxError#path` 2022-12-01 17:05:41 +09:00
git 062c5a9e6b Update default gems list at d6e91784ab [ci skip] 2022-11-30 03:59:46 +00:00
Yusuke Endoh 33a9a7fd8d Mention Exception#detailed_message in NEWS.md 2022-11-30 11:35:44 +09:00
Yusuke Endoh 4e13f5b579 Mention Regexp.timeout= in NEWS.md 2022-11-30 11:34:02 +09:00
git 4db429d211 Update default gems list at 4f8c6711dd [ci skip] 2022-11-29 04:59:09 +00:00
git 612b528c8a Update default gems list at d13de3a62e [ci skip] 2022-11-28 18:45:17 +00:00
git dcf94e719c Update default gems list at 476700c06f [ci skip] 2022-11-28 12:50:43 +00:00
Kazuhiro NISHIYAMA 833545a211
NEWS.md: sort [ci skip] 2022-11-28 13:57:50 +09:00
git 529e58d610 Update default gems list at b335d899ff [ci skip] 2022-11-28 04:41:36 +00:00
git 1612d57691 Update default gems list at 98074a57ca [ci skip] 2022-11-28 03:35:19 +00:00
git 0096d99eff Update bundled gems list at 2022-11-28 2022-11-28 02:57:48 +00:00
git d055c44b0c Update default gems list at 6fdc677186 [ci skip] 2022-11-27 06:33:33 +00:00
git 26794b95cf Update bundled gems list at 3853385377 [ci skip] 2022-11-26 06:45:33 +00:00
git 51994955cd Update default gems list at 534bac04e7 [ci skip] 2022-11-26 06:06:50 +00:00
Takashi Kokubun 91c7e8afc4 Revert "Update default gems list at 574896a0ce [ci skip]"
This reverts commit eb3a6ae524.
2022-11-25 21:36:16 -08:00
git eb3a6ae524 Update default gems list at 574896a0ce [ci skip] 2022-11-26 05:33:02 +00:00
Nobuyoshi Nakada 15be9ecbcc
Revert "Update default gems list at d0bb24c497 [ci skip]"
This reverts commit ba26dd7ba5, which
duplicates the list.
2022-11-26 13:29:17 +09:00
git ba26dd7ba5 Update default gems list at d0bb24c497 [ci skip] 2022-11-26 04:13:23 +00:00
Nobuyoshi Nakada d0bb24c497
[DOC] Fix loose and tight lists
The MarkDown parser of RDoc does not allow mixing loose and tight
lists, and the results may be very unexpected otherwise.
2022-11-26 13:12:10 +09:00
Nobuyoshi Nakada 19fdc9cac2
[DOC] Fix indents of nested bullet lists 2022-11-26 13:12:10 +09:00
Takashi Kokubun ac4d00df82 MJIT: Change default --mjit-max-cache back to 100
These days we benchmark MJIT using yjit-bench. The warmup duration in
yjit-bench is very short, so compiling many methods comes at a cost even
while it's actually optimal for MJIT to compile everything / tens of
thousands of methods once it reaches the peak performance.

yjit-bench doesn't necessarily represent the peak performance on production.
It measures the performance of Ruby 30~60s after boot. If your JIT takes
more than 1 minute to warm up, there's no way for the JIT to make the numbers
good on yjit-bench.

Until we make MJIT's compilation much faster, we don't afford compiling
10,000 methods on yjit-bench.

This change alone makes MJIT's benchmark number on railsbench 2x better :p
2022-11-25 15:55:19 -08:00
Nobuyoshi Nakada 8a50db7dfa
NEWS: "Find pattern" is not related to find.rb [ci skip] 2022-11-25 19:53:35 +09:00
Nobuyoshi Nakada 26baf4813e
[Feature #18925] [DOC] Add `FileUtils.ln_sr` to NEWS 2022-11-25 19:51:31 +09:00
Nobuyoshi Nakada fb7598fb3e
[DOC] Remove extraneous backticks
So cross-references to defined classes/modules/methods work.
2022-11-25 19:17:44 +09:00
Nobuyoshi Nakada 4ab89d57bb
Fix indents in NEWS [ci skip]
The MarkDown parser in RDoc requires 4 columns indentation for
paragraphs following list items.
2022-11-25 19:07:21 +09:00
yui-knk e29d9e9fba Add examples to error_tolerant option in NEWS [ci skip] 2022-11-25 15:36:00 +09:00
Takashi Kokubun d15de2f0d7 Add a NEWS entry about erb -S removal [ci skip] 2022-11-24 14:55:07 -08:00
Maxime Chevalier-Boisvert 07169fd824
Update YJIT section of `NEWS.md` (#6803)
* Update YJIT section of `NEWS.md`

* Update NEWS.md
2022-11-24 16:37:04 -05:00
zverok eaf2b6c439 Add Time#deconstruct_keys 2022-11-22 23:10:46 +02:00
git 32d202eb93 Update default gems list at 805d70f716 [ci skip] 2022-11-22 02:13:26 +00:00
git 5304b3bd85 Update default gems list at 3f960cf445 [ci skip] 2022-11-22 02:01:14 +00:00
Takashi Kokubun 607fb49dbc
YJIT: Lower the required Rust version from 1.58.1 to 1.58.0 (#6780) 2022-11-21 10:27:39 -08:00
git 427985c194 Update default gems list at 509f04ca91 [ci skip] 2022-11-21 05:25:05 +00:00
yui-knk db8ff237c7 Add a link to Feature #19070 ticket [ci skip] 2022-11-21 14:17:07 +09:00
yui-knk d8601621ed Enhance keep_tokens option for RubyVM::AbstractSyntaxTree parsing methods
Implementation for Language Server Protocol (LSP) sometimes needs token information.
For example both `m(1)` and `m(1, )` has same AST structure other than node locations
then it's impossible to check the existence of `,` from AST. However in later case,
it might be better to suggest variables list for the second argument.
Token information is important for such case.

This commit adds these methods.

* Add `keep_tokens` option for `RubyVM::AbstractSyntaxTree.parse`, `.parse_file` and `.of`
* Add `RubyVM::AbstractSyntaxTree::Node#tokens` which returns tokens for the node including tokens for descendants nodes.
* Add `RubyVM::AbstractSyntaxTree::Node#all_tokens` which returns all tokens for the input script regardless the receiver node.

[Feature #19070]

Impacts on memory usage and performance are below:

Memory usage:

```
$ cat test.rb
root = RubyVM::AbstractSyntaxTree.parse_file(File.expand_path('../test/ruby/test_keyword.rb', __FILE__), keep_tokens: true)

$ /usr/bin/time -f %Mkb /usr/local/bin/ruby -v
ruby 3.2.0dev (2022-11-19T09:41:54Z 19070-keep_tokens d3af1b8057) [x86_64-linux]
11408kb

# keep_tokens :false
$ /usr/bin/time -f %Mkb /usr/local/bin/ruby test.rb
17508kb

# keep_tokens :true
$ /usr/bin/time -f %Mkb /usr/local/bin/ruby test.rb
30960kb
```

Performance:

```
$ cat ../ast_keep_tokens.yml
prelude: |
  src = <<~SRC
    module M
      class C
        def m1(a, b)
          1 + a + b
        end
      end
    end
  SRC
benchmark:
  without_keep_tokens: |
    RubyVM::AbstractSyntaxTree.parse(src, keep_tokens: false)
  with_keep_tokens: |
    RubyVM::AbstractSyntaxTree.parse(src, keep_tokens: true)

$ make benchmark COMPARE_RUBY="./ruby" ARGS=../ast_keep_tokens.yml
/home/kaneko.y/.rbenv/shims/ruby --disable=gems -rrubygems -I../benchmark/lib ../benchmark/benchmark-driver/exe/benchmark-driver \
            --executables="compare-ruby::./ruby -I.ext/common --disable-gem" \
            --executables="built-ruby::./miniruby -I../lib -I. -I.ext/common  ../tool/runruby.rb --extout=.ext  -- --disable-gems --disable-gem" \
            --output=markdown --output-compare -v ../ast_keep_tokens.yml
compare-ruby: ruby 3.2.0dev (2022-11-19T09:41:54Z 19070-keep_tokens d3af1b8057) [x86_64-linux]
built-ruby: ruby 3.2.0dev (2022-11-19T09:41:54Z 19070-keep_tokens d3af1b8057) [x86_64-linux]
warming up..

|                     |compare-ruby|built-ruby|
|:--------------------|-----------:|---------:|
|without_keep_tokens  |     21.659k|   21.303k|
|                     |       1.02x|         -|
|with_keep_tokens     |      6.220k|    5.691k|
|                     |       1.09x|         -|
```
2022-11-21 09:01:34 +09:00
Hiroshi SHIBATA a80b66e7eb
Added build instructions of psych and fiddle with source files of libyaml and libffi 2022-11-18 17:51:37 +09:00
Samuel Williams cb4c89e08e
Fix quoting of code in `NEWS.md`. 2022-11-17 15:19:21 -08:00
Samuel Williams ea8a7287e2
Add support for `sockaddr_un` on Windows. (#6513)
* Windows: Fix warning about undefined if_indextoname()

* Windows: Fix UNIXSocket on MINGW and make .pair more reliable

* Windows: Use nonblock=true for read tests with scheduler

* Windows: Move socket detection from File.socket? to File.stat

Add S_IFSOCK to Windows and interpret reparse points accordingly.
Enable tests that work now.

* Windows: Use wide-char functions to UNIXSocket

This fixes behaviour with non-ASCII characters.
It also fixes deletion of temporary UNIXSocket.pair files.

* Windows: Add UNIXSocket tests for specifics of Windows impl.

* Windows: fix VC build due to missing _snwprintf

Avoid usage of _snwprintf, since it fails linking ruby.dll like so:

  linking shared-library x64-vcruntime140-ruby320.dll
  x64-vcruntime140-ruby320.def : error LNK2001: unresolved external symbol snwprintf
  x64-vcruntime140-ruby320.def : error LNK2001: unresolved external symbol vsnwprintf_l

whereas linking miniruby.exe succeeds.

This patch uses snprintf on the UTF-8 string instead.

Also remove branch GetWindowsDirectoryW, since it doesn't work.

* Windows: Fix dangling symlink test failures

Co-authored-by: Lars Kanis <kanis@comcard.de>
2022-11-17 14:50:25 -08:00