[linux-l] Trennung von "readline" und Interpreter im Unix-Stil

Volker Grabsch vog at notjusthosting.com
Do Apr 12 00:57:47 CEST 2007


On Wed, Apr 11, 2007 at 07:21:31PM +0200, Steffen Dettmer wrote:
> > Ocaml macht nach wie vor billiges stdin/stdout, und ledit kümmert
> > sich um History und Co. Sogar eine sehr primitive rein text-
> > baiserte Tab-Vervollständigung hat es (leider durch "ESC-/" statt
> > "Tab" ausgelöst .. wtf?!).
> 
> Interessantes Werkzeug, das ledit!
> 
> Das man da nicht TAB nimmt macht evtl. Sinn, wenn man u.U. Input aus
> Datein hat. Wäre ja komisch, wenn man ein File über ssh und ledit piped
> und plötzlich die Einrückungstabs vervollständigen oder so... (geraten)

Mit der Argumentation könntest du auch verlangen, dass TAB nicht in
der Shell funktionieren darf, weil TAB-Zeichen ja auch in Shellscripten
vorkommen.

Nee, das ist IMHO kein Argument. Wer ein Ocaml-Script durch ledit
piped, statt es direkt im Ocaml-Toplevel zu laden, ist selbst schuld.
Außerdem kann ledit, genau wie bash und andere readline-Applikationen,
feststellen, wann es nicht mit einem tty verbunden ist.

Nee, ESC-/ statt TAB ist in meinen Augen einfach nur eine böse
Fehlentscheidung der ledit-Programmierer.  :-(

> > Jedoch ist mittlerweile auch ein moderneres Ocaml-Toplevel in
> > Arbeit, vielleicht kann es irgendwann mit ipython konkurrieren.
> 
> wozu braucht man das? Weil man keinen debugger hat? Bei perl gibts sowas
> auch nicht, aber einen Debugger, da geht sowas (wohl), da kann man ddd
> als Frontend nehmen.

Wenn man Code schnell mal ausprobieren will, ist Textdatei + Interpreter
auf Dauer unhandlich.

Ich kann mir in ipython z.B. irgendein XML-DOM-Baum laden, dann die
einzelnen Objekte durchhangeln, und wenn ich mir bei einem Knotenobjekt
nicht sicher bin, mach ich

    node.<TAB><TAB>

und schon sehe ich alle Attribute und Methoden, die mir jetzt offen
stehen. Das Endergebnis meiner Spielereien landet dann in der Programm-
Datei.

Oder man schreibt irgendein Objekt bzw. ne Klasse hin, packt ein "?"
davor oder dahinter, schon schon surft man in der Doku.
(genauer gesagt, in den aufbereiteten Docstrings, die on-the-fly
geladen werden, wie in Python üblich)


Viele Grüße,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l