From scsh-users-request@scsh.net Wed Apr 5 15:53:10 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id EB78813DE; Wed, 5 Apr 2006 15:53:08 +0200 (MST) Received: from mx4.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx4 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 19516-01; Wed, 5 Apr 2006 15:53:05 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 598DD13D8; Wed, 5 Apr 2006 15:53:04 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id D36D35ECD; Wed, 5 Apr 2006 15:53:02 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net Content-Type: text/plain; charset=UTF-8 From: Robby Findler To: scsh-users@scsh.net Subject: Scheme Workshop 2006 Date: Wed, 5 Apr 2006 08:52:57 -0500 X-Mailer: SirMail under MrEd 301.12 (ppc-macosx) X-Uptime: 4 days and 9 hours, using 66,609,152 bytes (s: 1222) Message-Id: <20060405135255.479686D7BB@laime.cs.uchicago.edu> Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/293 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Wed, 5 Apr 2006 15:53:02 +0200 (MST) Dear all, I'm writing to let you know about the upcoming Scheme and Functional Programming workshop -- specifically that the submission deadline is June 9, about 2 months from now. The workshop will be held Portland Oregon on September 17, the day before ICFP. We look forward you your submissions! Best, Robby ============================================================ The purpose of the workshop is to discuss experience with and future developments of the Scheme programming language, as well as general aspects of computer science loosely centered on the general theme of Scheme. http://scheme2006.cs.uchicago.edu/ IMPORTANT DATES Submission deadline: Friday June 9 Author notification: Friday June 30 Final versions due: Friday July 14 Workshop: Sunday September 17, the day before ICFP CALL FOR PAPERS Papers are invited concerning all aspects of the design, semantics, theory, application, implementation, and teaching of Scheme. Some example areas include (but are not limited to): * Language design Scheme's simple syntactic framework and minimal static semantics has historically made the language an attractive lab bench for the development and experimentation of novel language features and mechanisms. Topics in this area include modules systems, exceptions, control mechanisms, distributed programming, concurrency and synchronisation, macro systems, and objects. Past, present and future SRFIs are welcome. * Type systems Static analyses for dynamic type systems, type systems that bridge the gap between static and dynamic types, static systems with type dynamic extensions, weak typing. * Theory Formal semantics, calculi, correctness of analyses and transformations, lambda calculus. * Implementation Compilers, runtime systems, optimisation, virtual machines, resource management, interpreters, foreign-function and operating system interfaces, partial evaluation, program analysis and transformation, embedded systems, and generally implementations with novel or noteworthy features. * Program-development environments and tools The Lisp and Scheme family of programming languages have traditionally been the source of innovative program-development environments. Authors working on these issues are encouraged to submit papers describing their technologies. Topics include profilers, tracers, debuggers, program understanding tools, performance and conformance test suites and tools. * Education Scheme has achieved widespread use as a tool for teaching computer science. Papers on the theory and practice of teaching with Scheme are invited. * Agile Methogologies Dynamic languages seem to share a symbiotic relationship with agile software development methodologies. In particular, the dynamic type checking of Scheme clearly benefits from test-driven development, but that same dynamic checking makes the software more easily adapted to changing requirements. * Applications and experience Interesting applications which illuminate aspects of Scheme experience with Scheme in commercial or real-world contexts; use of Scheme as an extension or scripting language. * Scheme pearls Elegant, instructive examples of functional programming. A Scheme pearl submission is a special category, and should be a short paper presenting an algorithm, idea or programming device using Scheme in a way that is particularly elegant. Following the model of earlier workshops, experience papers need not necessarily report original research results; they may instead report practical experience that will be useful to others, re-usable programming idioms, or elegant new ways of approaching a problem. The key criterion for such a paper is that it makes a contribution from which other practitioners can benefit. It is not enough simply to describe a program! ORGANIZERS Program Chair Robby Findler, University of Chicago Program Committee John Clements, Cal Poly Sebastian Egner, Philips Research Robby Findler, University of Chicago Cormac Flanagan, UC Santa Cruz Erik Hilsdale, Google Eric Knauel, University of Tubingen Steering Committee William D. Clinger, Northeastern University Marc Feeley, University of Montreal Robby Findler, University of Chicago Dan Friedman, Indiana University Christian Queinnec, University Paris 6 Manuel Serrano, INRIA Olin Shivers, Georgia Tech Mitchell Wand, Northeastern University From scsh-users-request@scsh.net Sun Apr 9 10:08:57 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id BACE51338; Sun, 9 Apr 2006 10:08:55 +0200 (MST) Received: from mx4.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx4 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 30778-03; Sun, 9 Apr 2006 10:08:47 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 91C9D132D; Sun, 9 Apr 2006 10:08:45 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id 6A6EB5ECF; Sun, 9 Apr 2006 10:08:44 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net Message-ID: <4438C0C5.7060201@cse.iitb.ac.in> Date: Sun, 09 Apr 2006 13:37:33 +0530 From: Gautham Anil User-Agent: Thunderbird 1.5 (X11/20051201) MIME-Version: 1.0 To: scsh-users@scsh.net Subject: Strange error in multiprocess communication Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/294 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Sun, 9 Apr 2006 10:08:44 +0200 (MST) Hi, I am building a multi process multi threaded application (for research purposes). It involves a process (say client-process) communicating in its only thread to one of many threads in another process (say controller) using TCP/IP. The client-process sleeps occasionally. Note that there are many client-processes and only one controller. All processes are in the same machine for now. The communication contents is scheme. I use (call-with-values (socket-client ip port) (lambda (in out) << code >> (display << message >> out) .... )) for communication. This error was thrown by the controller. << Error from a run >> Error: exception os-error (channel-maybe-read 104 '#{Byte-vector (length 4096) 40 115 101 110 100 ---} 0 4096 #t ---) << Error from another run (the errors are identical) >> Error: exception os-error (channel-maybe-read 104 '#{Byte-vector (length 4096) 40 115 101 110 100 ---} 0 4096 #t ---) 1> << Which I debugged and traced all the way down to the portion of my code in the controller that reads from sockets >> 1> 1> ,debug '#{Exception-continuation (pc 30) (loop in unnamed in channel-read in scheme-level-0)} [0] 0 [1] '#{Procedure 458 (loop in unnamed in channel-read ---)} [2] #t [3] 1 [4] 4096 [5] '#{Byte-vector (length 4096) 40 115 101 110 ---} [6] 0 [7] 'any [8] '#{Input-channel "socket connection"} inspect: ,d '#{Continuation (pc 104) (unnamed in read-char-handler in i/o)} [0] '#{Input-port #{Input-channel "socket connection"}} [1] #t inspect: ,d '#{Continuation (pc 62) (with-dynamic-env in fluids)} [0] '#{Procedure 1109 (unnamed in with-dynamic-env in fluids)} [1] '((# # # # # ---) (# . #) (# # # # # ---) (# # # # #) (# # # #) ---) [2] #f [3] #f inspect: ,d '#{Continuation (pc 35) (protect-port-op in i/o)} [0] '#{Input-port #{Input-channel "socket connection"}} [1] '#{Procedure 1716 (unnamed in unnamed in one-arg-proc->handler ---)} inspect: ,d '#{Exception-continuation (pc 7) (sub-read in reading)} [0] '#{Input-port #{Input-channel "socket connection"}} inspect: ,d '#{Continuation (pc 14) (loop in read in reading)} [0] '#{Procedure 1963 (loop in read in reading)} [1] '#{Input-port #{Input-channel "socket connection"}} [2] '(#{Input-port #}) inspect: ,d '#{Continuation (pc 14) (read-loop in unnamed in unnamed ---)} << I wrote read-loop >> [0: read-loop] '#{Procedure 16612 (read-loop in unnamed in unnamed ---)} [1: in] '#{Input-port #{Input-channel "socket connection"}} [2: out] '#{Output-port #{Output-channel "socket connection"}} [3: socket] '#{Socket 32942} [4: id] 3 [5: pr] '#{Procedure 16602 (pr in unnamed in make-server)} [6: self] '#{Procedure 16601 (self in unnamed in make-server)} [7: self-data] '#{Server-info} [8: command] 'do-client [9: params] '(#{Input-port #} #{Output-port #} #{Socket 32942} 3) [10: s-info] '#{Server-info} [11: name] "ChL" [12: port] -1 [13: control-command-handler] '#{Procedure 16592 (unnamed in make-server1)} [14: client-command-handler] '#{Procedure 16594 (unnamed in make-server1)} inspect: While researching this problem, I found this message though it does not recommend a solution. http://www.scsh.net/mail-archive/scsh-users/2004-02/msg00009.html Please tell me how to solve this problem. Thanks in advance. -- Gautham Anil M.Tech Student From scsh-users-request@scsh.net Sun Apr 9 16:05:59 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 589F01443; Sun, 9 Apr 2006 16:05:57 +0200 (MST) Received: from mx4.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx4 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 30776-05; Sun, 9 Apr 2006 16:05:55 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id BDAFC1442; Sun, 9 Apr 2006 16:05:53 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id C88295ECF; Sun, 9 Apr 2006 16:05:52 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net X-Injected-Via-Gmane: http://gmane.org/ To: scsh-users@scsh.net From: Emilio Lopes Subject: new release of sxml-to-xml Date: Sun, 09 Apr 2006 16:07:56 +0200 Organization: The Church of Emacs Lines: 18 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=latin-iso8859-1 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: rf1fe.r.pppool.de User-Agent: Emacs Gnus Cancel-Lock: sha1:O7DZzSS+oY1e2N5GME531H+qF7s= Sender: news Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/295 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Sun, 9 Apr 2006 16:05:52 +0200 (MST) Release 0.2 of sxml-to-xml is available for download from http://home.tiscali.de/emilio.lopes/scheme/scheme.html The changes introduced are: * The procedure `sxml->xml' now requires a PORT as a second argument. Previously the output was simply sent to the current output port. * There is now an "internal" SXML-Target `*VERBATIM*', useful for writing DOCTYPE declarations or Javascript, if you're generating XHTML. It corresponds to SUNet's `plain-html', but with a name which does not collide with any possible XML element names. -- Emílio C. Lopes Munich, Germany From scsh-users-request@scsh.net Sun Apr 9 16:40:25 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 59FF513AD; Sun, 9 Apr 2006 16:40:24 +0200 (MST) Received: from mx4.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx4 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 42346-03; Sun, 9 Apr 2006 16:40:20 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 3CD5513A6; Sun, 9 Apr 2006 16:40:18 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id 08FFC5ED1; Sun, 9 Apr 2006 16:40:16 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net X-Injected-Via-Gmane: http://gmane.org/ To: scsh-users@scsh.net From: "Taylor R. Campbell" Subject: Re: Strange error in multiprocess communication Date: Sun, 9 Apr 2006 14:32:56 +0000 Lines: 22 Message-ID: References: <4438C0C5.7060201@cse.iitb.ac.in> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pluto.mumble.net In-reply-to: <4438C0C5.7060201@cse.iitb.ac.in> (gautham_anil@cse.iitb.ac.in) User-Agent: IMAIL/1.21; Edwin/3.116; MIT-Scheme/7.7.90.+ Sender: news Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/296 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Sun, 9 Apr 2006 16:40:16 +0200 (MST) Date: Sun, 09 Apr 2006 13:37:33 +0530 From: Gautham Anil Newsgroups: gmane.lisp.scheme.scsh Error: exception os-error (channel-maybe-read 104 '#{Byte-vector (length 4096) 40 115 101 110 100 ---} 0 4096 #t ---) Judging by this error message, if my errno-fu is correct, this means that the connection was reset by peer. You could probably find out for certain if you typed ,CONDITION at the debugger and looked at the last element of the list it prints; CHANNEL-MAYBE-READ puts the OS's error message (in the sense of strerror(3)) at the end of the condition it signals. But I notice that you seem to be using the sockets interface from Scheme48, which scsh happens to come with, and which is very minimal and not very useful. Why aren't you using scsh's much more extensive sockets interface? As it happens, the OS error message will be put at the very front of conditions signalled by the socket syscalls if you use scsh's sockets interface. From scsh-users-request@scsh.net Tue Apr 11 11:17:12 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 92503140; Tue, 11 Apr 2006 11:17:10 +0200 (MST) Received: from mx1.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx1 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28308-03; Tue, 11 Apr 2006 11:17:04 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 35592149; Tue, 11 Apr 2006 11:17:01 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id 291D15ED1; Tue, 11 Apr 2006 11:17:00 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net Message-ID: <443B73B9.5080808@cse.iitb.ac.in> Date: Tue, 11 Apr 2006 14:45:37 +0530 From: Gautham Anil User-Agent: Thunderbird 1.5 (X11/20051201) MIME-Version: 1.0 To: "Taylor R. Campbell" , scsh-users@scsh.net Subject: Re: Strange error in multiprocess communication References: <4438C0C5.7060201@cse.iitb.ac.in> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Resent-Message-ID: <8bZNOC.A.2kJ.LQ3OEB@bernard> Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/297 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Tue, 11 Apr 2006 11:17:00 +0200 (MST) Hi, Your errno-fu is pretty good. This is what it gave me. 1> ,condition '(exception 116 os-error 104 #{Byte-vector (length 4096) 40 115 101 110 100 45 109 101 115 115 97 103 101 32 99 104 ...} 0 4096 #t #{Input-channel "socket connection"} "Connection reset by peer") 1> Still, how to solve it? Please help. Taylor R. Campbell wrote: > Date: Sun, 09 Apr 2006 13:37:33 +0530 > From: Gautham Anil > Newsgroups: gmane.lisp.scheme.scsh > > Error: exception > os-error > (channel-maybe-read 104 '#{Byte-vector (length 4096) 40 115 101 > 110 100 ---} 0 4096 #t ---) > > Judging by this error message, if my errno-fu is correct, this means > that the connection was reset by peer. You could probably find out > for certain if you typed ,CONDITION at the debugger and looked at the > last element of the list it prints; CHANNEL-MAYBE-READ puts the OS's > error message (in the sense of strerror(3)) at the end of the > condition it signals. > > But I notice that you seem to be using the sockets interface from > Scheme48, which scsh happens to come with, and which is very minimal > and not very useful. Why aren't you using scsh's much more extensive > sockets interface? As it happens, the OS error message will be put at > the very front of conditions signalled by the socket syscalls if you > use scsh's sockets interface. -- Gautham Anil gautham_anil@cse.iitb.ac.in M.Tech Student http://www.cse.iitb.ac.in/~gautham_anil __ Mailing address ____________________ Room No. 214, A-Wing, Hostel 12, Indian Institute of Technology Bombay, Mumbai - 400 076 From scsh-users-request@scsh.net Tue Apr 11 12:05:27 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 948E5149; Tue, 11 Apr 2006 12:05:25 +0200 (MST) Received: from mx1.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx1 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28348-05; Tue, 11 Apr 2006 12:05:21 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 46595141; Tue, 11 Apr 2006 12:05:20 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id 3ED2E5ED1; Tue, 11 Apr 2006 12:05:19 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net Date: Tue, 11 Apr 2006 18:02:40 +0800 From: "xiaolei zhang" To: "scsh-users" Subject: default process forms X-mailer: Foxmail 5.0 [cn] Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 X-AIMC-AUTH: maths X-AIMC-MAILFROM: maths@21cn.com Message-ID: X-AIMC-Msg-ID: WjMmP3PB Resent-Message-ID: <_HNC2C.A.2pJ.e93OEB@bernard> Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/298 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Tue, 11 Apr 2006 12:05:19 +0200 (MST) aGVsbG86DQoNCglUaGUgU2NzaCBSZWZlcmVuY2UgTWFudWFsIHNhaWQ6DQoNCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KVGhlIGRlZmF1bHQgY2FzZSAocHJvZyBhcmcxIC4uLiBhcmduKSBp cyBhbHNvIGltcGxpY2l0bHkgYmFja3F1b3RlZC4gVGhhdCBpcywgaXQgaXMgZXF1aXZhbGVudCB0 bzoNCg0KICAgIChiZWdpbiAoYXBwbHkgZXhlYy1wYXRoIGAocHJvZyBhcmcxIC4uLiBhcmduKSkp DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgSSBoYWQgdHJpZWQ6DQoNCgkx oaIobHMpDQoJMqGiKGJlZ2luIChhcHBseSBleGVjLXBhdGggYChscykpKQ0KICAgIDOhoihydW4g KGxzKSkNCg0KCTEgZmFpbHMsIGFuZCAyLDMgd29ya2VkLiBCdXQgdGhlIHJlZmVyZW5jZSBtYW51 YWwgc2FpZHMgMSBpcyBlcXVpdmFsZW50IHRvIDIsIHdoeSAxIGZhaWxzPyBUaGUgZXJyb3IgbWVz c2FnZXMgYXJlOg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpFcnJvcjogdW5kZWZp bmVkIHZhcmlhYmxlDQogICAgICAgbHMNCiAgICAgICAocGFja2FnZSB1c2VyKQ0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoJdGhhbmsgeW91DQoNCqGhoaGhoaGhoaGhoaGhoaF4aWFv bGVpIHpoYW5nDQqhoaGhoaGhoaGhoaGhoaGhbWF0aHNAMjFjbi5jb20NCqGhoaGhoaGhoaGhoaGh oaGhoaGhMjAwNi0wNC0xMQ0K From scsh-users-request@scsh.net Tue Apr 11 13:25:41 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 4F94D1255; Tue, 11 Apr 2006 13:25:39 +0200 (MST) Received: from mx4.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx4 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 51898-04; Tue, 11 Apr 2006 13:25:33 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 7D1ED134D; Tue, 11 Apr 2006 13:25:31 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id 7A8D05ED1; Tue, 11 Apr 2006 13:25:30 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net X-EJK: wsi To: "xiaolei zhang" Cc: "scsh-users" Subject: Re: default process forms In-Reply-To: (xiaolei zhang's message of "Tue, 11 Apr 2006 18:02:40 +0800") References: From: Eric Knauel Date: Tue, 11 Apr 2006 13:25:21 +0200 Message-ID: User-Agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.5-b25 (darwin) MIME-Version: 1.0 Content-Type: text/plain; charset=gb2312 Content-Transfer-Encoding: quoted-printable Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/299 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Tue, 11 Apr 2006 13:25:30 +0200 (MST) On Tue 11 Apr 2006 12:02, "xiaolei zhang" writes: > hello: > > The Scsh Reference Manual said: > > -------------------------------------------------------------------------= ----------- > The default case (prog arg1 ... argn) is also implicitly backquoted. That= is, it is equivalent to: > > (begin (apply exec-path `(prog arg1 ... argn))) > > -------------------------------------------------------------------------= ------------ > > I had tried: > > 1=A1=A2(ls) > 2=A1=A2(begin (apply exec-path `(ls))) > 3=A1=A2(run (ls)) > > 1 fails, and 2,3 worked. But the reference manual saids 1 is equivalent = to 2, why 1 fails? The error messages are: > > ---------------------------- > Error: undefined variable > ls > (package user) > ---------------------------- The manuals just says that `(ls)' is a process form equivalent to some other process form. However, process forms are only useful as arguments for the various `run' macros or `exec-epf' (see Section 2.3). Entering `(ls)' at the scsh prompt tries to eval a function call (without any arguments) to a function bound to the undefined variable `ls'.=20 -Eric --=20 "Excuse me --- Di Du Du Duuuuh Di Dii --- Huh Weeeheeee" (Albert King) From scsh-users-request@scsh.net Tue Apr 11 19:09:07 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 1FBF41369; Tue, 11 Apr 2006 19:09:05 +0200 (MST) Received: from mx4.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx4 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 30852-03; Tue, 11 Apr 2006 19:09:01 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id DD52E10A8; Tue, 11 Apr 2006 19:08:59 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id 92E045ED1; Tue, 11 Apr 2006 19:08:58 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net X-Injected-Via-Gmane: http://gmane.org/ To: scsh-users@scsh.net From: "Taylor R. Campbell" Subject: Re: Strange error in multiprocess communication Date: Tue, 11 Apr 2006 17:08:12 +0000 Lines: 19 Message-ID: References: <4438C0C5.7060201@cse.iitb.ac.in> <443B73B9.5080808@cse.iitb.ac.in> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pluto.mumble.net In-reply-to: <443B73B9.5080808@cse.iitb.ac.in> (gautham_anil@cse.iitb.ac.in) User-Agent: IMAIL/1.21; Edwin/3.116; MIT-Scheme/7.7.90.+ Sender: news Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/300 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Tue, 11 Apr 2006 19:08:58 +0200 (MST) Date: Tue, 11 Apr 2006 14:45:37 +0530 From: Gautham Anil Newsgroups: gmane.lisp.scheme.scsh Hi, Your errno-fu is pretty good. This is what it gave me. 1> ,condition '(exception 116 os-error 104 #{Byte-vector (length 4096) 40 115 101 110 100 45 109 101 115 115 97 103 101 32 99 104 ...} 0 4096 #t #{Input-channel "socket connection"} "Connection reset by peer") 1> Still, how to solve it? Please help. Well, I don't know exactly what the problem is beyond what the error message told you. Perhaps you could post your code and explain how you run it? From scsh-users-request@scsh.net Fri Apr 14 14:53:53 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 673F8119; Fri, 14 Apr 2006 14:53:51 +0200 (MST) Received: from mx1.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx1 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 39070-04; Fri, 14 Apr 2006 14:53:49 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id B34DA14A; Fri, 14 Apr 2006 14:53:44 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id AC7245ECF; Fri, 14 Apr 2006 14:53:43 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net X-IronPort-AV: i="4.04,120,1144036800"; d="scan'208"; a="206413773:sNHT36976848" Mime-Version: 1.0 (Apple Message framework v749.3) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed To: scsh-users@scsh.net From: "Matthew D. Swank" Subject: starting commander-s in OS-X Date: Fri, 14 Apr 2006 07:53:27 -0500 X-Mailer: Apple Mail (2.749.3) Resent-Message-ID: <4a0orC.A.tIQ.Xt5PEB@bernard> Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/301 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Fri, 14 Apr 2006 14:53:43 +0200 (MST) I am using a patched 0.6.6 source of scsh to run commander-s (the 4/6 tarball on the scsh ftp site) in OS X, and I get the following exception: $ commander-s heap size 5000000 is too small, using 6300672 starting remote handler for condition(exception 10 undefined-global # {Location 11003 ignore-signal nuit}) Please connect to port 8888 Can anyone tell me what might be wrong? Thanks, Matt -- "You do not really understand something unless you can explain it to your grandmother." - Albert Einstein. From scsh-users-request@scsh.net Fri Apr 14 15:46:30 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 3C583119; Fri, 14 Apr 2006 15:46:29 +0200 (MST) Received: from mx1.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx1 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 30394-02; Fri, 14 Apr 2006 15:46:23 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 26E37162; Fri, 14 Apr 2006 15:46:21 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id D53985ED1; Fri, 14 Apr 2006 15:46:19 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net X-IronPort-AV: i="4.04,120,1144036800"; d="scan'208"; a="1001935017:sNHT30248686" Mime-Version: 1.0 (Apple Message framework v749.3) Content-Transfer-Encoding: 7bit Message-Id: <83253C21-3F3C-4818-A53C-C945DF15CA72@charter.net> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed To: scsh-users@scsh.net From: "Matthew D. Swank" Subject: Thoughts on Commander S Date: Fri, 14 Apr 2006 08:46:02 -0500 X-Mailer: Apple Mail (2.749.3) Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/302 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Fri, 14 Apr 2006 15:46:19 +0200 (MST) As I was reading the paper for the Scheme Workshop (very nice btw), I was reminded a lot of Acme, the Plan 9 editor/user interface/swiss army knife. Are the authors familiar with that environment , and did it influence your design at all? Matt From scsh-users-request@scsh.net Mon Apr 17 07:04:42 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id DFDC61B2; Mon, 17 Apr 2006 07:04:39 +0200 (MST) Received: from mx1.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx1 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 63464-03; Mon, 17 Apr 2006 07:04:33 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id A9DB81B0; Mon, 17 Apr 2006 07:04:28 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id 1B7F35ED1; Mon, 17 Apr 2006 07:04:27 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net X-Injected-Via-Gmane: http://gmane.org/ To: scsh-users@scsh.net From: "Taylor R. Campbell" Subject: Re: starting commander-s in OS-X Date: Mon, 17 Apr 2006 05:04:06 +0000 Lines: 19 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pluto.mumble.net In-reply-to: (akopa@charter.net) User-Agent: IMAIL/1.21; Edwin/3.116; MIT-Scheme/7.7.90.+ Sender: news Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/303 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Mon, 17 Apr 2006 07:04:27 +0200 (MST) Date: Fri, 14 Apr 2006 07:53:27 -0500 From: "Matthew D. Swank" Newsgroups: gmane.lisp.scheme.scsh I am using a patched 0.6.6 source of scsh to run commander-s (the 4/6 tarball on the scsh ftp site) in OS X, and I get the following exception: $ commander-s heap size 5000000 is too small, using 6300672 starting remote handler for condition(exception 10 undefined-global # {Location 11003 ignore-signal nuit}) Please connect to port 8888 Can anyone tell me what might be wrong? Be sure that you have the scsh 0.6.7 beta. It contains several fixes and additions that Commander S requires, such as the IGNORE-SIGNAL procedure. You can get it, too, from the scsh FTP site. From scsh-users-request@scsh.net Mon Apr 17 23:37:17 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 4CD96162; Mon, 17 Apr 2006 23:37:15 +0200 (MST) Received: from mx1.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx1 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 50616-02; Mon, 17 Apr 2006 23:37:12 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 73256149; Mon, 17 Apr 2006 23:37:10 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id 7D3255ECF; Mon, 17 Apr 2006 23:37:09 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net Mime-Version: 1.0 (Apple Message framework v749.3) In-Reply-To: References: Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: "Matthew D. Swank" Subject: Re: starting commander-s in OS-X Date: Mon, 17 Apr 2006 16:36:53 -0500 To: scsh-users@scsh.net X-Mailer: Apple Mail (2.749.3) Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/304 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Mon, 17 Apr 2006 23:37:09 +0200 (MST) On Apr 17, 2006, at 12:04 AM, Taylor R. Campbell wrote: > > Be sure that you have the scsh 0.6.7 beta. It contains several fixes > and additions that Commander S requires, such as the IGNORE-SIGNAL > procedure. You can get it, too, from the scsh FTP site. Ah yes, that is the problem. Thanks. It seems to be working, except when running certain commands (like ls), I get: #{Procedure 1319 (unnamed in continuation->procedure in wind)} with the following in the view window: I'm sorry akopa, I'm afraid I can't do that. The following error occured: (curses-error waddstr) At this point I have to kill the process. Matt -- "You do not really understand something unless you can explain it to your grandmother." - Albert Einstein. From scsh-users-request@scsh.net Tue Apr 18 05:32:51 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 626CA13BB; Tue, 18 Apr 2006 05:32:50 +0200 (MST) Received: from mx4.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx4 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16706-01; Tue, 18 Apr 2006 05:32:41 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 8582713B5; Tue, 18 Apr 2006 05:32:35 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id 56BBC5ECD; Tue, 18 Apr 2006 05:32:34 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=ygirb0gzbKh6Rng0+6HUR43hlVuehIEyfEf+PaADEy7R/gnX5jkrYvbhwZtuiAkzB9eXRDuuZswQ27P3hSXZfLFHoQfRT1T7KRKya3FwHME/eMaDfRXAQzP22XxDBebkUfiPoRisY5XrsoCr3EYRhtx6jtMriFaDBAzDd1Z/CYM= ; Message-ID: <20060418033211.22394.qmail@web34309.mail.mud.yahoo.com> Date: Mon, 17 Apr 2006 20:32:11 -0700 (PDT) From: Olwe Bottorff Subject: Re: patch for io.c: scsh won't build with gcc 4.0.2 To: scsh-users@scsh.net In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/305 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Tue, 18 Apr 2006 05:32:34 +0200 (MST) X-Spam-Status: No, hits=2.224 tagged_above=2 required=6.31 tests=[AWL=-0.000, FORGED_RCVD_HELO=0.05, FORGED_YAHOO_RCVD=2.174] X-Spam-Level: ** I just downloaded the 0.6.6 and had this same problem with Fedora 5/gcc4.1.0. I really didn't follow the patch suggestions George Demmy made. Please advise. O --- Martin Gasbichler wrote: > George Demmy writes: > > > I've been playing with scsh since the early 0.5 > days, so imagine my > > surprise when a routine configure; make ; make > install for 0.6.6 blew > > up on a Fedora 4 box. The problem is with > c/unix/io.c. gcc 4.0.2 > > doesn't like the storage class specification for > the declaration of > > write_integer in ps_write_integer (and I don't > blame it). Also, it's > > freaking out about type mismatches arisiing from > mixed use of singed > > and unsigned longs. I've checked the CVS sources > out, and get the same > > problem. I've included a patch that fixes the > problem. > > You've probably fetched the HEAD which is not > up-to-date at the > moment: the few fixes we added recently (including > support for gcc > 4.0) were applied to the r0-6-stable branch only. > Sorry, I'll sync the > changes back as soon as 0.6.7 has been released. > > -- > Martin > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From scsh-users-request@scsh.net Tue Apr 18 09:56:44 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 42E19154; Tue, 18 Apr 2006 09:56:42 +0200 (MST) Received: from mx1.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx1 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 56698-05; Tue, 18 Apr 2006 09:56:30 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 23D0115A; Tue, 18 Apr 2006 09:56:28 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id 1319C5ED1; Tue, 18 Apr 2006 09:56:26 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net From: schinz@alphanet.ch (Michel Schinz) To: scsh-users Subject: Scsh (a Unix Scheme shell) FAQ Date: Thu, 13 Apr 2006 09:30:02 +0200 (MET) Organization: Alphanet NF NNTP-Posting-Date: Thu, 13 Apr 2006 07:30:03 +0000 (UTC) Message-ID: User-Agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.5-b24 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/306 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Tue, 18 Apr 2006 09:56:26 +0200 (MST) Posted-By: auto-faq 3.3 (Perl 5.008) Archive-name: unix-faq/shell/scsh-faq Posting-Frequency: monthly URL: http://www-internal.alphanet.ch/~schinz/scsh-faq.html 1 Frequently Asked Questions **************************** This is the scsh Frequently Asked Questions list of 13 December 2005. This article is provided as is without any express or implied warranties. While every effort has been taken to ensure the accuracy of the information contained in this article, the maintainer assumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. 2 Meta-questions **************** This section contains questions and answers about this FAQ, its authors, etc. 2.1 What is the aim of this FAQ? ================================ The aim of this FAQ is to provide some help and documentation to people interested in scsh, a Unix shell that uses Scheme as its scripting language. It is mainly aimed towards those who do not know much about scsh or Scheme. This explains why some questions that might seem trivial to the seasoned Scheme programmer are included anyway. 2.2 Who wrote this FAQ? ======================= Most of the FAQ was written and is still maintained by Michel Schinz () and Eric Marsden (). To send mail about the FAQ in general, please do not use these personal addresses, but the alias mentioned below (*note Contact::). 2.3 What was changed recently in this FAQ? ========================================== Here is a list of recent changes. The name of the person who suggested the change (either explicitly by sending a mail, or implicitly by posting in the newsgroup) is mentioned in parentheses. 1. 2003/01/13 v2.36 minor update for scsh 0.6.3. 2. 2003/02/12 rewrote part comparing scsh with other scripting languages (Yoann Padioleau), added Ruby script, updated scsh license, removed reference to CIG, dropped version numbers for this FAQ. 3. 2003/02/14 removed broken and outdated link to notes on the scsh Web sever, added reference to the "new" Scheme 48 documentation (Michael Sperber), changed home pages of Rees and Kelsey. 4. 2003/02/18 corrected scsh example script to include dot files (Sriram Thaiyar). 5. 2003/03/13 added reference to Sunterlib (Anthony Carrico). 6. 2003/04/22 minor update for scsh 0.6.4. 7. 2003/10/03 updated Brian Carlstrom's web page. 8. 2003/11/02 added links to the archives of the newsgroup and the mailing list (Brian Carlstrom). 9. 2003/12/01 minor update for scsh 0.6.5. 10. 2004/02/29 finally mention the death of c.l.s.scsh 11. 2004/03/14 mention problems with scsh 0.6.x and Ultrix (Brian Carlstrom) 12. 2004/06/21 use the new mailing-list address 13. 2004/08/13 updated information about PreScheme (Martin Gasbichler), fixed a typo (Rohan Nicholls) 14. 2005/10/29 added reference to rlwrap (William S) 15. 2005/12/13 added reference to Commander S and the port of ACME (Roland Kaufmann), trimmed history 2.4 Where do I get the latest version of this FAQ? ================================================== The latest version of the FAQ can be found at the "scsh FAQ home-page": http://www-internal.alphanet.ch/~schinz/scsh-faq.html This home-page contains three versions of this FAQ: an ASCII version, an HTML version and an Info version. If you have access to the World Wide Web, I strongly recommend that you get the HTML version, since all the hyperlinks can be followed just by clicking on them. Apart from that, this document is posted on the 13th of each month to the newsgroups `comp.lang.scheme.scsh', `comp.lang.scheme', `comp.answers' and `news.answers'. 2.5 Where do I send comments about this FAQ? ============================================ Comments about this FAQ should be sent to the following address: . Please help us in producing a useful document by sending suggestions and material for this FAQ. If you find stylistic, grammatical or syntax errors, please also report them. 3 General ********* This section contains general questions about scsh: what it is, where to find it, etc. 3.1 What is scsh? ================= Scsh is a Scheme shell. That is, it is a Unix shell which uses Scheme as its scripting language. It was designed and written by Olin Shivers, Brian Carlstrom, Martin Gasbichler and Mike Sperber, and is built on top of Scheme 48, an implementation of Scheme written by Jonathan Rees and Richard Kelsey. Scsh currently includes the following features: - A complete Posix interface. - A very complete support for networking, with high and low level interfaces. An additional network package, including an HTTP server, SMTP support, etc. is also available separately. - Powerful string manipulation functions: pattern matching, file-name manipulations, etc. - AWK-like macros. - An s-expression-based notation for regular expressions (SREs). - Threads. However, it is currently aimed primarily at scripting use, rather than interactive use (*note Interactive scsh::). 3.2 How do you pronounce scsh? ============================== According to Olin, scsh is pronounced "skishhhh" (it rhymes with "fish"). 3.3 What is the current version of scsh? ======================================== The current version (as of 13 December 2005) is 0.6.5. 3.4 What are the licensing terms for scsh? ========================================== Scsh is distributed under a BSD-like open source licence. Here are the exact terms, which can be found in the file `COPYING' of the distribution: Copyright (c) 1993-2002 Richard Kelsey and Jonathan Rees Copyright (c) 1994-2002 by Olin Shivers and Brian D. Carlstrom. Copyright (c) 1999-2002 by Martin Gasbichler. Copyright (c) 2001-2002 by Michael Sperber. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of the authors may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Previous to version 0.5.2 scsh was distributed under a more restrictive licence. 3.5 What is Scheme? =================== Scheme is a small and elegant programming language of the Lisp family, originally designed by Guy Lewis Steele Jr. and Gerald Jay Sussman. It includes powerful features like first-class procedures and continuations, and is statically scoped (like Pascal). For more information, refer to the Scheme FAQ (*note Getting the docs::). 3.6 What is Scheme 48? ====================== Scheme 48 is a small and portable Scheme implementation written by Jonathan Rees and Richard Kelsey. It is based on a virtual machine architecture (i.e. it does not compile to native code). Scheme 48 implements all the features described in R5RS (*note Getting the docs::) and some extensions like exceptions and a module system. 3.7 How does scsh compare to other common scripting languages? ============================================================== Many scripting languages are in use today, and comparing scsh with all of them would be impossible. Here, we therefore restrict ourselves to the following three popular scripting languages: Perl, Python and Ruby. Below, they will be collectively referred to as PP&R. To simplify the comparison, it will be split in three parts: first we will look at the programming languages themselves, that is the abstractions they offer to the programmer; then, we will look at the implementation(s) of these languages; finally, we will look at the (standard) libraries available for these different languages. 3.7.1 Underlying programming languages -------------------------------------- >From a programming language perspective, scsh is different than PP&R in that it is based on a general-purpose programming language, namely Scheme. PP&R, on the other hand, were all designed to be scripting languages originally. Today many people use them for relatively large applications which do not qualify as scripts, but scripts were the primary target of these languages. This sometimes shows in their design, for example when it comes to variable declarations which are by default optional in PP&R but not in Scheme. Scheme is also special in that it is a functional programming language, whereas Python and Ruby are object-oriented and Perl is procedural (even though most modern Perl code is written using objects). This does not mean that it is not possible to do functional programming with PP&R or object-oriented programming with Scheme. It just means that in Ruby and Python the object-oriented programming style is encouraged both by the language itself (e.g. everything is an object) and the standard libraries. The same holds for Scheme and the functional programming style. Another major difference between Scheme and PP&R is the syntax. PP&R all have infix syntax with different notations for different concepts. For example, the `if' conditional expression is syntactically different from, say, a function call. Scheme, on the other hand, has a very regular prefix syntax based on so-called s-expressions. In Scheme, an `if' looks no different than a function call. This very regular syntax make it possible to extend Scheme using a sophisticated macro system. Such macros are used in several crucial places in scsh, for example to support regular expressions with a syntax based on s-expressions (see below), or to provide a mechanism to iterate over the contents of a file in a way reminiscent of the AWK language. It should finally be noted that Scheme, Ruby and at least one implementation of Python (Stackless Python) give the programmer a way to capture the current continuation. This makes it possible to implement, directly in the language, very powerful control features including coroutines. More about continuations can be found, for example, in the Scheme FAQ (*note Getting the docs::). 3.7.2 Language implementations ------------------------------ Perl, Python, Ruby and scsh are relatively close to each other when it comes to the features offered by their current implementation(s). Ruby, Python and scsh have an interactive mode which enables one to enter expression and see the result of their evaluation. Perl does not include such a mode by default, even though its debugger can be used as a basic interactive evaluator. Ruby, Python and scsh also provide a debugger. 3.7.3 Libraries --------------- Because of their popularity, there is an impressive amount of third-party libraries available for PP&R, which cover many application domains. Currently, the same cannot be said about scsh, although a few third-party libraries are available (*note Scsh code archive::). That said, scsh has excellent support for writing scripts in a Posix environment, which is its main domain of application. A great design effort has been put into making Posix look nice from scsh. This is accomplished not only by providing nicer names for Posix functions, but also by altering their behaviour. This contrasts with PP&R which often use both the name and the behaviour of the standard Posix functions. One example situation where scsh diverges both from Posix and PP&R is child process management. With Posix and PP&R, when a child process exits, its parent process has to wait on it explicitly. If it fails to do so, the dead child process (actually some information about it, like its exit status) remains in the kernel's process table, as a zombie process. This can be a serious problem, since the kernel's process table can eventually become full with zombie processes. Scsh can manage dead children processes in an automatic fashion through a technique called process reaping. The basic idea is that scsh takes care of waiting for child processes and stores their exit status in the Scheme data-structure associated to them. The scsh programmer is then free to wait or simply ignore its children, without having to worry about zombie processes. Another strength of scsh is its handling of regular expressions. Since regular expressions are important in many scripting applications, pretty much all scripting languages provide support for them, and PP&R or scsh are no exceptions. It should be noted that the regular expressions offered by scsh have some limitations when compared to PP&R, like the lack of non-greedy versions of some operators. On the other hand, scsh's regular expressions have some very interesting properties not found in PP&R: * a notation based on s-expressions instead of plain strings, which makes it unnecessary to quote special characters in strings, and makes it possible to lay out regular expressions nicely, comment them, etc. * a representation of regular expressions as trees instead of strings, which eases their manipulation by programs, for example to compose large regular expressions out of small ones, or to write functions building regular expressions. 3.7.4 Example script -------------------- The following code snippets aim to provide an idea of how scsh compares with other common scripting languages. They all print a list of all the executables available in the current PATH to the standard output (improvements to these examples are welcome). - `sh' #!/bin/sh IFS=':' for d in $PATH; do for f in $d/*; do [ -x $f -a ! -d $f ] && echo $f done done - `perl' What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their head against? - _Larry Wall_ #!/usr/local/bin/perl for my $dir (split /:/, $ENV{PATH}) { opendir DIR, $dir or die "can't opendir $dir: $!"; -x "$dir/$_" && !-d _ && print "$_\n" for readdir DIR; closedir DIR; } - `python' #!/usr/local/bin/python import os, string, stat for d in string.split(os.environ['PATH'], ':'): for f in os.listdir(d): mode = os.lstat(d + '/' + f)[stat.ST_MODE] if not stat.S_ISDIR(mode): print f - `ruby' #!/usr/bin/ruby ENV["PATH"].split(/:/).each {|path| Dir.foreach(path) {|file| puts(file) if File.stat(File.join(path, file)).executable? } } - `scsh' #!/usr/local/bin/scsh -s !# (define (executables dir) (with-cwd dir (filter file-executable? (directory-files dir #t)))) (define (writeln x) (display x) (newline)) (for-each writeln (append-map executables ((infix-splitter ":") (getenv "PATH")))) 3.8 Where can I get scsh? ========================= The latest version of scsh can be downloaded from the scsh home page, located at http://www.scsh.net/. There is also a SourceForge projet page for scsh at http://scsh.sourceforge.net/. Binaries for the Debian distribution of GNU/Linux are available from http://www.debian.org/Packages/stable/interpreters/scsh.html. A binary RPM for Red Hat Linux for x86 is available in the shells group of the libc6 contrib archive (say `rpmfind scsh'). Binaries for win32 using Cygwin32 are available at http://xarch.tu-graz.ac.at/autocad/lisp/cl/scsh-0.5.2-cygwin-bin.tgz (thanks to Reini Urban). These require a recent version of cygwin1.dll. And please notice that this is an old (0.5.2) version of scsh, not the latest. 3.9 Where can I find documentation about scsh? ============================================== The main documentation about scsh is the scsh manual. It is included in the distribution, in `/lib/scsh/doc/scsh-manual' where `' is the location where you installed scsh. You may also want to take a look at the technical report describing the design of scsh. It is also included in the distribution, in `/lib/scsh/doc/scsh-paper'. The documentation about Scheme 48 is also worth reading, since it describes features like the module system, the interface with C, the command processor and some interesting libraries. It is in `/lib/scsh/doc/s48-manual'. Also, since scsh is written on top of a Scheme system, you have access to the great power of Scheme. However, no Scheme documentation is available with scsh, so you may wish to obtain the standard Scheme references as well. Here are some useful pointers: - The official specification for Scheme is "The Revised^5 Report on the Algorithmic Language Scheme", often abbreviated R5RS. This is the document you should use to look up details about Scheme. It is available in various formats at: http://www.schemers.org/Documents/Standards/ - An excellent and up-to-date Scheme FAQ was written by Matthias Radestock and is available at: http://www.schemers.org/Documents/FAQ/. An older FAQ was maintained by Mark Kantrowitz and Barry Margolin and, for those interested, is still available at: http://www.faqs.org/faqs/scheme-faq/. - Schemers.org (http://www.schemers.org/) is a collection of Scheme resources maintained by the Programming Languages Team at Rice University. - The Scheme home-page is located at: http://www.swiss.ai.mit.edu/projects/scheme/ - The Scheme 48 home-page is located at http://s48.org/. - There are many good books about Scheme, for example: "Structure and Interpretation of Computer Programs" (2nd ed.) by Harold Abelson and Gerald Jay Sussman, MIT Press, 1996 or "Scheme and the Art of Programming" by George Springer and Daniel P. Friedman, MIT Press, 1989. The full text of the first one is available online at the following address: http://mitpress.mit.edu/sicp/. For more references, see the Scheme FAQ. The home-pages of the various people involved in the design of Scheme, Scheme 48 or scsh may also be of interest to you. Here are some links: - Gerald Jay Sussman: http://www-swiss.ai.mit.edu/~gjs/gjs.html - Jonathan A. Rees: http://mumble.net/jar/ - Richard Kelsey: http://s48.org/~kelsey/ - Olin Shivers: http://www.cc.gatech.edu/fac/Olin.Shivers/ - Brian D. Carlstrom: http://www.carlstrom.com/ - Martin Gasbichler: http://www-pu.informatik.uni-tuebingen.de/users/gasbichl/ - Mike Sperber: http://www-pu.informatik.uni-tuebingen.de/users/sperber/ 3.10 Is there some kind of reference card for scsh? =================================================== Not exactly. There is a small list of all of scsh's functions in the file `doc/cheat.txt', but it has not been updated for quite some time. However, it would be great to have a nice TeXified reference card, which would include R5RS functions as well (something like the nice Perl reference card). 3.11 Which newsgroups and mailing-lists are related to scsh? ============================================================ Currently, there is a mailing-list which is mirrored to a newsgroup. To (un)subscribe to the mailing-list, send a message to . To submit a message to the mailing-list, send it to . The mailing-list is also readable as a standard newsgroup, thanks to gmane, a mail-to-news gateway. More information is available at the following URL: http://gmane.org/info.php?group=gmane.lisp.scheme.scsh There used to be a newsgroup dedicated to scsh, called `comp.lang.scheme.scsh' but it is now deprecated. Also, `comp.lang.scheme', which talks about Scheme in general, may be of interest to you. If Scheme is your first functional language, you might also want to read `comp.lang.functional'. 3.12 Does scsh run on my system? ================================ Currently, scsh runs without modification on the following systems: Harris CXUX, HP-UX, IBM AIX, Linux, FreeBSD (*note Scsh on FreeBSD::), OpenBSD, NetBSD, NeXTSTEP, SGI IRIX, Solaris, SunOS, MacOS X and Win32. It should also run without too many changes on other 32 bits UNIX platforms (for 64 bit platforms like Digital Unix, *note Porting scsh::) Since version 0.6, scsh doesn't run on Ultrix anymore, and users of this system are encouraged to use version 0.5.3 instead. 3.13 Is scsh easy to port? ========================== On 32 bits UNIX machines, yes, usually. If your system isn't already supported, take a look at the file `doc/install.txt' which contains porting instructions. Porting scsh to 64 bit UNIX machines (or, more generally, non-32 bit machines) is currently harder. The main reason is that this requires modifications to the Scheme 48 virtual machine (VM). This VM is written in PreScheme, a dialect of Scheme, and the PreScheme compiler is distributed with scsh. A paper about PreScheme is available through Richard Kelsey's Web page: http://s48.org/~kelsey/ In any case, never try to hack the C code generated by the PreScheme compiler (file `scheme48vm.c'); this is ugly and you'll have to restart from scratch for the next release of Scheme 48. Apart from the problems with the Scheme 48 VM, there are also some problems with scsh: the current version contains C code that assumes 32-bitness. This occurs mainly in the foreign-function interfaces (that is, interface between Scheme and C), where integers are converted between their Scheme and C representation. Since v0.5.2 there is also a port to Win32 which uses the cygwin32 toolkit (thanks to Brian Carlstrom). 3.14 Can I run scsh under some other Scheme implementation? =========================================================== Currently, scsh is tightly bound to Scheme 48 because it uses two non-standard features of Scheme 48: its module system and its foreign function interface (FFI). This does not mean that porting it to another Scheme implementation is impossible, but it is certainly hard. Mike Sperber and Richard Kelsey are drafting a SRFI for a standard FFI based on the current Scheme 48 FFI. This would help in making scsh portable, since its C part could be easily reused with other implementations using this FFI. Matthew Flatt will be implementing this standard FFI for PLT Scheme. Therefore, PLT Scheme may become a viable alternative to Scheme 48 for scsh users. PLT Scheme is an umbrella name for a family of implementations of Scheme, which includes DrScheme and MzScheme. More information about it can be found at: http://www.plt-scheme.org/ There is also a near-complete port of scsh to the Guile interpreter by Gary Houston, which you can access by cvsweb at http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-scsh/. It needs the `guilerxspencer' and `rxspencer' packages, available at http://arglist.com/guile/. While scsh was designed primarily for Scheme, most of it can be ported with some adaptations to other languages. We are currently aware of one such port for Objective Caml, called Cash, which can be found at: http://pauillac.inria.fr/cash/ 4 Installing and using scsh *************************** Now that you have downloaded scsh, you might want to install and use it. Some help about this subject is provided here. 4.1 Compilation problems ======================== Scsh should compile without problems on most Unix platforms. Particular notes: 1. On MacOS X, with scsh versions older than 0.6.0, you had to specify the host type to configure, since autoconf was not able to autodetect it; you had to include `--host=powerpc-apple-bsd' in the configure commandline. 2. On Linux, compiling versions older than 0.5.2 with the new version on the glibc caused problems. The 0.5.2 release notes say "problems with the signal system blowing up builds on some of the more obscure Unix systems have been fixed"). 4.2 Is there a "port" of scsh for FreeBSD? ========================================== Installing scsh on FreeBSD is best done by compiling FreeBSD's scsh "port" (meaning the FreeBSD term of a port, which is an integrated third-party package) or by getting a binary "package" from a FreeBSD ftp server. The FreeBSD port is available under `ports/lang/scsh'. 4.3 It looks like I do not have enough memory to compile scsh?!? ================================================================ If you get errors like "not enough memory" when building scsh, you may try to adjust the limits on memory usage imposed by your system. To do this, you have to use the `ulimit' command under `sh' and derivatives or the `unlimit' command under `csh' and derivatives (`tcsh' and the like). See the reference manual of your shell for more information. 4.4 Is there some kind of "contributed code archive" for scsh? ============================================================== The following resources may be of interest to you: 1. The Scheme Untergrund Library, which collects contributed code for Scheme 48 and scsh: http://www.nongnu.org/sunterlib/ 2. The scsh Wiki on which you can, among other things, share some code snippets http://www.scsh.net/cgi-bin/wiki.cgi 3. The resource page, on the scsh home page http://www.scsh.net/resources.html. 4. The scsh contributed code repository, at ftp://ftp.scsh.net/pub/scsh/contrib/, Which currently includes: 1. sunet, an extensible web server written by Olin Shivers with extensions by Michael Sperber; 2. Functional Postscript, which provides a Scheme interface to the Postscript page description language; 3. A text markup system by Scott Draves and Jonathan Rees; 4. pgscsh, a socket-level interface to the PostgreSQL object-relational DBMS, by Eric Marsden. Go on and send more code. 5. The various Scheme code repositories, which are all listed in the Scheme FAQ. The two main repositories are the Scheme Repository at Indiana University: http://www.cs.indiana.edu/scheme-repository/home.html and the CMU AI Repository, Scheme Section (a.k.a. the CMU Scheme Repository): http://www.cs.cmu.edu/Web/Groups/AI/html/repository.html. Also, some useful code is included with Scheme 48 (hash tables support, sorting functions, etc.) in the Big Scheme module. Please notice that you will have to open the module before being able to access its functions. For additional information, check the file `doc/big-scheme.txt' in the scsh distribution. If you want to write some code for scsh but you don't know what, you might want to take a look at the scsh home-page (*note Getting scsh::) which contains a list of interesting projects. 4.5 Can I use "plain" Scheme code with scsh? ============================================ Generally speaking, all of the existing Scheme code can be run without problem with scsh. There is only *one* possibly annoying incompatibility between R5RS-compliant interpreters and scsh: Symbols in scsh are case-sensitive while this is not true for R5RS-compliant interpreters. This means, for example, that the following expression: (eq? 'symbol 'Symbol) evaluates to `#t' with an R5RS-compliant interpreter (including the original Scheme 48), while it evaluates to `#f' with scsh. In practice this shouldn't be a big problem, but if you encounter code that works perfectly with all Scheme interpreters except scsh, then this may be the reason. If you want to know the design decision behind this choice, you should read the technical report describing the design of scsh (*note Getting the docs::). There are also other extensions to R5RS in scsh (e.g. C-like escaped characters in strings) but they shouldn't break existing Scheme code; you should have them in mind, however, when trying to write portable Scheme code under scsh. 4.6 Can I use scsh as an interactive shell? =========================================== Well, technically you can: just run the "scsh" command and you will enter a Scheme 48 session with all scsh functions available. However, this is definitely not suitable for interactive work: there is no command-line editing, no command-line history, no file/function name completion, no terse syntax, etc. To alleviate these problems, Martin Gasbischler and Eric Knauel have written Commander S, which runs on top of scsh and provides a comfortable interactive environment. One of its novel features is that it can understand the output of many Unix commands, and allows the user to browse and manipulate it in useful ways. More information about Commander S can be found in the paper describing it: http://www-pu.informatik.uni-tuebingen.de/users/knauel/commander-s.pdf Instructions about how to obtain and install Commander S are available from the scsh Web site: http://www.scsh.net/resources/commander-s.html Another option to obtain interactive features for scsh is to run it inside a tool providing them. A partial list of such tools includes: 1. Emacs: use the `cmuscheme' package, written by Olin. It is now part of Emacs, but if you don't have it on your system, you may use the one provided with scsh, which is also a little more up-to-date (check the directory `emacs'). This mode enables you to run scsh (or any Scheme interpreter by the way) as an inferior process. It provides command-line editing, command-line history, dynamic completion, file-name completion, automatic indentation of Scheme code and more. If you want to give it a try right now, just type `C-u M-x run-scheme', and then enter `scsh' at the prompt. 2. A line editor, which can run scsh as a sub-process while providing command-line editing. An example of such a tool is rlwrap, available from the following location: http://utopia.knoware.nl/~hlub/uck/software/ Once installed, rlwrap can be invoked as follows to provide line editing for scsh: rlwrap -c -b '(){}[].,=&^%$#@\;|' scsh 3. Some terminal emulator that enables input (or output) editing. An example is the 9term terminal emulator, inspired by the Plan 9 terminal emulator. Check out 9term's home-page at: http://www.cs.su.oz.au/~matty/9term/index.html 4. Any text editor that can run a process in one of its windows. An example is wily (although it is more than a text editor), inspired by Plan 9's ACME tool. For more information: http://www.cs.yorku.ca/~oz/wily/ The original ACME tool has also been ported to Unix: http://swtch.com/plan9port/ 4.7 I get "undefined variable" errors when I try to use some functions?!? ========================================================================= If you get "undefined variable" errors when you use functions from the big-scheme package or macros like `define-record', then maybe you didn't open the appropriate packages. To open them, there are two solutions: 1. use the `,open' command in interactive mode, or 2. use Scheme 48's module system. The first solution is nice for interactive work, while the second is the one to use for scripts. Documentation on the Scheme 48 module system can be found in the Scheme 48 documentation. Olin Shivers also posted a message with further explanations to the scsh newsgroup, which is archived at http://groups.google.com/groups?selm=qijyawastzo.fsf%40lambda.ai.mit.edu. 4.8 Can I use SLIB (a Scheme library) with scsh? ================================================ Yes, provided that you get (or write) an initialization file for scsh. Tomas By wrote one that you can get there: ftp://ftp.dcs.shef.ac.uk/home/tomas/scsh.init By the way, more information about SLIB is available by following this URL: http://www-swiss.ai.mit.edu/~jaffer/SLIB.html 4.9 Some basic I/O functions (like EOF testing) seem not available in scsh?!? ============================================================================= Don't forget that scsh is built on top of Scheme. Therefore, you have access to the full power of Scheme in scsh, and that includes some basic I/O functions, like the test for EOF, etc. However, these functions are not documented in the scsh manual, but in the official Scheme specification (R5RS, *note Getting the docs::). 4.10 How can I return the eof-object? ===================================== Some functions and macros (like the nice AWK macro) take a reader function as an argument. This reader function is required to return the eof-object at the end of the input. This is easy when the input is a port, but much harder when the input is something else (like a list of lines, etc.). The reason is that R5RS specifies that the eof-object can't be read by the `read' procedure, and therefore can't be included literally in your source. However, it can be defined like that: (define eof-object (read (make-string-input-port ""))) 4.11 Is there support for protocols like HTTP, SMTP, etc.? ========================================================== Yes, but it isn't included in the scsh distribution. You will find it in the contributed code directory for scsh: ftp://ftp.scsh.net/pub/scsh/contrib/ 4.12 I get strange errors with some network functions?!? ======================================================== If you are using scsh 0.4.2 under Solaris 2 or Irix 5, and the errors you get look like: Error: 122 "Operation not supported on transport endpoint" #{Procedure 9398 %listen} then you should switch to a newer version of scsh: this was a known bug of scsh 0.4.2. If, for some reason, you want to stick with v0.4.2, here is how to fix the bug: In scsh's distribution directory, edit the file `scsh/solaris/netconst.scm' (if you are under Solaris 2 and above) or `scsh/irix/netconst.scm' (if you are under Irix 5 and above) so that the following lines: (define socket-type/stream 1) ; stream socket (define socket-type/datagram 2) ; datagram socket (define socket-type/raw 3) ; raw-protocol interface ;;(define socket-type/rdm 4) ; reliably-delivered message ;;(define socket-type/seqpacket 5) ; sequenced packet stream are replaced by the following lines: (define socket-type/stream 2) ; stream socket (define socket-type/datagram 1) ; datagram socket (define socket-type/raw 4) ; raw-protocol interface ;;(define socket-type/rdm 5) ; reliably-delivered message ;;(define socket-type/seqpacket 6) ; sequenced packet stream then recompile scsh, by running make in the main directory, and reinstall it. 4.13 How do I get the multiple values returned by a function? ============================================================= This is documented in the R5RS. However, with all these continuations, the documentation might be a little hard to understand for newcomers. So here is a little (although not very useful) example that uses `values' and `call-with-values': (call-with-values (lambda () (values 6 7)) *) => 42 As you can see, the first argument to `call-with-values' is a procedure which return multiple values, and the second is a procedure which gets these multiple values as arguments. Scheme 48 provides another syntax to access multiple values: the `receive' macro. This macro binds multiple values returned by an expression to variables, and then evaluates a sequence of expressions with these bindings active (for Common Lisp fans, this is similar to `multiple-value-bind'). Here is the above example, rewritten using `receive': (receive (x y) (values 6 7) (* x y)) => 42 For more information on this function, check out `doc/big-scheme.txt'. While this may not be evident here, the `receive' macro is often easier to use than `call-with-values'. 4.14 How do I interface scsh with a C function? =============================================== Use the Scheme 48 facility to interface with C, documented in the Scheme 48 manual. 4.15 What is the syntax of regular expressions? =============================================== Scsh 0.5.2 introduced support for SREs, or Structural Regular Expressions. These provide an s-expression notation for building up and operating on regular expressions. See the SRE section of the manual for further details. Standard string-based regexps are also available (and in fact SREs compile to string-based regexps). Henry Spencer's POSIX regular expression engine is used to implement the matching. The syntax accepted by this engine is described in its man page, which can be found in the scsh distribution, in file `scsh/regexp/regex.7'. 4.16 How should I handle errors? ================================ Scsh raises exceptions instead of passing error status codes via the `errno' variable (this makes error handling much simpler). You can use the `with-errno-handler' form to handle these errors gracefully. Certain error conditions are signalled by calls to the `error' primitive. If you wish to intercept these conditions gracefully you can write your own handler. The following example shows how to intercept the host-not-found condition on DNS lookup. #!/usr/local/bin/scsh \ -dm -m whnf -e main -s !# (define-structure whnf (export main) (open scheme scsh handle) (begin (define (with-host-not-found* thunk) (call-with-current-continuation (lambda (k) (with-handler (lambda (condition next) (cond ((string-match "^name->host-info" (cadr condition)) (display "No such host") (newline) (k '())) (else (next)))) thunk)))) (define-syntax with-host-not-found (syntax-rules () ((with-host-not-found ?body ...) (with-host-not-found* (lambda () ?body ...))))) (define (main args) (with-host-not-found (host-info "foo.bar.com"))))) From scsh-users-request@scsh.net Tue Apr 18 15:49:28 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 59E18122B; Tue, 18 Apr 2006 15:49:26 +0200 (MST) Received: from mx4.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx4 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 39588-01; Tue, 18 Apr 2006 15:49:21 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 03C261347; Tue, 18 Apr 2006 15:49:15 +0200 (MST) Received: by www.scsh.net (Postfix, from userid 3123) id A988A5ED1; Tue, 18 Apr 2006 15:49:13 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net To: "Matthew D. Swank" Cc: scsh-users@scsh.net Subject: Re: Thoughts on Commander S References: <83253C21-3F3C-4818-A53C-C945DF15CA72@charter.net> From: Martin Gasbichler Date: Tue, 18 Apr 2006 15:49:06 +0200 In-Reply-To: <83253C21-3F3C-4818-A53C-C945DF15CA72@charter.net> (Matthew D. Swank's message of "Fri, 14 Apr 2006 08:46:02 -0500") Message-ID: User-Agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.5-b24 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/307 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Tue, 18 Apr 2006 15:49:13 +0200 (MST) "Matthew D. Swank" writes: > As I was reading the paper for the Scheme Workshop (very nice btw), I > was reminded a lot of Acme, the Plan 9 editor/user interface/swiss > army knife. Are the authors familiar with that environment , and > did it influence your design at all? No, we've never heart about it, but I've just found the USENIX paper "Acme: A User Interface for Programmers" and I'm going to read it soon. -- Martin From scsh-users-request@scsh.net Mon Apr 24 20:32:26 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 61B57129; Mon, 24 Apr 2006 20:32:24 +0200 (DFT) Received: from mx1.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx1 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 36452-03; Mon, 24 Apr 2006 20:32:22 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id D59BC126; Mon, 24 Apr 2006 20:32:20 +0200 (DFT) Received: by www.scsh.net (Postfix, from userid 3123) id C56C35ED1; Mon, 24 Apr 2006 20:32:19 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net X-Injected-Via-Gmane: http://gmane.org/ To: scsh-users@scsh.net From: Emilio Lopes Subject: Threads trouble Date: Mon, 24 Apr 2006 20:33:46 +0200 Organization: The Church of Emacs Lines: 49 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=latin-iso8859-1 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: ra42a.r.pppool.de User-Agent: Emacs Gnus Cancel-Lock: sha1:f5zMR2vjbRK4w4UN+/N9J4s/HYs= Sender: news Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/308 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Mon, 24 Apr 2006 20:32:19 +0200 (MST) Hello, consider this program: ;; ,open threads (define-syntax run/strings-status (syntax-rules () ((_ epf ...) (call-with-values (lambda () (run/port+proc epf ...)) (lambda (port proc) (let* ((string-list (port->string-list port)) (status (wait proc))) (close-input-port port) (values string-list status))))))) (define my-ls (lambda () (receive (out rc) (run/strings-status (ls)) out))) Now try: > (my-ls) '("COPYING" "INSTALL" "Makefile" ...) > (spawn (lambda () (run (ls)))) > COPYING Makefile.in build config.guess config.sub doc go scheme scsh-config.in INSTALL README c config.log configure emacs install-sh scsh scsh.image Makefile RELEASE cig config.status configure.in gdbinit ps-compiler scsh-config scshvm So far, so good. But now try this: > (spawn my-ls) > As you see, there is no output from `ls', as I expected. This happens with 0.6.6 as well as with 0.6.7-rc1. Is this a bug or am I overseeing something obvious? Thanks for your time. -- Emílio C. Lopes Munich, Germany From scsh-users-request@scsh.net Mon Apr 24 21:03:28 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id D1141131F; Mon, 24 Apr 2006 21:03:26 +0200 (DFT) Received: from mx4.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx4 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 23230-01; Mon, 24 Apr 2006 21:03:23 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx4.informatik.uni-tuebingen.de (Postfix) with ESMTP id 4A1E212ED; Mon, 24 Apr 2006 21:03:21 +0200 (DFT) Received: by www.scsh.net (Postfix, from userid 3123) id 9664E5ECD; Mon, 24 Apr 2006 21:03:19 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net X-EJK: wsi To: Emilio Lopes Cc: scsh-users@scsh.net Subject: Re: Threads trouble In-Reply-To: (Emilio Lopes's message of "Mon, 24 Apr 2006 20:33:46 +0200") References: From: Eric Knauel Date: Mon, 24 Apr 2006 21:02:35 +0200 Message-ID: User-Agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.5-b25 (darwin) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/309 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Mon, 24 Apr 2006 21:03:19 +0200 (MST) On Mon 24 Apr 2006 20:33, Emilio Lopes writes: > consider this program: > > ;; ,open threads > > (define-syntax run/strings-status > (syntax-rules () > ((_ epf ...) > (call-with-values > (lambda () > (run/port+proc epf ...)) > (lambda (port proc) > (let* ((string-list (port->string-list port)) > (status (wait proc))) > (close-input-port port) > (values string-list status))))))) > > (define my-ls > (lambda () > (receive (out rc) > (run/strings-status (ls)) > out))) > > [...] > > So far, so good. But now try this: > > > (spawn my-ls) > > > > As you see, there is no output from `ls', as I expected. This happens > with 0.6.6 as well as with 0.6.7-rc1. > > Is this a bug or am I overseeing something obvious? SPAWN returns immediately with an undefined return value. Thus, you have to pass the result of a computation using a side effect or whatever. In this case futures seem appropriate: (define-record-type future :future (really-make-future lock var) future? (lock future-lock) (var future-var set-future-var!)) (define (make-fresh-future) (let ((lock (make-lock))) (obtain-lock lock) (really-make-future lock #f))) (define (make-future thunk) (let ((f (make-fresh-future))) (spawn (lambda () (set-future-var! f (thunk)) (release-lock (future-lock f)))) f)) (define (future-value future) (obtain-lock (future-lock future)) (future-var future)) > (make-future my-ls) '#{Future} > (future-value ##) '("_darcs" "darcs_testing_for_nfs" "intro.ss" "intro.ss~" "rails.pdf" "rails.ps" "rails.ss" "rails.ss~") In general you might want to consider CML synchronous channels. -Eric -- "Excuse me --- Di Du Du Duuuuh Di Dii --- Huh Weeeheeee" (Albert King) From scsh-users-request@scsh.net Mon Apr 24 21:36:15 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 0F3F6198; Mon, 24 Apr 2006 21:36:13 +0200 (DFT) Received: from mx1.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx1 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 33580-03; Mon, 24 Apr 2006 21:36:09 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 27517153; Mon, 24 Apr 2006 21:36:03 +0200 (DFT) Received: by www.scsh.net (Postfix, from userid 3123) id CAD7C5ED1; Mon, 24 Apr 2006 21:36:02 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v623) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit Cc: scsh-users@scsh.net From: RT Happe Subject: Re: Threads trouble Date: Mon, 24 Apr 2006 21:34:41 +0200 To: Emilio Lopes X-Mailer: Apple Mail (2.623) Sender: rthappe@web.de X-Sender: rthappe@web.de Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/310 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Mon, 24 Apr 2006 21:36:02 +0200 (MST) Emilio Lopes wrote: > So far, so good. But now try this: > >> (spawn my-ls) And then try (spawn (lambda () (display (my-ls)) (newline))) rt From scsh-users-request@scsh.net Tue Apr 25 19:34:08 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 83109122; Tue, 25 Apr 2006 19:34:06 +0200 (DFT) Received: from mx1.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx1 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 21386-05; Tue, 25 Apr 2006 19:34:01 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 70A3F102; Tue, 25 Apr 2006 19:33:59 +0200 (DFT) Received: by www.scsh.net (Postfix, from userid 3123) id 2A58D5ED1; Tue, 25 Apr 2006 19:33:58 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net X-Injected-Via-Gmane: http://gmane.org/ To: scsh-users@scsh.net From: Emilio Lopes Subject: run/collecting, not threads Date: Tue, 25 Apr 2006 19:35:56 +0200 Organization: The Church of Emacs Lines: 82 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=latin-iso8859-1 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: rd064.r.pppool.de User-Agent: Emacs Gnus Cancel-Lock: sha1:MriuDUDyY+Wx1ydPAf+x5MsRAIE= Sender: news Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/311 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Tue, 25 Apr 2006 19:33:58 +0200 (MST) After I defeated my last "bug report" with my own stupidity, here is my second try. I hope I got it right this time. Welcome to scsh 0.6.6 (King Conan) Type ,? for help. > (define my-ls/simple (lambda () (display (run/string (ls))) (newline))) > (define my-ls/complex (lambda () (receive (rc out err) (run/collecting (1 2) (ls)) (display (port->string out)) (newline)))) > (my-ls/simple) big cig doc env libscsh.a libscshvm.a link misc opt rts scsh scsh.image scshvm.exe srfi stripped-scsh.image > (my-ls/complex) big cig doc env libscsh.a libscshvm.a link misc opt rts scsh scsh.image scshvm.exe srfi stripped-scsh.image > ,open threads > (spawn my-ls/simple) > big cig doc env libscsh.a libscshvm.a link misc opt rts scsh scsh.image scshvm.exe srfi stripped-scsh.image > (spawn my-ls/complex) > > ;; no output!!! If you substitute `ls' by something appropriate, like `touch /tmp/foobar', you'll see that the command does not get executed at all. Thanks for any insight. -- Emílio C. Lopes Munich, Germany From scsh-users-request@scsh.net Wed Apr 26 11:47:01 2006 Return-Path: X-Original-To: scsh@informatik.uni-tuebingen.de Delivered-To: scsh@informatik.uni-tuebingen.de Received: from localhost (loopback [127.0.0.1]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 502CC193; Wed, 26 Apr 2006 11:46:59 +0200 (DFT) Received: from mx1.informatik.uni-tuebingen.de ([127.0.0.1]) by localhost (mx1 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 24652-03; Wed, 26 Apr 2006 11:46:56 +0200 (DFT) Received: from www.scsh.net (bernard.Informatik.Uni-Tuebingen.De [134.2.12.122]) by mx1.informatik.uni-tuebingen.de (Postfix) with ESMTP id 6B997127; Wed, 26 Apr 2006 11:46:55 +0200 (DFT) Received: by www.scsh.net (Postfix, from userid 3123) id 3513B5ECD; Wed, 26 Apr 2006 11:46:54 +0200 (MST) Old-Return-Path: X-Original-To: scsh-users@scsh.net Delivered-To: scsh-users@scsh.net To: Emilio Lopes Cc: scsh-users@scsh.net Subject: Re: run/collecting, not threads References: From: Martin Gasbichler Date: Wed, 26 Apr 2006 11:46:45 +0200 In-Reply-To: (Emilio Lopes's message of "Tue, 25 Apr 2006 19:35:56 +0200") Message-ID: User-Agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.5-b24 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Resent-Message-ID: Resent-From: scsh-users@scsh.net X-Mailing-List: archive/latest/312 X-Loop: scsh-users@scsh.net List-Post: List-Help: List-Subscribe: List-Unsubscribe: Precedence: list Resent-Sender: scsh-users-request@scsh.net List-Id: List-Archive: Resent-Date: Wed, 26 Apr 2006 11:46:54 +0200 (MST) Emilio Lopes writes: [snip] > If you substitute `ls' by something appropriate, like `touch=A0/tmp/fooba= r', > you'll see that the command does not get executed at all. > > Thanks for any insight. The reason is a bug in scsh that causes the REPL to hold the locks of the command ports even though the REPL thread is not running any more. The following patch fixes this: Index: scsh.scm =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/scsh/scsh/scsh/Attic/scsh.scm,v retrieving revision 1.46.2.4 diff -u -r1.46.2.4 scsh.scm --- scsh.scm 24 Mar 2004 08:14:55 -0000 1.46.2.4 +++ scsh.scm 26 Apr 2006 09:36:53 -0000 @@ -1135,6 +1135,14 @@ (if (zero? pid)=09=09=09=09 ;; Child (lambda () ; Do all this outside the WITH-INTERRUPTS. + (if narrow? + (begin + ;; ugly kludge: + ;; the REPL thread is not running any more, + ;; hence release its ports + (release-port-lock (command-input)) + (release-port-lock (command-output)) + (release-port-lock (command-error-output)))) ;; There is no session if parent was started in batch-mode (if (and (session-started?) clear-interactive?) (set-batch-mode?! #t)) ; Children are non-interactive. Thanks for the report! --=20 Martin