[comp.lang.smalltalk] GNU Smalltalk/Emacs Interactor Problem

mjohnson@riglow.acs.calpoly.edu (Mark S. Johnson) (08/23/90)

I'm having trouble with the Emacs Interactor for GNU Smalltalk 1.1 on
an HP9000/350 running HPUX 7.0 (Emacs is a vanilla 18.55).  Following
the directions given the Smalltalk "info" documentation, I get the
message below in the Emacs status line immediately after typing
"C-c m" in the test file "t.st" while in Smalltalk mode:

	"Symbol's value as variable is void: shell-mode-map"

I know very little about elisp so this is quite baffling to me.
Anybody have it working?  I'm a Smalltalk novice and I've grown weary
of the straight command line interface.

Also, anyone have STIX working on an HP 9000?

Thanks in advance for any help.
mark

-- 
Mark S. Johnson          mjohnson@stn9.calpoly.edu       (129.65.19.9)

melling@cs.psu.edu (Michael D Mellinger) (08/23/90)

In article <26d2ff3e.3a44@petunia.CalPoly.EDU> mjohnson@riglow.acs.calpoly.edu (Mark S. Johnson) writes:


   I'm having trouble with the Emacs Interactor for GNU Smalltalk 1.1 on
   an HP9000/350 running HPUX 7.0 (Emacs is a vanilla 18.55).  Following
   the directions given the Smalltalk "info" documentation, I get the
   message below in the Emacs status line immediately after typing
   "C-c m" in the test file "t.st" while in Smalltalk mode:

	   "Symbol's value as variable is void: shell-mode-map"

   I know very little about elisp so this is quite baffling to me.
   Anybody have it working?  I'm a Smalltalk novice and I've grown weary
   of the straight command line interface.

   Also, anyone have STIX working on an HP 9000?

   Thanks in advance for any help.
   mark

   -- 
   Mark S. Johnson          mjohnson@stn9.calpoly.edu       (129.65.19.9)


I also had the problem with the shell-mode-map. To get around it, I
simply created a shell (M-x shell) before I ran Smalltalk.

-Mike

trost@reed.bitnet (Bill Trost,Box 607,ext 640,) (08/26/90)

In article <Fc&3pyt1@cs.psu.edu>, melling@cs.psu.edu (Michael D
  Mellinger) writes:
"I also had the problem with the shell-mode-map. To get around it, I
simply created a shell (M-x shell) before I ran Smalltalk."

That's the "right answer", more or less.  shell-mode-map is defined in
shell.el, which probably should be "required" (in the Lisp sense) in
smalltalk.el.  I will look at the code and send a fix to Mr. Gnu
Smalltalk.

(Actually, that code deserves some work --- it's not very well in line
with the other computer language modes)

And, in <26d2ff3e.3a44@petunia.CalPoly.EDU>,
  mjohnson@riglow.acs.calpoly.edu (Mark S. Johnson) writes:
"Also, anyone have STIX working on an HP 9000?"

Though I don't know the details of your situation, and know nothing
about HP machines (at least, so far as I can help it :-) ), I will
warn you that both I and a friend at Cornell found STIX to be rather
fragile in the build phase.  If you think you're doing everything
right, and it still won't build, try throwing it all away and starting
from scratch --- I had to do that at one point.

bruno@hpfcso.HP.COM (Bruno Melli) (08/28/90)

>> "Also, anyone have STIX working on an HP 9000?"

I just made quick and VERY dirty changes to compile STIX on a 9000/345
running 7.0.

I replaced calls to alloca() in mstcomp.c, mstsave.c, and mstsym.c
to calls to malloc(), and then calls to free() just before the
return of whatever function was calling alloca().
Note that there is still a call to alloca() in mst.tab.c. In this case,
I just wrote a dummy alloca that just calls malloc(). (This is the VERY
dirty part :-) I'll look a little more into it when I get a chance.

I also coded my own version of bcopy() :
void bcopy(s1, s2, l) /* assume no overlapping */
    char *s1, *s2;
    int l;
{
    for(;l--;)
	*s2++ = *s1++;
}

