class IRB::Context

def eval_history=(no)

IRB::EvalHistory.
EvalHistory values are available via __ variable, see

If +no+ is +nil+, execution result history isn't used (default).

If +no+ is 0, the number of history items is unlimited.

Returns +no+ of history items if greater than 0.

+no+ is an Integer or +nil+.

IRB.conf[:EVAL_HISTORY].
Sets command result history limit. Default value is set from
def eval_history=(no)
  if no
    if defined?(@eval_history) && @eval_history
      @eval_history_values.size(no)
    else
      @eval_history_values = EvalHistory.new(no)
      IRB.conf[:__TMP__EHV__] = @eval_history_values
      @workspace.evaluate("__ = IRB.conf[:__TMP__EHV__]")
      IRB.conf.delete(:__TMP_EHV__)
    end
  else
    @eval_history_values = nil
  end
  @eval_history = no
end