Age | Commit message (Collapse) | Author |
|
We forgot about that one, it's quite useful to see which capacity
we started from.
Notes:
Merged: https://github.com/ruby/ruby/pull/6891
|
|
https://github.com/ruby/date/commit/b7a8229041
|
|
Remove all shipped files and require path on JRuby until we can
add JRuby's extension to the gem.
Temporary workaround for #48
https://github.com/ruby/date/commit/94c3becef2
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6890
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6890
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6890
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6890
|
|
https://github.com/ruby/etc/commit/5cac138538
|
|
https://github.com/ruby/stringio/commit/e62b9d78d3
|
|
I see several arguments in doing so.
First they use a non trivial amount of memory, so for various memory
profiling/mapping tools it is relevant to have visibility of the space
occupied by shapes.
Then, some pathological code can create a tons of shape, so it is
valuable to have a way to have a way to observe shapes without having
to compile Ruby with `SHAPE_DEBUG=1`.
And additionally it's likely much faster to dump then this way than
to use `RubyVM::Shape`.
There are however a few open questions:
- Shapes can't respect the `since:` argument. Not sure what to do when
it is provided. Would probably make sense to not dump them.
- Maybe it would make more sense to have a separate `ObjectSpace.dump_shapes`?
- Maybe instead `dump_all` should take a `shapes: false` argument?
Additionally, `ObjectSpace.dump_shapes` is added for the use case of
debugging the evolution of the shape tree.
Notes:
Merged: https://github.com/ruby/ruby/pull/6868
|
|
https://github.com/ruby/stringio/commit/5ba853d6ff
|
|
https://github.com/ruby/psych/commit/bdf20e6042
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6864
|
|
https://github.com/ruby/bigdecimal/commit/25a75c2033
|
|
https://github.com/ruby/zlib/commit/f1ce5e3e8d
|
|
https://github.com/ruby/win32ole/commit/e4a1f3a2bf
|
|
This reverts commit https://github.com/ruby/stringio/commit/aeb7e1a0bde6.
https://github.com/ruby/stringio/commit/003dd0d003
|
|
https://github.com/ruby/stringio/commit/aeb7e1a0bd
|
|
https://github.com/ruby/psych/commit/4fed0941b9
|
|
https://github.com/ruby/pathname/commit/7e796cc78e
|
|
https://github.com/ruby/nkf/commit/98607bd2be
|
|
https://github.com/ruby/io-nonblock/commit/46c0ec245e
|
|
https://github.com/ruby/fcntl/commit/20fd776303
|
|
https://github.com/ruby/etc/commit/b3e9d9ceb0
|
|
https://github.com/ruby/digest/commit/fad16582ea
|
|
https://github.com/ruby/date/commit/ac1642cf39
|
|
https://github.com/ruby/pathname/commit/3cb5ed2576
|
|
https://github.com/ruby/io-console/commit/aa8fc7e947
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6700
|
|
|
|
(https://github.com/ruby/erb/pull/39)
* Skip using the extension for truffleruby as well
* Just skip building the C extension for TruffleRuby
* Skip rake compile for truffleruby
* Use resolve_feature_path
* Revert "Use resolve_feature_path"
This reverts commit https://github.com/ruby/erb/commit/acc1e0c0ffaf.
* Use resolve_feature_path with LoadError guard
https://github.com/ruby/erb/commit/85dcb08439
|
|
(https://github.com/ruby/erb/pull/38)
Close #32
|
|
ERB::Util.html_escape has been public, but ERB::Util#html_escape had
been private.
https://github.com/ruby/erb/commit/e62210bf56
|
|
|
|
(https://github.com/ruby/erb/pull/35)
https://github.com/ruby/erb/commit/1280046952
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6777
|
|
* s/Innteger/Integer/
* s/diretory/directory/
* s/Bufer/Buffer/
* s/defalt/default/
* s/covearge/coverage/
Notes:
Merged-By: k0kubun <[email protected]>
|
|
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| -|
```
Notes:
Merged: https://github.com/ruby/ruby/pull/6770
|
|
* 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 <[email protected]>
Notes:
Merged-By: ioquatix <[email protected]>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6741
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6741
|
|
https://github.com/ruby/bigdecimal/commit/b2123faa52
|
|
https://github.com/ruby/bigdecimal/commit/d6f5bb40c7
|
|
https://github.com/ruby/bigdecimal/commit/d70a4d53e5
|
|
* Add NewZero* and NewOne* function families
* Use them instead of VpAlloc for allocating 0 and 1
https://github.com/ruby/bigdecimal/commit/9276a94ac7
|
|
* Add rbd_allocate_struct_zero for making 0.0
* Add rbd_allocate_struct_one for making 1.0
* Use them to replace VpAlloc calls
* Renmae VpPt5 to VpConstPt5
https://github.com/ruby/bigdecimal/commit/40c826f5e6
|
|
https://github.com/ruby/bigdecimal/commit/5391f7e92c
|
|
* Stop reusing mx and mf
* Check szVal == NULL first
* Treat special values before checking the leading `#`
https://github.com/ruby/bigdecimal/commit/14f3d965f8
|
|
* Rename them
* Make allocation count operations atomic
https://github.com/ruby/bigdecimal/commit/a5ab34a115
|