Ir / iirb on Mono

Hi All,

I’ve noticed problems with iirb and ir interactive mode on my Mac. I’m
running the 1.0-rc2 build.

With ir, I’ve noticed two things:

  1. The up arrow does not scroll through the command history. This works
    on Windows.

  2. the first character doesn’t appear, though is processed, for each
    line. For example, if I open a new ir session and type ‘puts “Hello,
    World”’ the console shows:

uts “Hello, World”

but if I hit return, the command is processed just fine. It’s literally
just the first character - I often end up hitting space then backspace
or something else before typing and then it is fine.

With iirb, I’m getting an exception just trying to run it:

cory-foys-macbook-pro:~ foyc$ iirb
IronRuby.Libraries:0:in GetExecutable': infocmp -C (Errno::ENOENT) from IronRuby.Libraries:0:in CreateProcess’
from IronRuby.Libraries:0:in `CreateProcess’
from :0:in ``’
[Stack Trace truncated]

Running infocmp -C produces:

ory-foys-macbook-pro:~ foyc$ infocmp -C

Reconstructed via infocmp from file:

/usr/share/terminfo/78/xterm-color
xterm-color|nxterm|generic color xterm:
:am:bs:km:mi:ms:xn:
:co#80:it#8:li#24:
:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:
:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:
:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:
:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:
:ho=\E[H:im=\E[4h:
:is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:
:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:
:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:
:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:
:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:
:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:
:rs=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>:sc=\E7:
:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:
:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[m:up=\E[A:
:us=\E[4m:

I’m happy to look into both of these, but wanted to see if anyone else
was seeing this before I did (or was looking at it already).


Cory F.
http://www.coryfoy.com
http://twitter.com/cory_foy

The command history on Windows when running ir.exe is being provided by
the Windows console subsystem; it’s not actually part of IronRuby. I
imagine that Mono’s readline library could be used to give the same
effect on non-Windows platforms.