On Wed, Apr 23, 2014 at 07:45:56PM +0000, James Hearon wrote:
> re: clm emacs-slime
>
> ...might be a bit OT
Hello James,
> I was hoping to get some advice on printing from emacs-slime. I'm trying to
> print output to a visible area of the emacs editor when the code is compiled
> and runs, such as in with-sound below.
>
> I'm using f20, sbcl, emacs-slime, and clm but having a devil of a time
> getting any contrib to load and run with my .emacs file which might support
> more repl such as to the echo area etc. I'm wondering what approach you
> folks might use to print to std out? Are you using a contrib package or
> other editor and print .el utility files?
I think it might help us all answering your question if you could explain your
teminology. Whta do you mean by "std out"?
Common Lisp has *standard-output* and *error-output* which both are modified by
slime to send their stream data back to emacs.
Evaluating (format t "Blah") from the slime repl (you are using the slime repl,
aren'gt you) should print to the slime repl
buffer.
This redirection does _not_ work from other lisp buffers (like the slime
scratch buffer et al.)
If you just want to eval an expression in the slime repl there's
slime-eval-last-expression-in-repl which can be
bound to a keyboard shortcut.
If that's not enough you probably need to write your own helper code -
something like this:
;; -- this is the emacs side: elisp' ---
(defun clm-message (message)
(switch-to-buffer "*CLM Results*")
(goto-char (point-max))
(insert message))
;; -- this is the lisp side: common lisp ---
(defun clm-message (message)
(swank:eval-in-emacs `(clm-message ,message)))
This is only a proof-of-concept. IIRC you also need to configure slime to allow
evaluation of expressions
from swank.
> I've tried things like (print ), and (format t ...) and (message ...), and
> those evaluate the expression to the echo area but they don't work when I
> compile and run and it is beeping. Or am I totally off base, and lisp
> doesn't do that very well at all?
Hmm, in what language are you now? At least 'message' is emacs lisp ...
And what is the "echo area" - the minibuffer?
HTH Ralf Mattes
>
> Thank You,
> Jim
>
>
> (definstrument simp (start-time duration frequency amplitude &optional
> (amp-env '(0 0 .5 1.0 1.0 0)))
> (multiple-value-bind (beg end) (times->samples start-time duration)
> (let ((osc (make-oscil :frequency frequency))
> (amp-env (make-env amp-env :scaler amplitude :duration duration)))
> (run
> (loop for i from beg below end do
> (outa i (* (env amp-env) (oscil osc) ))
> (outb i (* (env amp-env) (oscil osc) ))
> )))))
>
> (with-sound (:channels 2)
> (loop
> for tt from 1 to 10 by 2
> do
> ****** (print tt) *******
> (simp tt .25 220 .75)
> ))
>
> _______________________________________________
> Cmdist mailing list
> [email protected]
> http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist
_______________________________________________
Cmdist mailing list
[email protected]
http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist