summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2022-12-09objspace_dump.c: dump the capacity field for INITIAL_CAPACITY shapesJean Boussier
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
2022-12-09[ruby/date] Bump version to 3.3.1Hiroshi SHIBATA
https://github.com/ruby/date/commit/b7a8229041
2022-12-09[ruby/date] No-op gem for JRuby for nowCharles Oliver Nutter
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
2022-12-09Merge json-2.6.3Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6890
2022-12-09Merge stringio-3.0.4Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6890
2022-12-09Merge fiddle-1.1.1Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6890
2022-12-09Merge strscan-3.0.5Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6890
2022-12-09[ruby/etc] Bump version to 1.4.2Hiroshi SHIBATA
https://github.com/ruby/etc/commit/5cac138538
2022-12-08[ruby/stringio] bump up to 3.0.5Sutou Kouhei
https://github.com/ruby/stringio/commit/e62b9d78d3
2022-12-08ObjectSpace.dump_all: dump shapes as wellJean Boussier
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
2022-12-08[ruby/stringio] bump up to 3.0.4Sutou Kouhei
https://github.com/ruby/stringio/commit/5ba853d6ff
2022-12-08[ruby/psych] Bump version to 5.0.1Hiroshi SHIBATA
https://github.com/ruby/psych/commit/bdf20e6042
2022-12-06Update dependenciesDaniel Colson
2022-12-05Add shape_id to heap dumpJemma Issroff
Notes: Merged: https://github.com/ruby/ruby/pull/6864
2022-12-05[ruby/bigdecimal] Bump version to 3.1.3Hiroshi SHIBATA
https://github.com/ruby/bigdecimal/commit/25a75c2033
2022-12-05[ruby/zlib] Bump version to 3.0.0Hiroshi SHIBATA
https://github.com/ruby/zlib/commit/f1ce5e3e8d
2022-12-05[ruby/win32ole] Bump version to 1.8.9Hiroshi SHIBATA
https://github.com/ruby/win32ole/commit/e4a1f3a2bf
2022-12-05[ruby/stringio] Revert "Bump version to 3.0.4"Hiroshi SHIBATA
This reverts commit https://github.com/ruby/stringio/commit/aeb7e1a0bde6. https://github.com/ruby/stringio/commit/003dd0d003
2022-12-05[ruby/stringio] Bump version to 3.0.4Hiroshi SHIBATA
https://github.com/ruby/stringio/commit/aeb7e1a0bd
2022-12-05[ruby/psych] Bump version to 5.0.0Hiroshi SHIBATA
https://github.com/ruby/psych/commit/4fed0941b9
2022-12-05[ruby/pathname] Bump version to 0.2.1Hiroshi SHIBATA
https://github.com/ruby/pathname/commit/7e796cc78e
2022-12-05[ruby/nkf] Bump version to 0.1.2Hiroshi SHIBATA
https://github.com/ruby/nkf/commit/98607bd2be
2022-12-05[ruby/io-nonblock] Bump version to 0.2.0Hiroshi SHIBATA
https://github.com/ruby/io-nonblock/commit/46c0ec245e
2022-12-05[ruby/fcntl] Bump version to 1.0.2Hiroshi SHIBATA
https://github.com/ruby/fcntl/commit/20fd776303
2022-12-05[ruby/etc] Bump version to 1.4.1Hiroshi SHIBATA
https://github.com/ruby/etc/commit/b3e9d9ceb0
2022-12-05[ruby/digest] Bump version to 3.1.1Hiroshi SHIBATA
https://github.com/ruby/digest/commit/fad16582ea
2022-12-05[ruby/date] Bump version to 3.3.0Hiroshi SHIBATA
https://github.com/ruby/date/commit/ac1642cf39
2022-12-03[ruby/pathname] [Misc #19155] [DOC] Addion of absolute pathsNobuyoshi Nakada
https://github.com/ruby/pathname/commit/3cb5ed2576
2022-12-02[ruby/io-console] Check rawmode option names strictlyNobuyoshi Nakada
https://github.com/ruby/io-console/commit/aa8fc7e947
2022-12-02Introduce encoding check macroS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/6700
2022-11-30Removed documentation for incomplete option about [Feature #17134]Hiroshi SHIBATA
2022-11-27[ruby/erb] Skip using the extension for truffleruby as wellTakashi Kokubun
(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
2022-11-26[ruby/erb] Define ERB::Escape moduleTakashi Kokubun
(https://github.com/ruby/erb/pull/38) Close #32
2022-11-25[ruby/erb] Keep ERB::Util#html_escape privateTakashi Kokubun
ERB::Util.html_escape has been public, but ERB::Util#html_escape had been private. https://github.com/ruby/erb/commit/e62210bf56
2022-11-25Use `rb_sprintf` instead of deprecated `sprintf`Nobuyoshi Nakada
2022-11-24[ruby/erb] Rename erb.so to erb/escape.soTakashi Kokubun
(https://github.com/ruby/erb/pull/35) https://github.com/ruby/erb/commit/1280046952
2022-11-21Use class methods of `File` over `Kernel.open` and `IO.read`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6777
2022-11-20Fix typos (#6775)Yudai Takada
* s/Innteger/Integer/ * s/diretory/directory/ * s/Bufer/Buffer/ * s/defalt/default/ * s/covearge/coverage/ Notes: Merged-By: k0kubun <[email protected]>
2022-11-21Enhance keep_tokens option for RubyVM::AbstractSyntaxTree parsing methodsyui-knk
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
2022-11-17Add support for `sockaddr_un` on Windows. (#6513)Samuel Williams
* 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]>
2022-11-16Clean extension build directories and exts.mk fileNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6741
2022-11-16Remove `-j` option from `MFLAGS` for sub-makesNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6741
2022-11-15[ruby/bigdecimal] Add fallback definition of MAYBE_UNUSEDKenta Murata
https://github.com/ruby/bigdecimal/commit/b2123faa52
2022-11-15[ruby/bigdecimal] Replace sprintf by snprintfKenta Murata
https://github.com/ruby/bigdecimal/commit/d6f5bb40c7
2022-11-15[ruby/bigdecimal] Mark some functions MAYBE_UNUSEDKenta Murata
https://github.com/ruby/bigdecimal/commit/d70a4d53e5
2022-11-13[ruby/bigdecimal] Add specific value allocatorsKenta Murata
* Add NewZero* and NewOne* function families * Use them instead of VpAlloc for allocating 0 and 1 https://github.com/ruby/bigdecimal/commit/9276a94ac7
2022-11-13[ruby/bigdecimal] Add and use specific value allocatorsKenta Murata
* 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
2022-11-13[ruby/bigdecimal] Make VPrint function always availableKenta Murata
https://github.com/ruby/bigdecimal/commit/5391f7e92c
2022-11-13[ruby/bigdecimal] Tweak VpAllocKenta Murata
* Stop reusing mx and mf * Check szVal == NULL first * Treat special values before checking the leading `#` https://github.com/ruby/bigdecimal/commit/14f3d965f8
2022-11-13[ruby/bigdecimal] Rewrite allocation functionsKenta Murata
* Rename them * Make allocation count operations atomic https://github.com/ruby/bigdecimal/commit/a5ab34a115