;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*-
;;; Patch file for System version 126.7
;;; Reason:
;;;  The arglists for tcpa:define-network-service and tcpa:subprocess were
;;;  screwed up, even though they explicitly did (declare (arglist ...))
;;;  This is because the symbol GLOBAL:ARGLIST was not imported into the
;;;  NETWORK package.  Fix the package and recompile the macros...
;;; Written 1-Aug-88 14:14:27 by pld (Peter L. DeWolf) at site Gigamos Cambridge
;;; while running on Cthulhu from band 1
;;; with Experimental System 126.5, ZWEI 125.7, ZMail 73.0, Local-File 75.1, File-Server 24.0, Unix-Interface 13.0, Tape 24.2, Lambda-Diag 17.0, microcode 1762, SDU Boot Tape 3.14, SDU ROM 8, the old ones.



; From modified file DJ: L.PATCH; SYSTEM-125-19.LISP#1 at 1-Aug-88 14:24:52
#10R USER#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "USER")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: PATCH; SYSTEM-125-19  "

(unintern "ARGLIST" (find-package "NETWORK"))
(unintern "ARGLIST" (find-package "FTP"))
(unintern "ARGLIST" (find-package "TCPA"))
(import (intern "ARGLIST" pkg-global-package)
	(find-package "NETWORK"))
(export (intern "ARGLIST" (find-package "NETWORK"))
	(find-package "NETWORK"))

))

; From file DJ: L.NETWORK.IP-TCP.KERNEL; GENERIC-SERVER.LISP#26 at 1-Aug-88 14:25:26
#10R TCP-APPLICATION#: 
(COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "TCP-APPLICATION")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; GENERIC-SERVER  "

(defmacro define-network-service (name protocol-name transport-protocol documentation &body keywords)
  "Causes the system to create a socket to listen on LISTEN-PORT.
TRANSPORT-PROTOCOL may be either :TCP or :UDP for stream and datagram oriented services respectively.
When somebody connects to this port a process is created in which the TOPLEVEL-FUNCTION is called
on a stream connected to the active socket.
The stream and socket are automatically closed when the function exits.
If AUTO-ENABLE? is non-NIL, this server will enabled by calls to (enable-all-network-services),
which is run whenever TCP is initialized."
  (declare (arglist name protocol-name transport-protocol documentation
		    &key toplevel-function listen-port auto-enable? stream-flavor))
  `(*define-network-service ',name ',protocol-name ',transport-protocol ',documentation ,@keywords))

))

; From file DJ: L.NETWORK.IP-TCP.KERNEL; GENERIC-SERVER.LISP#26 at 1-Aug-88 14:25:39
#10R TCP-APPLICATION#: 
(COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "TCP-APPLICATION")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; GENERIC-SERVER  "

(defmacro subprocess (&body forms)
  "Execute the FORMS in the context of a subprocess"
  (declare (arglist &optional &key :closure-variables &body forms))
  (do ((keyword-arguments nil))
      ((not (keywordp (car forms)))
       `(*subprocess #'(lambda () ,@forms) ,@keyword-arguments))
    (setq keyword-arguments (append keyword-arguments
				    (list (pop forms) (pop forms))))))

))