There is also a call to getdtablesize() in socket.c.  
You can get the desired value by calling sysconf(_SC_OPEN_MAX). You need
to #include <unistd.h>.
Note that I didn't try this. Over the weekend I didn't know how to get the 
desired value so I just put some arbitrary number and it worked.

When I first ran mst, it didn't work until I added my machine name on line
75 of t.st.

    "Create the initial display connection"
    d _ Display host: '' display: 0.

    "Create the initial display connection"
    d _ Display host: 'my machine' display: 0.

After these changes, everything went fine.

Have fun,

bruno.

williams@umaxc.weeg.uiowa.edu (Kent Williams) (09/05/90)

In article <26d2ff3e.3a44@petunia.CalPoly.EDU> mjohnson@stn9.calpoly.edu (Mark S. Johnson) writes:
>
>
>
>I'm having trouble with the Emacs Interactor for GNU Smalltalk 1.1 on
>an HP9000/350 running HPUX 7.0 (Emacs is a vanilla 18.55).  Following
>the directions given the Smalltalk "info" documentation, I get the
>message below in the Emacs status line immediately after typing
>"C-c m" in the test file "t.st" while in Smalltalk mode:
>
>	"Symbol's value as variable is void: shell-mode-map"
>
>I know very little about elisp so this is quite baffling to me.
>Anybody have it working?  I'm a Smalltalk novice and I've grown weary
>of the straight command line interface.
>
>Also, anyone have STIX working on an HP 9000?
>
>Thanks in advance for any help.
>mark
>
>-- 
>Mark S. Johnson          mjohnson@stn9.calpoly.edu       (129.65.19.9)
Here is my context diff for st.el.  I just commented out whatever
didn't seem to work -- for one thing, no st-changelog elisp file is
supplied, and neither did the shell-mode-map business.  The result
still appears to work, though I haven't flogged it yet.  You're on your
own with stix ;-)
---------------------------YO! Like, CUT HERE------------------------
*** st.el	Tue Sep  4 21:13:48 1990
--- st.el.new	Tue Sep  4 21:13:24 1990
***************
*** 106,110 ****
    "*'Tab size'; used for simple indentation alignment.")
  
! (autoload 'smalltalk-install-change-log-functions "~/mst/st-changelog")
  
  (defun stm ()
--- 106,110 ----
    "*'Tab size'; used for simple indentation alignment.")
  
! ;;(autoload 'smalltalk-install-change-log-functions "~/smalltalk/st-changelog")
  
  (defun stm ()
***************
*** 171,175 ****
    (make-local-variable 'parse-sexp-ignore-comments)
    (setq parse-sexp-ignore-comments nil)	;for interactive f-b sexp
!   (smalltalk-install-change-log-functions)
    (run-hooks 'smalltalk-mode-hook))
  
--- 171,175 ----
    (make-local-variable 'parse-sexp-ignore-comments)
    (setq parse-sexp-ignore-comments nil)	;for interactive f-b sexp
!   ;;(smalltalk-install-change-log-functions)
    (run-hooks 'smalltalk-mode-hook))
  
***************
*** 773,777 ****
    (setq mode-name "Smalltalk")
  ;;  (setq mode-line-process '(": %s"))
!   (use-local-map shell-mode-map)
    (make-local-variable 'last-input-start)
    (setq last-input-start (make-marker))
--- 773,777 ----
    (setq mode-name "Smalltalk")
  ;;  (setq mode-line-process '(": %s"))
! ;;  (use-local-map shell-mode-map)
    (make-local-variable 'last-input-start)
    (setq last-input-start (make-marker))

--
             Kent Williams ---  williams@umaxc.weeg.uiowa.edu 
"Had a dream one night/That the tree had lost its middle/So he built a trunk
  of chicken wire/To try to hold it up/But then the wire, the wire/Turned to 
        lizard skin/and he climbed inside" - 'Wendell Gee', by REM