| Age | Commit message (Collapse) | Author |
|
(https://github.com/ruby/irb/pull/448)
* Minor fixes on debug command
* Discover and load debug.gem even if it's not in Gemfile
* Eliminate else for rescue
* Discover the latest one from all gem paths
|
|
(https://github.com/ruby/irb/pull/447)
* Minor fixes on debug command
* Update lib/irb/cmd/debug.rb
|
|
https://github.com/ruby/irb/commit/30faa13fa3
|
|
(https://github.com/ruby/irb/pull/437)
* Transform ls's --grep/-G option to keyword args
* Make --grep less flexible
* Support -g instead of --grep
* Suppress warnings from symbol aliases
|
|
(https://github.com/ruby/irb/pull/430)
* Support non-string input in show_source
* Test show_source as a method
|
|
* Use colorable: argument as the only coloring control
* Centalize color controling logic at Color.colorable?
There are 2 requirements for coloring output:
1. It's supported on the platform
2. The user wants it: `IRB.conf[:USE_COLORIZE] == true`
Right now we check 1 and 2 separately whenever we colorize things.
But it's error-prone because while 1 is the default of `colorable`
parameter, 2 always need to manually checked. When 2 is overlooked, it
causes issues like https://github.com/ruby/irb/pull/362
And there's 0 case where we may want to colorize even when the user
disables it. So I think we should merge 2 into `Color.colorable?` so it
can be automatically picked up.
* Add tests for all inspect modes
* Simplify inspectors' coloring logic
* Replace use_colorize? with Color.colorable?
* Remove Context#use_colorize cause it's redundant
https://github.com/ruby/irb/commit/1c53023ac4
|
|
(https://github.com/ruby/irb/pull/362)
https://github.com/ruby/irb/commit/534688dfc4
|
|
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
|
|
`chcp` returns different encoding
https://github.com/ruby/irb/commit/f80971994a
|
|
https://github.com/ruby/irb/commit/4cade4b7e5
|
|
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
|
|
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
|
|
https://github.com/ruby/irb/commit/9b98d1afab
|
|
https://github.com/ruby/irb/commit/e7d71fea46
|
|
https://github.com/ruby/irb/commit/6160d74199
|
|
are :time and :stackprof
https://github.com/ruby/irb/commit/759be5a344
|
|
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
https://github.com/ruby/irb/commit/b431742430
|
|
standard libraries
https://github.com/ruby/irb/commit/7092ad2ab5
|
|
Rescuing StandardError is prone to bugs caused by a typo or obsoleted methods.
https://github.com/ruby/irb/commit/eb5260fcd5
|
|
such as `ls 42`, `ls :sym` and so on
https://github.com/ruby/irb/commit/b1d436a853
|
|
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
|
|
https://github.com/ruby/irb/commit/2b79e9ad21
|
|
https://github.com/ruby/irb/commit/fdd5c0a71e
|
|
https://github.com/ruby/irb/commit/73edff287c
|
|
https://github.com/ruby/irb/commit/108cb04352
|
|
instead of filling out an entire line
https://github.com/ruby/irb/commit/6ac8f45f5f
|
|
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
|
|
https://github.com/ruby/irb/commit/6115754623
|
|
https://github.com/ruby/irb/commit/bc822e4aac
|
|
https://github.com/ruby/irb/commit/19b6c20604
|
|
https://github.com/ruby/irb/commit/39d1cd874f
|
|
https://github.com/ruby/irb/commit/20f1ca23e9
|
|
https://github.com/ruby/irb/commit/cc66b5573e
|
|
https://github.com/ruby/irb/commit/27b149c599
|
|
https://github.com/ruby/irb/commit/b43f35d8f3
|
|
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
|
|
conflict"
This reverts commit 4dba0c1a8e3cc08664872e637099c4e7d58d24d3.
Matz's comment is "send is not deprecated. __send__ is safer".
But "Prefer #send over #__send__" is not reasonable.
|
|
* 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.
|
|
|
|
https://github.com/ruby/irb/commit/0b2773d91d
|
|
https://github.com/ruby/irb/commit/cdbb9dfc9f
|
|
https://github.com/ruby/irb/commit/a6fe58e916
|
|
|
|
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
from https://github.com/ruby/irb/commit/e6739d8c66dc78562930adb0b96935c9b38acf74
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
[#15206] [Fix GH-1976]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
[#15206] [Fix GH-1976]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
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
|