//Translations of this page are also available in the following languages:// [[gschem_repl.ru|Русский]].
====== Using REPL in gschem ======
===== Embedded graphical REPL functions in gschem =====
The entry field for guile procedures is opened with hitting the
key sequence g: (g, colon). After doing this the user may enter
commands in the appeared field and watch the results of their work
in the gschem log window.
===== REPL in the background terminal =====
There is an additional menu entry for working with
REPL in the background terminal, which is invoked with hitting
key sequence gr.
Please note, that for the moment you can run it several times,
which may confuse your terminal. Moreover, there is a risk of
closing working instance of gschem by using some shortkeys.
For more convenient work in the terminal you may want to turn on
the functions of the //readline// library. For that, type in the
terminal:
(use-modules (ice-9 readline))
(activate-readline)
===== External graphical REPL =====
For invoking external graphical REPL window you have to have a
REPL functions library from the //guile-gnome//. In Debian, for
instance, you have to install the package //guile-gnome2-gtk//
to may use it. To open the window, type in the field of the
embedded REPL in gschem as follows:
(use-modules (gnome-2) (gnome gtk) (gnome gtk graphical-repl))
(guile-gtk-repl)
===== REPL in any terminal =====
In order to invoke REPL in a terminal you have to open a REPL
socket in gschem. To do so, load the system REPL module and call
the function of server spawning:
(use-modules (system repl server))
(spawn-server)
When called without arguments, the spawn-server function uses the
default guile port 37146. You can define another port:
(spawn-server 1234)
When you're opening a port, please note the security risks described
[[https://lists.gnu.org/archive/html/guile-devel/2010-10/msg00044.html|here]].
Then you just need to connect to the port using any program which
is able to do this, for example,
**telnet**,
**netcat**, or some other. Example of using **telnet**:
$ telnet localhost 37146
Example of using **netcat**:
$ nc localhost 37146
In this case the //readline// interface won't work.
**Emacs** users may use a shiny //Geiser// environment for working
with REPL in that program.
For that to work, you have to install this package, run the REPL
server in gschem and connect to it in **Emacs** using M-x
**''connect-to-guile''**.