Skip to content

Commit 8c9b362

Browse files
committed
1 parent d20d2f7 commit 8c9b362

File tree

1 file changed

+53
-4
lines changed

1 file changed

+53
-4
lines changed

lispworks.md

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ At the time of writing, the licence of the hobbyist edition costs 750 USD, the p
102102

103103
## LispWorks IDE
104104

105-
The LispWorks IDE is self-contained, but it is also possible to use LispWorks-the-implementation from Emacs and Slime (see below).
105+
The LispWorks IDE is self-contained, but it is also possible to use LispWorks-the-implementation from Emacs and Slime (see below). The IDE runs *inside* the Common Lisp image, unlike Emacs which is an external program that communicates with the Lisp image through Swank and Slime. User code runs in the same process.
106106

107107
### The editor
108108

@@ -117,8 +117,9 @@ again.
117117
- there are no plugins similar to ~~Paredit~~ (there is a brand new (2021) [Paredit for LispWorks](https://github.com/g000001/lw-paredit) or Lispy, nor a Vim layer.
118118

119119
We also had an issue, in that the go-to-source function bound to `M-.`
120-
did not work out for built-in Lisp symbols. This is probably a free
121-
edition limitation too.
120+
did not work out for built-in Lisp symbols. Apparently, LispWorks
121+
doesn't provide much source code, and mostly code of the editor. Some
122+
other commercial Lisps, like Allegro CL, provide more source code
122123

123124
The editor provides an interesting tab: Changed Definitions. It lists the functions and methods that were redefined since, at our choosing: the first edit of the session, the last save, the last compile.
124125

@@ -235,7 +236,21 @@ See also:
235236

236237
### The listener
237238

238-
The listener is the REPL.
239+
The listener is the REPL we are expecting to find, but it has a slight
240+
difference from Slime.
241+
242+
It doesn't evaluate the input line by line or form by form, instead it
243+
parses the input while typing. So we get some errors instantly. For
244+
example, we type `(abc`. So far so good. Once we type a colon to get
245+
`(abc:`, an error message is printed just above our input:
246+
247+
```
248+
Error while reading: Reader cannot find package ABC.
249+
250+
CL-USER 1 > (abc:
251+
```
252+
253+
Indeed, now `abc:` references a package, but such a package doesn't exist.
239254

240255
Its interactive debugger is primarily textual but you can also
241256
interact with it with graphical elements. For example, you can use the
@@ -258,6 +273,26 @@ error.
258273
<strong>NB:</strong> this is equivalent of pressing <code>M-v</code> in Slime.
259274
</div>
260275

276+
It is possible to choose the graphical debugger to appear by default, instead of the textual one.
277+
278+
The listener provides some helper commands, not unlike Slime's ones starting with a comma `,`:
279+
280+
```
281+
CL-USER 1 > :help
282+
283+
:bug-form <subject> &key <filename>
284+
Print out a bug report form, optionally to a file.
285+
:get <variable> <command identifier>
286+
Get a previous command (found by its number or a symbol/subform within it) and put it in a variable.
287+
:help Produce this list.
288+
:his &optional <n1> <n2>
289+
List the command history, optionally the last n1 or range n1 to n2.
290+
:redo &optional <command identifier>
291+
Redo a previous command, found by its number or a symbol/subform within it.
292+
:use <new> <old> &optional <command identifier>
293+
Do variant of a previous command, replacing old symbol/subform with new symbol/subform.
294+
```
295+
261296

262297
### The stepper. Breakpoints.
263298

@@ -428,6 +463,20 @@ See more:
428463

429464
* [Chapter 28: the Process Browser](http://www.lispworks.com/documentation/lw71/IDE-U/html/ide-u-178.htm#pgfId-852666)
430465

466+
### Misc
467+
468+
We like the `Search Files` functionality. It is like a recursive
469+
`grep`, but we get a typical LispWorks graphical window
470+
that displays the results, allows to double-click on them and that offers
471+
some more actions.
472+
473+
Last but not least, have a look at the **compilation conditions
474+
browser**. LispWorks puts all warnings and errors into a special
475+
browser when we compile a system. From now on we can work on fixing
476+
them and see them disappear from the browser. That helps keeping track
477+
of warnings and errors during development.
478+
479+
431480
## Using LispWorks from Emacs and Slime
432481

433482
To do that, start LispWorks normally, start a Swank server and connect to it from Emacs (Swank is the backend part of Slime).

0 commit comments

Comments
 (0)