summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2020-12-20[ruby/irb] Add measure commandaycabta
You can use "measure" command to check performance in IRB like below: irb(main):001:0> 3 => 3 irb(main):002:0> measure TIME is added. => nil irb(main):003:0> 3 processing time: 0.000058s => 3 irb(main):004:0> measure :off => nil irb(main):005:0> 3 => 3 You can set "measure :on" by "IRB.conf[:MEASURE] = true" in .irbrc, and, also, set custom performance check method: IRB.conf[:MEASURE_PROC][:CUSTOM] = proc { |context, code, line_no, &block| time = Time.now result = block.() now = Time.now puts 'custom processing time: %fs' % (Time.now - time) if IRB.conf[:MEASURE] result } https://github.com/ruby/irb/commit/3899eaf2e2
2020-12-20[ruby/irb] Handle rest of tokens correctly if no newline at lastaycabta
https://github.com/ruby/irb/commit/f3c8edad2a
2020-12-20Remove unnecessary files from .documentKazuki Tsujimoto
* ruby:ext/rbconfig/exts.mk * ruby:ext/rbconfig/sizeof/Makefile * ruby:ext/rbconfig/sizeof/depend * ruby:ext/rbconfig/sizeof/mkmf.log * ruby:ext/win32/depend * ruby:ext/win32/exts.mk * ruby:ext/win32/resolv/depend * ruby:lib/racc/pre-setup
2020-12-19Try to test with rake-13.0.2 again.Hiroshi SHIBATA
[ruby/fileutils] Make verbose output go to stdout instead of stderr This reverts commit 510df47f5f7f83918d3aa00316c8a5b959d80d7c.
2020-12-19[ruby/reline] Use cached prompt list when just moved the cursoraycabta
https://github.com/ruby/reline/commit/cfe619460b
2020-12-19[ruby/reline] Yank by em-kill-region correctlyaycabta
This closes ruby/reline#106. https://github.com/ruby/reline/commit/2549a52e15
2020-12-19[ruby/reline] Bind yank-pop correctlyaycabta
https://github.com/ruby/reline/commit/3c74beac65
2020-12-19[ruby/reline] Add Enumerable to KillRing for debuggingaycabta
https://github.com/ruby/reline/commit/d208874152
2020-12-19[ruby/reline] [ruby/irb] Call ripper only once when generating dynamic promptaycabta
https://github.com/ruby/irb/commit/babb122a48 https://github.com/ruby/reline/commit/e6dbcb3b42
2020-12-18Merge RubyGems 3.2.2 and Bundler 2.2.2Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3930
2020-12-17[ruby/irb] Change context-mode's default to new mode 4.Marc-Andre Lafortune
This new mode uses a copy of the TOPLEVEL_BINDING. This is compatible with refinements (contrary to mode 3), while keeping nested IRB sessions separate https://github.com/ruby/irb/commit/25c731cb2f
2020-12-17[ruby/irb] Enable deprecation warnings when using -W or -wJeremy Evans
Requested in Ruby Bug 17377 https://github.com/ruby/irb/commit/698f6eb34a
2020-12-17[ruby/irb] Fixed a typo in a comment [ci skip]Nobuyoshi Nakada
https://github.com/ruby/irb/commit/ce373417f3
2020-12-17[ruby/irb] workaround for lack of tokens from `Ripper.lex`Nobuhiro IMAI
* Fixes #38 https://github.com/ruby/irb/commit/905fb8e52e
2020-12-17[ruby/reline] Use plus operator to create unfrozen stringRobert Schulze
https://github.com/ruby/reline/commit/ca274b0d37
2020-12-17[ruby/reline] Support longer than screen height on Windowsaycabta
https://github.com/ruby/reline/commit/2a97ca9362
2020-12-17[ruby/reline] Make a log file on windows if debug env is setaycabta
https://github.com/ruby/reline/commit/dff30a2d44
2020-12-17[ruby/reline] Support longer than screen heightaycabta
https://github.com/ruby/reline/commit/e83a3de9ed
2020-12-17Fixing glitchy kill ring behavior in irbYale Kozinski
See https://github.com/ruby/irb/issues/85 for details Notes: Merged: https://github.com/ruby/ruby/pull/3806
2020-12-16fix doc typod-m-u
s/it's/its Notes: Merged: https://github.com/ruby/ruby/pull/3920
2020-12-15Prepare to release rubygems-3.2.1 and bundler-2.2.1Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3901
2020-12-11[ruby/reline] Fix breaking to input Emoji with ZWJ.ima1zumi
https://github.com/ruby/reline/commit/f21dfdbb11
2020-12-11Exclude parenthesized function declarations such as NORETURNNobuyoshi Nakada
Fixes https://github.com/ruby/ruby/pull/3883
2020-12-10Use `abort(message)` instead of `puts` and `exit`Kazuhiro NISHIYAMA
2020-12-10Fixed the test failures called WEBrick.new directlyHiroshi SHIBATA
2020-12-10Added help message for gem i webrick in rdocHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3729
2020-12-10Added help message for gem i webrick in gem server commandHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3729
2020-12-10Added help message for gem i webrick in un.rbHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3729
2020-12-10Move webrick library into internal test toolchainHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3729
2020-12-09[ruby/matrix] v0.3.1Marc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3869
2020-12-09[ruby/matrix] Make frozen matrices Ractor shareableMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3869
2020-12-09[ruby/prime] Fix gemspecMarc-Andre Lafortune
2020-12-09[ruby/prime] v0.1.2Marc-Andre Lafortune
2020-12-09[ruby/prime] Optimize `Integer#prime?`Marc-Andre Lafortune
Miller Rabin algorithm can be used to test primality for integers smaller than a max value "MaxMR" (~3e24) It can be much faster than previous implementation: ~100x faster for numbers with 13 digits, at least 5 orders of magnitude for even larger numbers (previous implementation is so slow that it requires more patience than I have for more precise estimate). Miller Rabin test becomes faster than previous implementation at somewhere in the range 1e5-1e6. It seems that the range 62000..66000 is where Miller Rabin starts being always faster, so I picked 0xffff arbitrarily; before that, or above "MaxMR", the previous implementation remains. I compared the `faster_prime` gem too. It is slower than previous implementation up to ~1e4. After that it becomes faster and faster compared to previous implementation, but is still slower than Miller Rabin starting at ~1e5 and up to MaxMR. Thus, after this commit, builtin `Integer#prime?` will be similar or faster than `faster_prime` up to "MaxMR". Adapted from patch of Stephen Blackstone [Feature #16468] Benchmark results and code: https://gist.github.com/marcandre/b263bdae488e76dabdda84daf73733b9 Co-authored-by: Stephen Blackstone <sblackstone@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/3847
2020-12-08Merge prepare version of Bundler 2.2.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3864
2020-12-08Merge prepare version of RubyGems 3.2.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3864
2020-12-08[ruby/reline] Editing to initial content is not just cursor movingaycabta
https://github.com/ruby/reline/commit/0a4f175b0a
2020-12-06RubyGems certs - remove AddTrust, add GlobalSign Root R3MSP-Greg
Notes: Merged: https://github.com/ruby/ruby/pull/3854
2020-12-05[ruby/matrix] Optimize **Marc-Andre Lafortune
Avoiding recursive call would imply iterating bits starting from most significant, which is not easy to do efficiently. Any saving would be dwarfed by the multiplications anyways. [Feature #15233] Notes: Merged: https://github.com/ruby/ruby/pull/3844
2020-12-05Cope with frozen-string-literalRobert Schulze
When running irb 1.2.1 (2019-12-24) with frozen-string-literal enabled, it crashes in reline with `can't modify frozen String (FrozenError)` Steps to reproduce: `RUBYOPT="--enable-frozen-string-literal" irb`
2020-12-05[ruby/reline] Process insertion buffer forciblyaycabta
https://github.com/ruby/reline/commit/89d49ec9e0
2020-12-05[ruby/reline] Support bracketed paste modeaycabta
https://github.com/ruby/reline/commit/d1a6869322
2020-12-05[ruby/reline] Forced newline insertion is not just cursor movingaycabta
https://github.com/ruby/reline/commit/0e30a49d03
2020-12-05[ruby/reline] Drop prompt list cache when num of lines is changedaycabta
https://github.com/ruby/reline/commit/1959e22043
2020-12-05[ruby/reline] Cache dynamic prompt for 0.5secaycabta
https://github.com/ruby/reline/commit/06b89d0e61
2020-12-05[ruby/reline] Stop rerendering if the cursor is only movedaycabta
https://github.com/ruby/reline/commit/30e8eaf855
2020-12-05[ruby/reline] Split #rerender method that is too hugeaycabta
https://github.com/ruby/reline/commit/d0fbc89253
2020-12-05[ruby/reline] Version 0.1.9aycabta
https://github.com/ruby/reline/commit/0b1b5e77ce
2020-12-05[ruby/reline] Stop rerendering whole screen when adding newline at end of bufferaycabta
The rendering time in IRB has been reduced as follows: start = Time.now def each_top_level_statement initialize_input catch(:TERM_INPUT) do loop do begin prompt unless l = lex throw :TERM_INPUT if @line == '' else @line_no += l.count("\n") next if l == "\n" @line.concat l if @code_block_open or @ltype or @continue or @indent > 0 next end end if @line != "\n" @line.force_encoding(@io.encoding) yield @line, @exp_line_no end break if @io.eof? @line = '' @exp_line_no = @line_no @indent = 0 rescue TerminateLineInput initialize_input prompt end end end end puts "Duration: #{Time.now - start} seconds" 0.33sec -> 0.22sec https://github.com/ruby/reline/commit/496c6a1892
2020-12-05[ruby/reline] Optimize regexp handling for widthaycabta
The rendering time in IRB has been reduced as follows: start = Time.now [{"_id"=>"5f9072a4589a06d2d74b6028", "index"=>0, "guid"=>"6b3051e2-dbc7-4537-bdb9-6cd7bb5358a7", "isActive"=>true, "balance"=>"$1,442.84", "picture"=>"http://placehold.it/32x32", "age"=>34, "eyeColor"=>"blue", "name"=>{"first"=>"Ward", "last"=>"Levy"}, "company"=>"HYPLEX", "email"=>"ward.levy@hyplex.us", "phone"=>"+1 (867) 568-3319", "address"=>"867 Cobek Court, Clara, Maryland, 3254", "about"=> "Exercitation eu ex aliqua sit. Pariatur aliquip incididunt sint id non consectetur ullamco Lorem ea mollit duis amet sint labore. Commodo laborum labore commodo officia in cillum adipisicing esse excepteur cupidatat adipisicing ut. Non esse incididunt voluptate aliquip cillum eu aute duis laboris sit et. Amet enim quis tempor occaecat excepteur exercitation excepteur deserunt amet cillum adipisicing.", "registered"=>"Monday, May 25, 2015 6:51 AM", "latitude"=>"16.001127", "longitude"=>"-72.377848", "tags"=>["dolore", "nostrud", "occaecat", "cillum", "nisi"], "range"=>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "friends"=> [{"id"=>0, "name"=>"Alison Bryant"}, {"id"=>1, "name"=>"Ester Espinoza"}, {"id"=>2, "name"=>"Sullivan Kane"}], "greeting"=>"Hello, Ward! You have 7 unread messages.", "favoriteFruit"=>"apple"}] puts "Duration: #{Time.now - start} seconds" 0.47sec -> 0.34sec start = Time.now "Exercitation eu ex aliqua sit. Pariatur aliquip incididunt sint id non consectetur ullamco Lorem ea mollit duis amet sint labore. Commodo laborum labore commodo officia in cillum adipisicing esse excepteur cupidatat adipisicing ut. Non esse incididunt voluptate aliquip cillum eu aute duis laboris sit et. Amet enim quis tempor occaecat excepteur exercitation excepteur deserunt amet cillum adipisicing." puts "Duration: #{Time.now - start} seconds" 0.11sec -> 0.08sec start = Time.now def each_top_level_statement initialize_input catch(:TERM_INPUT) do loop do begin prompt unless l = lex throw :TERM_INPUT if @line == '' else @line_no += l.count("\n") next if l == "\n" @line.concat l if @code_block_open or @ltype or @continue or @indent > 0 next end end if @line != "\n" @line.force_encoding(@io.encoding) yield @line, @exp_line_no end break if @io.eof? @line = '' @exp_line_no = @line_no @indent = 0 rescue TerminateLineInput initialize_input prompt end end end end puts "Duration: #{Time.now - start} seconds" 0.40sec -> 0.33sec Co-authored-by: NARUSE, Yui <naruse@airemix.jp> https://github.com/ruby/reline/commit/a9e39ddcc4