From: Chris Hanson Date: Fri, 2 Nov 1990 02:07:08 +0000 (+0000) Subject: Requires microcode version 11.50 or later. X-Git-Tag: 20090517-FFI~11115 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=76f5b492c7e0ff191da672e48258f6eaef0a2b76;p=mit-scheme.git Requires microcode version 11.50 or later. 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. --- diff --git a/v7/src/runtime/dbgcmd.scm b/v7/src/runtime/dbgcmd.scm index 8821408c0..fff8fd9fe 100644 --- a/v7/src/runtime/dbgcmd.scm +++ b/v7/src/runtime/dbgcmd.scm @@ -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 diff --git a/v7/src/runtime/input.scm b/v7/src/runtime/input.scm index f970a134f..4cb3c6bd3 100644 --- a/v7/src/runtime/input.scm +++ b/v7/src/runtime/input.scm @@ -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") diff --git a/v7/src/runtime/io.scm b/v7/src/runtime/io.scm index 90cde5eeb..80d6a392d 100644 --- a/v7/src/runtime/io.scm +++ b/v7/src/runtime/io.scm @@ -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. |# ;;;; 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))) diff --git a/v7/src/runtime/output.scm b/v7/src/runtime/output.scm index 0923f89a0..9be5c4981 100644 --- a/v7/src/runtime/output.scm +++ b/v7/src/runtime/output.scm @@ -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) (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) diff --git a/v7/src/runtime/rep.scm b/v7/src/runtime/rep.scm index 63679bbaa..762cdeb26 100644 --- a/v7/src/runtime/rep.scm +++ b/v7/src/runtime/rep.scm @@ -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!")))) ;;;; 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. |# ;;;; 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)))))) ;;;; 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))))) + +(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))) + +(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 diff --git a/v7/src/runtime/runtime.pkg b/v7/src/runtime/runtime.pkg index 772cba1e5..e2996782d 100644 --- a/v7/src/runtime/runtime.pkg +++ b/v7/src/runtime/runtime.pkg @@ -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 diff --git a/v7/src/runtime/version.scm b/v7/src/runtime/version.scm index edd868b26..a6629d0ef 100644 --- a/v7/src/runtime/version.scm +++ b/v7/src/runtime/version.scm @@ -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) diff --git a/v8/src/runtime/runtime.pkg b/v8/src/runtime/runtime.pkg index 9bad373da..41e3f0d03 100644 --- a/v8/src/runtime/runtime.pkg +++ b/v8/src/runtime/runtime.pkg @@ -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