Requires microcode version 11.50 or later.
authorChris Hanson <org/chris-hanson/cph>
Fri, 2 Nov 1990 02:07:08 +0000 (02:07 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 2 Nov 1990 02:07:08 +0000 (02:07 +0000)
Many changes to provide for smooth control of terminal state:

* Procedures `make-cmdl' and `push-cmdl' each take additional argument
  that specifies how to spawn a child CMDL object -- a good default
  for this argument is `make-cmdl'.  `make-cmdl' should not be used
  except by this "spawning" operation -- always use `(cmdl/spawn-child
  cmdl)' to do that.  Command loops should be extended to have generic
  operations for reading input, evaluating, writing results,
  prompting, etc.  This would simplify switching between the editor
  and user code.

* Command loops now temporarily switch input and output modes of
  terminals to appropriate values when doing input or output.  Thus
  REP loops and the debugger need not worry about what state the
  terminal is in -- the user can change it arbitrarily.

* New procedures `input-port/channel' and `output-port/channel' return
  a port's underlying channel if known, else #F.  This is not yet
  completely implemented, but since it is only used for terminals it
  is OK for now.

* New procedures `terminal-get-state' and `terminal-set-state' can be
  used to save and restore a terminal's state.

* Renamed procedures:
terminal-buffered? terminal-cooked-input?
terminal-buffered terminal-cooked-input
terminal-nonbuffered terminal-raw-input

* Eliminated procedure `make-repl'.  Most instances of this should
  have been `push-repl' instead.

* Eliminated procedures `input-port/immediate-mode' and
  `input-port/normal-mode'.  Eliminated output-port operations
  `raw-mode' and `cooked-mode'.  Eliminated port operation
  `baud-rate'.

* Eliminated ill-advised `fresh-line' operation on output ports.  This
  should be supplied directly by each type of port.

v7/src/runtime/dbgcmd.scm
v7/src/runtime/input.scm
v7/src/runtime/io.scm
v7/src/runtime/output.scm
v7/src/runtime/rep.scm
v7/src/runtime/runtime.pkg
v7/src/runtime/version.scm
v8/src/runtime/runtime.pkg

index 8821408c0ad8d4fb25cc0595d019ab90279136fb..fff8fd9fe8d9a7b477bc8124f62e06a5ae812630 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/dbgcmd.scm,v 14.9 1990/09/12 02:47:19 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/dbgcmd.scm,v 14.10 1990/11/02 02:06:08 cph Rel $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -64,17 +64,10 @@ MIT in each case. |#
 (define (letter-commands command-set message prompt state)
   (with-standard-proceed-point
    (lambda ()
-     (let ((state (vector command-set prompt state))
-          (cmdl (nearest-cmdl)))
-       (let ((input-port (cmdl/input-port cmdl)))
-        (input-port/immediate-mode input-port
-          (lambda ()
-            (make-cmdl cmdl
-                       input-port
-                       (cmdl/output-port cmdl)
-                       letter-commands/driver
-                       state
-                       message))))))))
+     (push-cmdl letter-commands/driver
+               (vector command-set prompt state)
+               message
+               make-cmdl))))
 
 (define (letter-commands/driver cmdl)
   (let ((command-set (vector-ref (cmdl/state cmdl) 0))
@@ -119,7 +112,7 @@ MIT in each case. |#
   (hook/leaving-command-loop thunk))
 
 (define (default/leaving-command-loop thunk)
-  (input-port/normal-mode (cmdl/input-port (nearest-cmdl)) thunk))
+  (thunk))
 
 (define (debug/read-eval-print environment from to prompt)
   (leaving-command-loop
index f970a134f3201a0f9f5a6b4351673dac2c40373c..4cb3c6bd39ffd949e6042c6f77103885b850e199 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/input.scm,v 14.8 1990/10/03 01:29:12 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/input.scm,v 14.9 1990/11/02 02:06:16 cph Exp $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -165,17 +165,10 @@ MIT in each case. |#
 (define (input-port/discard-chars port delimiters)
   ((input-port/operation/discard-chars port) port delimiters))
 
-(define (input-port/normal-mode port thunk)
-  (let ((operation (input-port/custom-operation port 'NORMAL-MODE)))
-    (if operation
-       (operation port thunk)
-       (thunk))))
-
-(define (input-port/immediate-mode port thunk)
-  (let ((operation (input-port/custom-operation port 'IMMEDIATE-MODE)))
-    (if operation
-       (operation port thunk)
-       (thunk))))
+(define (input-port/channel port)
+  (let ((operation (input-port/custom-operation port 'CHANNEL)))
+    (and operation
+        (operation port))))
 
 (define eof-object
   "EOF Object")
index 90cde5eeb9877faf5b6c4a4d3c7aa6594e1908c7..80d6a392d5f22422fd2af1e5d0f38ead386df61a 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/io.scm,v 14.9 1990/10/16 21:03:07 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/io.scm,v 14.10 1990/11/02 02:06:23 cph Exp $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -264,21 +264,30 @@ MIT in each case. |#
 \f
 ;;;; Terminal Primitives
 
-(define (terminal-raw-output channel)
-  ((ucode-primitive terminal-raw-output 1) (channel-descriptor channel)))
+(define (terminal-get-state channel)
+  ((ucode-primitive terminal-get-state 1) (channel-descriptor channel)))
 
-(define (terminal-cooked-output channel)
-  ((ucode-primitive terminal-cooked-output 1) (channel-descriptor channel)))
+(define (terminal-set-state channel state)
+  ((ucode-primitive terminal-set-state 2) (channel-descriptor channel) state))
 
-(define (terminal-buffered? channel)
+(define (terminal-cooked-input? channel)
   ((ucode-primitive terminal-buffered? 1) (channel-descriptor channel)))
 
-(define (terminal-buffered channel)
+(define (terminal-cooked-input channel)
   ((ucode-primitive terminal-buffered 1) (channel-descriptor channel)))
 
-(define (terminal-nonbuffered channel)
+(define (terminal-raw-input channel)
   ((ucode-primitive terminal-nonbuffered 1) (channel-descriptor channel)))
 
+(define (terminal-cooked-output? channel)
+  ((ucode-primitive terminal-cooked-output? 1) (channel-descriptor channel)))
+
+(define (terminal-cooked-output channel)
+  ((ucode-primitive terminal-cooked-output 1) (channel-descriptor channel)))
+
+(define (terminal-raw-output channel)
+  ((ucode-primitive terminal-raw-output 1) (channel-descriptor channel)))
+
 (define (terminal-flush-input channel)
   ((ucode-primitive terminal-flush-input 1) (channel-descriptor channel)))
 
index 0923f89a046cbbcc317f5a497a356fbf1cf51aa0..9be5c4981a8216a2c07331872c7f38dc7b24b10e 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/output.scm,v 14.7 1990/09/13 23:08:23 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/output.scm,v 14.8 1990/11/02 02:06:32 cph Rel $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -54,7 +54,6 @@ MIT in each case. |#
                               (copier %output-port/copy)
                               (print-procedure output-port/unparse))
   state
-  start-of-line?
   (operation/write-char false read-only true)
   (operation/write-string false read-only true)
   (operation/flush-output false read-only true)
@@ -68,7 +67,6 @@ MIT in each case. |#
 (define (output-port/copy port state)
   (let ((result (%output-port/copy port)))
     (set-output-port/state! result state)
-    (set-output-port/start-of-line?! result false)
     result))
 
 (define (output-port/custom-operation port name)
@@ -101,7 +99,7 @@ MIT in each case. |#
             (operation 'WRITE-STRING default-operation/write-string))
            (flush-output
             (operation 'FLUSH-OUTPUT default-operation/flush-output)))
-       (%make-output-port state false write-char write-string flush-output
+       (%make-output-port state write-char write-string flush-output
                           operations
                           (append '(WRITE-CHAR WRITE-STRING FLUSH-OUTPUT)
                                   (map car operations)))))))
@@ -119,23 +117,12 @@ MIT in each case. |#
   false)
 \f
 (define (output-port/write-char port char)
-  (set-output-port/start-of-line?! port (char=? #\newline char))
   ((output-port/operation/write-char port) port char))
 
 (define (output-port/write-string port string)
   (let ((length (string-length string)))
     (if (positive? length)
-       (begin
-         (set-output-port/start-of-line?!
-          port
-          (char=? #\newline (string-ref string (-1+ length))))
-         ((output-port/operation/write-string port) port string)))))
-
-(define (output-port/fresh-line port)
-  (if (not (output-port/start-of-line? port))
-      (begin
-       (set-output-port/start-of-line?! port true)
-       ((output-port/operation/write-char port) port #\newline))))
+       ((output-port/operation/write-string port) port string))))
 
 (define (output-port/flush-output port)
   ((output-port/operation/flush-output port) port))
@@ -146,6 +133,11 @@ MIT in each case. |#
             (operation port)))
       79))
 
+(define (output-port/channel port)
+  (let ((operation (output-port/custom-operation port 'CHANNEL)))
+    (and operation
+        (operation port))))
+
 (define *current-output-port*)
 
 (define-integrable (current-output-port)
@@ -191,15 +183,6 @@ MIT in each case. |#
     (output-port/flush-output port))
   unspecific)
 
-(define (fresh-line #!optional port)
-  (let ((port
-        (if (default-object? port)
-            (current-output-port)
-            (guarantee-output-port port))))
-    (output-port/fresh-line port)
-    (output-port/flush-output port))
-  unspecific)
-
 (define (write-char char #!optional port)
   (let ((port
         (if (default-object? port)
index 63679bbaa7b78b5452613680fe1aa38c00ebef27..762cdeb26d83a704fd321a7d9c3008fa01ac3d70 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/rep.scm,v 14.14 1990/06/20 20:29:50 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/rep.scm,v 14.15 1990/11/02 02:06:39 cph Exp $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -63,13 +63,15 @@ MIT in each case. |#
     (let loop ((message "Cold load finished"))
       (with-standard-proceed-point
        (lambda ()
-        (make-repl false
-                   user-repl-environment
-                   user-repl-syntax-table
-                   user-initial-prompt
+        (make-cmdl false
                    console-input-port
                    console-output-port
-                   (cmdl-message/standard message))))
+                   repl-driver
+                   (make-repl-state user-initial-prompt
+                                    user-repl-environment
+                                    user-repl-syntax-table)
+                   (cmdl-message/standard message)
+                   make-cmdl)))
       (loop "Reset!"))))
 \f
 ;;;; Command Loops
@@ -79,14 +81,16 @@ MIT in each case. |#
   (level false read-only true)
   (driver false read-only true)
   (proceed-continuation false read-only true)
+  (spawn-child false read-only true)
   continuation
   input-port
   output-port
   state)
 
-(define (make-cmdl parent input-port output-port driver state message)
+(define (make-cmdl parent input-port output-port driver state message
+                  spawn-child)
   (if (and parent (not (cmdl? parent)))
-      (error "MAKE-CMDL: illegal parent" parent))
+      (error:illegal-datum parent 'MAKE-CMDL))
   (let ((cmdl
         (%make-cmdl parent
                     (let loop ((parent parent))
@@ -95,6 +99,7 @@ MIT in each case. |#
                           1))
                     driver
                     (current-proceed-continuation)
+                    spawn-child
                     false
                     input-port
                     output-port
@@ -122,14 +127,15 @@ MIT in each case. |#
   (if (not *nearest-cmdl*) (error "NEAREST-CMDL: no cmdl"))
   *nearest-cmdl*)
 
-(define (push-cmdl driver state message)
-  (let ((cmdl (nearest-cmdl)))
-    (make-cmdl cmdl
-              (cmdl/input-port cmdl)
-              (cmdl/output-port cmdl)
-              driver
-              state
-              message)))
+(define (push-cmdl driver state message spawn-child)
+  (let ((parent (nearest-cmdl)))
+    ((cmdl/spawn-child parent) parent
+                              (cmdl/input-port parent)
+                              (cmdl/output-port parent)
+                              driver
+                              state
+                              message
+                              spawn-child)))
 
 (define (cmdl/base cmdl)
   (let ((parent (cmdl/parent cmdl)))
@@ -145,9 +151,15 @@ MIT in each case. |#
 (define hook/cmdl-prompt)
 
 (define (default/cmdl-prompt cmdl prompt)
-  (write-string
-   (string-append "\n\n" (number->string (cmdl/level cmdl)) " " prompt " ")
-   (cmdl/output-port cmdl)))
+  (use-output-port cmdl
+    (lambda (output-port)
+      (write-string
+       (string-append "\n\n"
+                     (number->string (cmdl/level cmdl))
+                     " "
+                     prompt
+                     " ")
+       output-port))))
 
 (define ((cmdl-message/standard string) cmdl)
   (hook/cmdl-message cmdl string))
@@ -155,21 +167,25 @@ MIT in each case. |#
 (define hook/cmdl-message)
 
 (define (default/cmdl-message cmdl string)
-  (write-string (string-append "\n" string) (cmdl/output-port cmdl)))
+  (use-output-port cmdl
+    (lambda (output-port)
+      (write-string (string-append "\n" string) output-port))))
 
 (define ((cmdl-message/strings . strings) cmdl)
-  (let ((port (cmdl/output-port cmdl)))
-    (for-each (lambda (string)
-               (write-string (string-append "\n" string) port))
-             strings)))
+  (use-output-port cmdl
+    (lambda (output-port)
+      (for-each (lambda (string)
+                 (write-string (string-append "\n" string) output-port))
+               strings))))
 
 (define ((cmdl-message/null) cmdl)
   cmdl
   false)
 
 (define ((cmdl-message/active thunk) cmdl)
-  (with-output-to-port (cmdl/output-port cmdl)
-    thunk))
+  (use-output-port cmdl
+    (lambda (output-port)
+      (with-output-to-port output-port thunk))))
 
 (define ((cmdl-message/append . messages) cmdl)
   (for-each (lambda (message) (message cmdl)) messages))
@@ -254,31 +270,25 @@ MIT in each case. |#
 \f
 ;;;; REP Loops
 
-(define-structure (repl-state (conc-name repl-state/))
+(define-structure (repl-state
+                  (conc-name repl-state/)
+                  (constructor make-repl-state
+                               (prompt environment syntax-table)))
   prompt
   environment
   syntax-table
-  reader-history
-  printer-history)
+  (reader-history (make-repl-history reader-history-size))
+  (printer-history (make-repl-history printer-history-size)))
 
-(define (make-repl parent environment syntax-table prompt input-port
-                  output-port message)
-  (input-port/normal-mode input-port
-    (lambda ()
-      (make-cmdl parent
-                input-port
-                output-port
-                repl-driver
-                (make-repl-state prompt
-                                 environment
-                                 syntax-table
-                                 (make-repl-history reader-history-size)
-                                 (make-repl-history printer-history-size))
-                (cmdl-message/append
-                 message
-                 (cmdl-message/active
-                  (lambda ()
-                    (hook/repl-environment (nearest-repl) environment))))))))
+(define (push-repl environment message prompt)
+  (push-cmdl repl-driver
+            (make-repl-state prompt environment (nearest-repl/syntax-table))
+            (cmdl-message/append
+             message
+             (cmdl-message/active
+              (lambda ()
+                (hook/repl-environment (nearest-repl) environment))))
+            make-cmdl))
 
 (define (repl-driver repl)
   (fluid-let ((hook/error-handler default/error-handler))
@@ -355,16 +365,6 @@ MIT in each case. |#
        (repl/syntax-table repl)
        user-initial-syntax-table)))
 
-(define (push-repl environment message prompt)
-  (let ((parent (nearest-cmdl)))
-    (make-repl parent
-              environment
-              (nearest-repl/syntax-table)
-              prompt
-              (cmdl/input-port parent)
-              (cmdl/output-port parent)
-              message)))
-
 (define (read-eval-print environment message prompt)
   (with-standard-proceed-point
    (lambda ()
@@ -406,7 +406,7 @@ MIT in each case. |#
   unspecific)
 
 (define (default/repl-read repl)
-  (let ((s-expression (read (cmdl/input-port repl))))
+  (let ((s-expression (read-internal (cmdl/input-port repl))))
     (repl-history/record! (repl/reader-history repl) s-expression)
     s-expression))
 
@@ -420,12 +420,13 @@ MIT in each case. |#
 
 (define (default/repl-write repl object)
   (repl-history/record! (repl/printer-history repl) object)
-  (let ((port (cmdl/output-port repl)))
-    (if (undefined-value? object)
-       (write-string "\n;No value" port)
-       (begin
-         (write-string "\n;Value: " port)
-         (write object port)))))
+  (use-output-port repl
+    (lambda (output-port)
+      (if (undefined-value? object)
+         (write-string "\n;No value" output-port)
+         (begin
+           (write-string "\n;Value: " output-port)
+           (write object output-port))))))
 \f
 ;;;; History
 
@@ -456,7 +457,6 @@ MIT in each case. |#
 ;;; User Interface Stuff
 
 (define user-repl-environment)
-(define user-repl-syntax-table)
 
 (define (pe)
   (let ((environment (nearest-repl/environment)))
@@ -470,7 +470,10 @@ MIT in each case. |#
        (environment (->environment environment)))
     (set! user-repl-environment environment)
     (set-repl-state/environment! (cmdl/state repl) environment)
-    (hook/repl-environment repl environment)
+    (use-output-port repl
+      (lambda (output-port)
+       output-port
+       (hook/repl-environment repl environment)))
     environment))
 
 (define (ve environment)
@@ -478,7 +481,10 @@ MIT in each case. |#
        (environment (->environment environment)))
     (set-repl-state/environment! (cmdl/state repl) environment)
     (set-repl-state/prompt! (cmdl/state repl) "Visiting->")
-    (hook/repl-environment repl environment)
+    (use-output-port repl
+      (lambda (output-port)
+       output-port
+       (hook/repl-environment repl environment)))
     environment))
 
 (define (->environment object)
@@ -501,6 +507,8 @@ MIT in each case. |#
           (if (not package)
               (error "->ENVIRONMENT: Not an environment" object))
           (package/environment package)))))
+\f
+(define user-repl-syntax-table)
 
 (define (gst syntax-table)
   (guarantee-syntax-table syntax-table)
@@ -562,10 +570,9 @@ MIT in each case. |#
   (read-char-internal (cmdl/input-port cmdl)))
 
 (define (default/prompt-for-confirmation cmdl prompt)
-  (let ((input-port (cmdl/input-port cmdl))
-       (output-port (cmdl/output-port cmdl)))
-    (input-port/immediate-mode input-port
-      (lambda ()
+  (let ((input-port (cmdl/input-port cmdl)))
+    (use-output-port cmdl
+      (lambda (output-port)
        (let loop ()
          (newline output-port)
          (write-string prompt output-port)
@@ -584,18 +591,51 @@ MIT in each case. |#
                   (loop)))))))))
 
 (define (default/prompt-for-expression cmdl prompt)
-  (let ((input-port (cmdl/input-port cmdl))
-       (output-port (cmdl/output-port cmdl)))
-    (newline output-port)
-    (write-string prompt output-port)
-    (write-string ": " output-port)
-    (input-port/normal-mode input-port
+  (use-output-port cmdl
+    (lambda (output-port)
+      (newline output-port)
+      (write-string prompt output-port)
+      (write-string ": " output-port)))
+  (read-internal (cmdl/input-port cmdl)))
+\f
+(define (use-output-port cmdl user)
+  (let ((output-port (cmdl/output-port cmdl)))
+    (terminal-bind terminal-cooked-output (output-port/channel output-port)
       (lambda ()
-       (read input-port)))))
+       (user output-port)))))
+
+(define (read-internal input-port)
+  (terminal-bind terminal-cooked-input (input-port/channel input-port)
+    (lambda ()
+      (read input-port))))
 
 (define (read-char-internal input-port)
-  (let loop ()
-    (let ((char (read-char input-port)))
-      (if (char=? char char:newline)
-         (loop)
-         char))))
\ No newline at end of file
+  (terminal-bind terminal-raw-input (input-port/channel input-port)
+    (lambda ()
+      (let loop ()
+       (let ((char (read-char input-port)))
+         (if (char=? char char:newline)
+             (loop)
+             char))))))
+
+(define (terminal-bind operation terminal thunk)
+  (if (and terminal
+          (channel-type=terminal? terminal))
+      (let ((outside-state)
+           (inside-state false))
+       (dynamic-wind
+        (lambda ()
+          (set! outside-state (terminal-get-state terminal))
+          (if inside-state
+              (begin
+                (terminal-set-state terminal inside-state)
+                (set! inside-state)
+                unspecific)
+              (operation terminal)))
+        thunk
+        (lambda ()
+          (set! inside-state (terminal-get-state terminal))
+          (terminal-set-state terminal outside-state)
+          (set! outside-state)
+          unspecific)))
+      (thunk)))
\ No newline at end of file
index 772cba1e51ca996746b4c2e50459c4b76caaf5ef..e2996782dccdedf1088c9622488776caf2a8cc7e 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.81 1990/10/17 03:30:37 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.82 1990/11/02 02:06:48 cph Exp $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -782,6 +782,7 @@ MIT in each case. |#
          current-input-port
          eof-object?
          guarantee-input-port
+         input-port/channel
          input-port/char-ready?
          input-port/copy
          input-port/custom-operation
@@ -795,8 +796,6 @@ MIT in each case. |#
          input-port/operation/peek-char
          input-port/operation/read-char
          input-port/operation/read-string
-         input-port/immediate-mode
-         input-port/normal-mode
          input-port/peek-char
          input-port/read-char
          input-port/read-string
@@ -1175,14 +1174,13 @@ MIT in each case. |#
          close-output-port
          current-output-port
          display
-         fresh-line
          guarantee-output-port
          make-output-port
          newline
+         output-port/channel
          output-port/copy
          output-port/custom-operation
          output-port/flush-output
-         output-port/fresh-line
          output-port/operation
          output-port/operation-names
          output-port/state
@@ -1375,7 +1373,6 @@ MIT in each case. |#
          output-buffer/write-char-block
          output-buffer/write-string-block)
   (export (runtime console-output)
-         channel-type=terminal?
          channel-write-char-block
          channel-write-string-block
          make-output-buffer
@@ -1385,24 +1382,23 @@ MIT in each case. |#
          output-buffer/size
          output-buffer/write-char-block
          output-buffer/write-string-block
-         terminal-cooked-output
-         terminal-output-baud-rate
-         terminal-raw-output
          tty-output-channel)
   (export (runtime console-input)
          channel-type=file?
-         channel-type=terminal?
          input-buffer/buffered-chars
          input-buffer/channel
          input-buffer/char-ready?
          input-buffer/peek-char
          input-buffer/read-char
          make-input-buffer
-         terminal-buffered
-         terminal-buffered?
-         terminal-input-baud-rate
-         terminal-nonbuffered
          tty-input-channel)
+  (export (runtime rep)
+         channel-type=terminal?
+         terminal-cooked-input
+         terminal-cooked-output
+         terminal-get-state
+         terminal-raw-input
+         terminal-set-state)
   (initialization (initialize-package!)))
 
 (define-package (runtime program-copier)
@@ -1497,7 +1493,6 @@ MIT in each case. |#
          in
          initial-top-level-repl
          make-cmdl
-         make-repl
          nearest-cmdl
          nearest-repl
          nearest-repl/environment
index edd868b26cc958149f6bc468ab23febd389033f0..a6629d0efe7f8796dcfbd78de20bbc1accbee1aa 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.99 1990/10/16 21:03:42 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.100 1990/11/02 02:07:08 cph Exp $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -45,7 +45,7 @@ MIT in each case. |#
                     '()))
   (add-system! microcode-system)
   (add-event-receiver! event:after-restore snarf-microcode-version!)
-  (add-identification! "Runtime" 14 99))
+  (add-identification! "Runtime" 14 100))
 
 (define microcode-system)
 
index 9bad373da7d1be9eb94be2c3a932239fe06b0460..41e3f0d03482a29c313074d664d1d7c3326a8939 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.81 1990/10/17 03:30:37 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.82 1990/11/02 02:06:48 cph Exp $
 
 Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -782,6 +782,7 @@ MIT in each case. |#
          current-input-port
          eof-object?
          guarantee-input-port
+         input-port/channel
          input-port/char-ready?
          input-port/copy
          input-port/custom-operation
@@ -795,8 +796,6 @@ MIT in each case. |#
          input-port/operation/peek-char
          input-port/operation/read-char
          input-port/operation/read-string
-         input-port/immediate-mode
-         input-port/normal-mode
          input-port/peek-char
          input-port/read-char
          input-port/read-string
@@ -1175,14 +1174,13 @@ MIT in each case. |#
          close-output-port
          current-output-port
          display
-         fresh-line
          guarantee-output-port
          make-output-port
          newline
+         output-port/channel
          output-port/copy
          output-port/custom-operation
          output-port/flush-output
-         output-port/fresh-line
          output-port/operation
          output-port/operation-names
          output-port/state
@@ -1375,7 +1373,6 @@ MIT in each case. |#
          output-buffer/write-char-block
          output-buffer/write-string-block)
   (export (runtime console-output)
-         channel-type=terminal?
          channel-write-char-block
          channel-write-string-block
          make-output-buffer
@@ -1385,24 +1382,23 @@ MIT in each case. |#
          output-buffer/size
          output-buffer/write-char-block
          output-buffer/write-string-block
-         terminal-cooked-output
-         terminal-output-baud-rate
-         terminal-raw-output
          tty-output-channel)
   (export (runtime console-input)
          channel-type=file?
-         channel-type=terminal?
          input-buffer/buffered-chars
          input-buffer/channel
          input-buffer/char-ready?
          input-buffer/peek-char
          input-buffer/read-char
          make-input-buffer
-         terminal-buffered
-         terminal-buffered?
-         terminal-input-baud-rate
-         terminal-nonbuffered
          tty-input-channel)
+  (export (runtime rep)
+         channel-type=terminal?
+         terminal-cooked-input
+         terminal-cooked-output
+         terminal-get-state
+         terminal-raw-input
+         terminal-set-state)
   (initialization (initialize-package!)))
 
 (define-package (runtime program-copier)
@@ -1497,7 +1493,6 @@ MIT in each case. |#
          in
          initial-top-level-repl
          make-cmdl
-         make-repl
          nearest-cmdl
          nearest-repl
          nearest-repl/environment