issue9: REPL

Priority: wish Status: chatting
Messages
msg12 (view) Author: nicktastic Date: 2008-09-19.15:41:51
A javascript REPL, similar to MozRepl, for interacting with Conkeror from other
programs, such as emacs. The primary difference with MozRepl would be that the
communication protocol would be well-thought-out such that all messages and
responses would be parseable. (JSON would be an ideal wrapper for the messages.)
The fact of parseable messages and responses would mean that the protocol could
be used to script conkeror from other applications. The protocol could be used
for things like sending bookmarks to an external bookmark manager, reporting
navigation status to external apps, and much more.
msg13 (view) Author: nicktastic Date: 2008-09-19.15:42:04
What is suggested above seems less useful for human interactivity and more
useful for interconnectivity between external applications and conkeror. I would
like a bundled repl for exploring conkeror's run-time state (using eval to this
end is just painful) and for testing code. What is described above seems rather
cumbersome for use by humans - not that conkeror doesn't need a robust
interconnectivity mechamism, but I believe a repl that can be used painlessly by
humans would be a valuable development tool. I have continuously found the
MozRepl-style repls of Lisp and Python to be invaluable.
msg14 (view) Author: nicktastic Date: 2008-09-19.15:42:12
From retroj: I'm thinking something more on the scale of SLIME. The emacs mode
for repl interaction would need to transparently wrap the outgoing expressions
and unwrap the returned values, so on the UI side, the repl could look just like
a typical one, but beneath the UI would be an API for powerful programmatic repl
use. I don't see the reason to package something exactly like MozRepl in
conkeror, because MozRepl already works, as far as it goes.
msg15 (view) Author: nicktastic Date: 2008-09-19.15:42:19
From retroj: the question came up--what about connecting to the repl without
emacs? it would be nice to have a bare bones javascript evaluation repl without
protocol wrappers around every message. I think a good solution to this would be
to make the protocol encoder/decoder functions changeable on a per-connection
basis. Thus you could have multiple connections, each communicating with a
different protocol, but translating at the conkeror end to a common
(aforementioned json) format. One such protocol could be one that marked all
incoming messages for Evaluation, and sent results of the evaluation back bare.
History
Date User Action Args
2008-09-19 15:42:19nicktasticsetmessages: + msg15
2008-09-19 15:42:12nicktasticsetmessages: + msg14
2008-09-19 15:42:04nicktasticsetstatus: unread -> chatting
messages: + msg13
2008-09-19 15:41:51nicktasticcreate