Next: , Up: Using Guile in Emacs

3.5.1 GDS Introduction

GDS aims to allow you to work on Guile Scheme code in the same kind of way that Emacs allows you to work on Emacs Lisp code: providing easy access to help, evaluating arbitrary fragments of code, a nice debugging interface, and so on. The thinking behind the GDS library is that you will usually be doing one of two things.

  1. Writing or editing code. The code will be in a normal Emacs Scheme mode buffer, and GDS extends Scheme mode to add keystrokes and menu items for the things that are likely to be useful to you when working on code:
  2. Debugging a Guile Scheme program. When your program hits an error or stops at a trap, GDS shows you the relevant code and the Scheme stack, and makes it easy to

    The presentation makes it very easy to move up and down the stack, showing whenever possible the source code for each frame in another Emacs buffer. It also provides convenient keystrokes for telling Guile what to do next; for example, you can select a stack frame and tell Guile to run until that frame completes, at which point GDS will display the frame's return value.

GDS can provide these facilities for any number of Guile Scheme programs (which we often refer to as “clients”) at once, and these programs can be started either independently of GDS, including outside Emacs, or specifically by GDS.

Communication between each Guile client program and GDS uses a TCP socket, which means that it is orthogonal to any other interfaces that the client program has. In particular GDS does not interfere with a program's standard input and output.