Ilisp and STk

From: Sean Slattery <jslttery_at_GS148.SP.CS.CMU.EDU>
Date: Tue, 13 Jun 1995 14:54:13 -0400

I've finally gotten Ilisp and STk to work together. The problem was that Ilisp starts processes up using a pipe, and this causes all kinds of problems with buffers and STk thinking that it is not in interactive mode.

So I added a -interactive switch for starting STk up from Ilisp - it basically forces STk_interactivep to be TRUE, and that causes STk to print up it's banner properly, print the prompt and do some flushing. I found I also needed to set the buffers for stdin, stdout and stderr to NULL to get flushing. I'm not sure I understand why.

Anyhow, here are the diffs and my current definition of an STk dialect for ilisp. Anyone who hasn't tried ilisp yet and is doing any kind of lisp/scheme programming, should check it out - it is a really useful tool.

S.




42a43
> int STk_arg_interactive = 0;
59a61
> {"-interactive", "\tInteractive mode"},
115a118
> if (strcmp(p->key, "-interactive") == 0) {STk_arg_interactive = TRUE; break; }


349a350
> extern int STk_arg_interactive;


255c255
< STk_interactivep = isatty(fileno(stdin));
---
>   STk_interactivep   = (STk_arg_interactive ? TRUE : isatty(fileno(stdin)));
304a305,309
> 
>   /* Disable buffering - suggestion from ILISP mailing list. */
>   setbuf (stdout, (char *) 0);
>   setbuf (stderr, (char *) 0);
> 



(defdialect stk "STk Scheme"
  scheme
  (setq comint-prompt-regexp "^STk> ")
  (setq ilisp-describe-command "(describe %s)")
  (setq ilisp-program "stk")
  (setq comint-ptyp t)
  (setq comint-always-scroll t)
  (setq ilisp-last-command "*")
  )

(provide 'ilisp-stk )
Received on Tue Jun 13 1995 - 20:55:46 CEST

This archive was generated by hypermail 2.3.0 : Mon Jul 21 2014 - 19:38:59 CEST