summaryrefslogtreecommitdiff
path: root/lib/irb/cmd
AgeCommit message (Collapse)Author
2022-03-14[ruby/irb] Move `:stopdoc:` directiveNobuyoshi Nakada
If this is at the top level, it stops the documentation of the entire module, but not only the part in this file. https://github.com/ruby/irb/commit/86c41b06ad
2021-12-24[ruby/irb] irb_info codepage mismatchYO4
`chcp` returns different encoding https://github.com/ruby/irb/commit/f80971994a
2021-12-20[ruby/irb] Add East Asian Ambiguous Width to irb_info commandaycabta
https://github.com/ruby/irb/commit/4cade4b7e5
2021-12-02Compatibility with IRBschneems
Instead of accessing the struct as an array, access it via methods. There are other places inside of this file already using this API (for example https://github.com/ruby/ruby/blob/e0a5c3d2b71dfad038d7562fdd33f02ffd79232d/lib/irb/ruby-lex.rb#L829-L830). This commit moves all struct array-ish calls to use their method calls instead. It is also ~1.23 faster accessing values via a method instead of as an array according to this microbenchmark: ```ruby Elem = Struct.new(:pos, :event, :tok, :state, :message) do def initialize(pos, event, tok, state, message = nil) super(pos, event, tok, State.new(state), message) end # ... def to_a a = super a.pop unless a.empty? a end end class ElemClass attr_accessor :pos, :event, :tok, :state, :message def initialize(pos, event, tok, state, message = nil) @pos = pos @event = event @tok = tok @state = State.new(state) @message = message end def to_a if @message [@pos, @event, @tok, @state, @message] else [@pos, @event, @tok, @state] end end end # stub state class creation for now class State; def initialize(val); end; end ``` ```ruby Benchmark.ips do |x| x.report("struct") { struct[1] } x.report("class ") { from_class.event } x.compare! end; nil ``` ``` Warming up -------------------------------------- struct 1.624M i/100ms class 1.958M i/100ms Calculating ------------------------------------- struct 17.139M (± 2.6%) i/s - 86.077M in 5.025801s class 21.104M (± 3.4%) i/s - 105.709M in 5.015193s Comparison: class : 21103826.3 i/s struct: 17139201.5 i/s - 1.23x (± 0.00) slower ``` Notes: Merged: https://github.com/ruby/ruby/pull/5093
2021-10-10[ruby/irb] Revert "Optimize show_source command further"Takashi Kokubun
This reverts commit 27dd2867cda5c789efaa5078214ad2fd82adcebf. This is to fix the test I added. (I separated commits to test a new behavior of ruby-commit-hook) https://github.com/ruby/irb/commit/fe055d521a
2021-09-06[ruby/irb] Pass RI options to helpFilip Pyda
https://github.com/ruby/irb/commit/9b98d1afab
2021-07-20[ruby/irb] Support non-English code page messageaycabta
https://github.com/ruby/irb/commit/e7d71fea46
2021-07-16[ruby/irb] Show code page by irb_info on Windowsaycabta
https://github.com/ruby/irb/commit/6160d74199
2021-07-13[ruby/irb] Add an explanation of default sub commands of "measure", which ↵aycabta
are :time and :stackprof https://github.com/ruby/irb/commit/759be5a344
2021-07-11[ruby/irb] Show LANG and LC_ALL env by irb_infoaycabta
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> https://github.com/ruby/irb/commit/b431742430
2021-07-01[ruby/irb] Update ls.rb without requiring Set, because Set is one of ↵Keiko Kaneko
standard libraries https://github.com/ruby/irb/commit/7092ad2ab5
2021-06-30[ruby/irb] Rescue a specific errorTakashi Kokubun
Rescuing StandardError is prone to bugs caused by a typo or obsoleted methods. https://github.com/ruby/irb/commit/eb5260fcd5
2021-06-30[ruby/irb] Fix error on `ls object_cant_define_singleton`Masataka Pocke Kuwabara
such as `ls 42`, `ls :sym` and so on https://github.com/ruby/irb/commit/b1d436a853
2021-06-27[ruby/irb] Optimize show_source command furtherTakashi Kokubun
https://github.com/ruby/irb/pull/249 actually slowed down how `code` is concatenated. The original way of creating `code` is faster. [before] user system total real 2.420137 0.005364 2.425501 ( 2.426264) [after] user system total real 1.000221 0.007454 1.007675 ( 1.008295) Theoretically, this implementation might skip lines that don't appear in Ripper tokens, but this assumes such lines don't impact whether the code passes compilation or not. At least normal blank lines seem to have an `on_ignored_nl` token anyway though. https://github.com/ruby/irb/commit/27dd2867cd
2021-06-27[ruby/irb] Improve performance of `show_source` for large classMasataka Pocke Kuwabara
https://github.com/ruby/irb/commit/2b79e9ad21
2021-06-22[ruby/irb] Sort ls result ordered by anscestryKeiko Kaneko
https://github.com/ruby/irb/commit/fdd5c0a71e
2021-05-08[ruby/irb] Dump ancestors' methods by ls commandMasataka Pocke Kuwabara
https://github.com/ruby/irb/commit/73edff287c
2021-04-02[ruby/irb] Add show_source commandTakashi Kokubun
https://github.com/ruby/irb/commit/108cb04352
2021-03-21[ruby/irb] Have some right paddingTakashi Kokubun
instead of filling out an entire line https://github.com/ruby/irb/commit/6ac8f45f5f
2021-03-21[ruby/irb] Fix step's argumentTakashi Kokubun
cols.size was calling Integer#size, which returns 8. Fixing a bug of https://github.com/ruby/irb/pull/209 https://github.com/ruby/irb/commit/c93ae4be71
2021-03-21[ruby/irb] Fix column overflow on ls outputTakashi Kokubun
https://github.com/ruby/irb/commit/6115754623
2021-03-21[ruby/irb] Add whereami commandTakashi Kokubun
https://github.com/ruby/irb/commit/bc822e4aac
2021-03-21[ruby/irb] Implement ls commandTakashi Kokubun
https://github.com/ruby/irb/commit/19b6c20604
2021-02-11[ruby/irb] The command "irb_info" should show RUBY_PLATFORMaycabta
https://github.com/ruby/irb/commit/39d1cd874f
2021-02-06[ruby/irb] Allow "measure" command to take blockaycabta
https://github.com/ruby/irb/commit/20f1ca23e9
2020-12-24[ruby/irb] Try not to register the exact same measuring method twiceaycabta
https://github.com/ruby/irb/commit/cc66b5573e
2020-12-22[ruby/irb] Suppress "shadowing outer" warningaycabta
https://github.com/ruby/irb/commit/27b149c599
2020-12-22[ruby/irb] Support arg for measure commandaycabta
https://github.com/ruby/irb/commit/b43f35d8f3
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-11-05Revert "Prefer #send over #__send__ when it is clear there is no possible ↵NARUSE, Yui
conflict" This reverts commit 4dba0c1a8e3cc08664872e637099c4e7d58d24d3. Matz's comment is "send is not deprecated. __send__ is safer". But "Prefer #send over #__send__" is not reasonable.
2020-11-05Prefer #send over #__send__ when it is clear there is no possible conflictBenoit Daloze
* Reverts part of 3198e7abd70bd2af977f2bb6c967e9df8f91adb0. * If the rule is #send should be deprecated, that should be ruled by matz, there is no such rule currently and gems seem to prefer #send overwhelmingly.
2020-10-27Separate `send` into `public_send` and `__send__`Nobuyoshi Nakada
2020-08-28[ruby/irb] Discard newlines at end of fileaycabta
https://github.com/ruby/irb/commit/0b2773d91d
2020-04-29[ruby/irb] Check existence of rc files in irb_info commandaycabta
https://github.com/ruby/irb/commit/cdbb9dfc9f
2020-04-29[ruby/irb] Add irb_info commandaycabta
https://github.com/ruby/irb/commit/a6fe58e916
2019-06-10irb/cmd/help.rb: return nil after the redefinitionNobuyoshi Nakada
2019-06-10irb: defer requiring rdoc to improve the start up timeNobuyoshi Nakada
2019-04-27Prefer block_given? to iterator?nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-26make sync-default-gems GEM=irbTakashi Kokubun
from https://github.com/ruby/irb/commit/e6739d8c66dc78562930adb0b96935c9b38acf74
2019-01-18Prefer block_given? to iterator?nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-02lib/*: Prefer require_relative over require, remove explicit extensionmarcandre
[#15206] [Fix GH-1976] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-02lib/*: Prefer require_relative over require.marcandre
[#15206] [Fix GH-1976] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-10-07* basictest/test.rb: Adjust spaces in class declarationshsbt
with inheritance. [fix GH-1227] Patch by @adrfer * lib/irb/*: ditto. * lib/prime.rb: ditto. * lib/shell/builtin-command.rb: ditto. * object.c: ditto. * sample/*.rb: ditto. * test/-ext-/method/test_arity.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16Add frozen_string_literal: false for all filesnaruse
When you change this to true, you may need to add more tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-24* lib/e2mmap.rb: remove needless instance variables.hsbt
* lib/irb.rb: ditto. * lib/irb/**/*.rb: ditto. * lib/shell.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-09* lib/irb.rb: removed commented-out code.hsbt
* lib/irb/**/*.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-09* lib/cmath.rb: fixed indent.hsbt
* lib/drb/ssl.rb: ditto. * lib/irb/**/*.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-13* lib/irb*: merge doc from doc/irb/ird.rd and improve overallzzak
documentation of IRB * doc/irb/irb.rd: remove stale documentation git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-05* ext/pathname/lib/pathname.rb, ext/tk/lib/multi-tk.rb,ktsj
ext/tk/sample/demos-en/widget, lib/benchmark.rb, lib/irb/cmd/fork.rb, lib/mkmf.rb, lib/net/ftp.rb, lib/net/smtp.rb, lib/open3.rb, lib/pstore.rb, lib/rexml/element.rb, lib/rexml/light/node.rb, lib/rinda/tuplespace.rb, lib/rss/maker/base.rb, lib/rss/maker/entry.rb, lib/scanf.rb, lib/set.rb, lib/shell.rb, lib/shell/command-processor.rb, lib/shell/process-controller.rb, lib/shell/system-command.rb, lib/uri/common.rb: remove unused block arguments to avoid creating Proc objects. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-29 * lib/irb/cmd/help.rb: support RDoc 3.7. fix [Bug #3760].keiju
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e