7-Jan-83 16:55:21-EST,557;000000000000 Mail-From: JOSHM created at 7-Jan-83 16:54:18 Date: 7 Jan 1983 1654-EST From: JOSHM at MIT-OZ Subject: Directory defaulting To: bug-scheme at MIT-OZ When you start up scheme in a directory you didn't log in on, it still defaults to your logged in directory when looking for files. This is just an inconvenience, except when using emacs, when it makes it impossible to pass procedures from emacs to scheme using m-o, m-z, c-x z, c-m-y, etc, because emacs still writes the files into your connected directory. What gives? -Josh ------- 7-Jan-83 20:13:13-EST,972;000000000000 Mail-From: HANSON created at 7-Jan-83 20:10:34 Date: Friday, 7 January 1983 20:10-EST Sender: HANSON @ MIT-OZ From: HANSON @ MIT-MC To: JOSHM @ MIT-OZ Cc: bug-scheme @ MIT-OZ Subject: Directory defaulting In-reply-to: The message of 7 Jan 1983 16:54-EST from JOSHM Date: Friday, 7 January 1983 16:54-EST From: JOSHM To: bug-scheme Re: Directory defaulting When you start up scheme in a directory you didn't log in on, it still defaults to your logged in directory when looking for files. This is just an inconvenience, except when using emacs, when it makes it impossible to pass procedures from emacs to scheme using m-o, m-z, c-x z, c-m-y, etc, because emacs still writes the files into your connected directory. What gives? -Josh Emacs uses the directory that it is started up in. To change Scheme's default, use: ==> (lisp-eval '(setq defaultf (mergef defaultf))) 9-Jan-83 03:47:17-EST,284;000000000000 Mail-From: HANSON created at 9-Jan-83 03:42:37 Date: Sunday, 9 January 1983 03:42-EST Sender: HANSON @ MIT-OZ From: HANSON @ MIT-MC To: bug-scheme @ MIT-OZ The form (ACCESS FOO BAR BAZ) doesn't unsyntax at all. It prints out as a nested pair of RELATIVE-LEXICAL calls. 12-Jan-83 21:12:51-EST,854;000000000000 Mail-From: HANSON created at 12-Jan-83 21:09:06 Date: Wednesday, 12 January 1983 21:09-EST Sender: HANSON @ MIT-OZ From: HANSON @ MIT-MC To: GJS @ MIT-OZ, HAL @ MIT-OZ Cc: BUG-SCHEME @ MIT-OZ Subject: Debugger Changes I have introduced some moderately hairy changes to DEBUG.SCM. The code for WHERE and DEBUG has fairly serious problems because there is alot of global state being used. The problems arise when calling the programs recursively inside a read-eval-print loop. The nature of the changes is to give each copy of the two programs private copies of the variables by fluid-binding all the interesting state. I haven't yet tested it but will as soon as I have time. In the long run this stuff needs to be rethought a little. The modelling technique using large numbers of global variables seems to be a poor one. 19-Jan-83 00:10:49-EST,518;000000000000 Mail-From: HANSON created at 19-Jan-83 00:10:40 Date: Wednesday, 19 January 1983 00:10-EST Sender: HANSON @ MIT-OZ From: HANSON @ MIT-MC To: Bug-Scheme @ MIT-OZ Subject: Open Files and (DEBUG) If you get an error inside a WITH-OPEN-FILE, and call DEBUG to find out what happened, leaving the debugger causes the file to be closed and then re-opened. If the file was an output file, Maclisp produces its "file exists, new file required" error. Which, by the way, is another bug which we can't fix. 19-Jan-83 00:15:33-EST,335;000000000000 Mail-From: HANSON created at 19-Jan-83 00:11:44 Date: Wednesday, 19 January 1983 00:11-EST Sender: HANSON @ MIT-OZ From: HANSON @ MIT-MC To: Bug-SCHEME @ MIT-OZ Subject: Losing Unsyntax ACCESS forms don't unsyntax correctly. They are left as references to RELATIVE-LEXICAL-ACCESS, with the access variable name quoted. 19-Jan-83 00:15:38-EST,664;000000000000 Mail-From: HANSON created at 19-Jan-83 00:14:27 Date: Wednesday, 19 January 1983 00:14-EST Sender: HANSON @ MIT-OZ From: HANSON @ MIT-MC To: Bug-SCHEME @ MIT-OZ Subject: More losing features The following two lines are necessary for me to type in whenever I start up a Scheme: (lisp-eval '(setq defaultf (mergef "src:" defaultf))) (lisp-eval '(setq monitor-expunge-string "")) It seems to me that I should never have to type either one in. The first is a Maclisp bug, which could be easily fixed by one of the (nonexistent) Maclisp hackers. The second we can fix; there is no reason why Scheme should expunge files anywhere except EE. 19-Jan-83 08:49:50-EST,881;000000000000 Mail-From: AAB created at 19-Jan-83 08:49:40 Date: 19 Jan 1983 0849-EST From: Andrew A. Berlin Subject: Definition of WHERE has problems To: BUG-SCHEME at MIT-OZ cc: aab at MIT-OZ The definition of where has problems. One of these is documented by the following PHOTO file. The other is that from looking at the code, it would appear that if the type is control-point but the continuation-environment is not an environment, the continuation-environment is returned instead of "Not a legal environment object" ==> (where system-global-environment) "Not a legal environment object -- WHERE" ==> (goto-environment system-global-environment) ==> (where) Where--> c This frame is the global environment Where--> p The current frame is the global environment, it has no parent Where--> q ==> (tofu) ------- 21-Jan-83 17:39:06-EST,392;000000000000 Mail-From: JOSHM created at 21-Jan-83 17:37:26 Date: 21 Jan 1983 1737-EST From: JOSHM at MIT-OZ Subject: How do I... To: info-lisp at MIT-OZ cc: bug-lisp at MIT-OZ, bug-scheme at MIT-OZ, info-scheme at MIT-OZ How do turn off input echoing from inside maclisp or scheme? I'm writing a display oriented program and the typed input keeps destroying the display. -Josh ------- 21-Jan-83 21:49:00-EST,460;000000000000 Received: ID ; 21 Jan 83 21:43:21 EST Date: 21 Jan 83 21:43:19 EST From: Feinberg@CMU-CS-C To: JOSHM%MIT-OZ@MIT-MC Cc: bug-lisp%MIT-OZ@MIT-MC, bug-scheme%MIT-OZ@MIT-MC Subject: How do I... In-reply-to: The message of 21 Jan 1983 17:37-EST from JOSHM at MIT-OZ at MIT-MC Hi. Load TTY.FASL, and use DO-WITH-TTY-OFF, like so: (DO-WITH-TTY-OFF ... ) ;Like a PROGN with echo --Chiron 22-Jan-83 11:15:16-EST,429;000000000000 Mail-From: AAB created at 22-Jan-83 11:12:33 Date: 22 Jan 1983 1112-EST From: Andrew A. Berlin Subject: SCHEME DEBUGGER To: scheme-coders at MIT-OZ cc: bug-scheme at MIT-OZ I am working on making the scheme debugger screen oriented. If anyone changes the file src:debug.scm, please send me mail letting me know so that I can make these changes in my version. ---Andy ------- 24-Jan-83 14:15:33-EST,272;000000000000 Date: 24 Jan 1983 1405-EST From: JOSHM at MIT-OZ Subject: Re: How do I... To: Feinberg at CMU-CS-C cc: JOSHM%MIT-OZ at MIT-MC, bug-lisp%MIT-OZ at MIT-MC, bug-scheme%MIT-OZ at MIT-MC In-Reply-To: Your message of 21-Jan-83 2143-EST Thanks. -Josh ------- 24-Jan-83 16:52:26-EST,640;000000000000 Mail-From: JOSHM created at 24-Jan-83 16:52:03 Date: 24 Jan 1983 1652-EST From: JOSHM at MIT-OZ Subject: do-with-tty-off To: bug-lisp at MIT-OZ, bug-scheme at MIT-OZ Doesn't quite work the way I expected: [PHOTO: Recording initiated Mon 24-Jan-83 4:48PM] TOPS-20 Command Processor 5(737)-2 @lisp  MacLisp version 2129 radix = 10 * (load "lisp:tty.fasl") ;Loading TTY 17 45673 (do-with-tty-off (readch) (readch)) ;GENTEMP UNDEFINED FUNCTION IN UUO CALL ;BKPT UNDF-FNCTN (quit) @pop [PHOTO: Recording terminated Mon 24-Jan-83 4:49PM] How am I supposed to use it? -Josh ------- 25-Jan-83 00:37:46-EST,312;000000000000 Date: 24 January 1983 17:49 EST From: George J. Carrette Subject: do-with-tty-off To: JOSHM @ MIT-OZ cc: bug-lisp @ MIT-OZ, bug-scheme @ MIT-OZ In-reply-to: The message of 24 Jan 1983 1652-EST from JOSHM at MIT-OZ I put the newest TTY.FASL on OZ now, GENTEMP problem has been diked out. 26-Jan-83 21:27:22-EST,242;000000000000 Mail-From: AAB created at 26-Jan-83 17:23:45 Date: 26 Jan 1983 1723-EST From: Andrew A. Berlin Subject: SDEBUG.SCM To: bug-scheme at MIT-OZ Who got rid of SDEBUG.SCM and where did they move it to? --Andy ------- 29-Jan-83 19:12:04-EST,2400;000000000000 Mail-From: AAB created at 29-Jan-83 19:10:58 Date: 29 Jan 1983 1910-EST From: Andrew A. Berlin Subject: Bug in scheme debugger To: jmiller at MIT-OZ cc: bug-scheme at MIT-OZ It seems that the history recording mechanism loses track of where in the history structure you are if you execute a recursive function which goes through exactly 10 iterations before hitting an error. The following is a photo file documenting the breakdown of (Fac 10). The problem is in the applied to field. This history would have me believe that fac was applied to 0,1,0,1,2,3,4,5,... This doesn't seem reasonable. Note that history is recorded correctly for (fac 5). ----- ==> (define (fac x) (if (= x 0) f (* x (fac (- x 1))))) FAC ==> (fac 10) Error! Unbound variable referenced F Level: 2 Error-> (debug) Subproblem level: 1 Reduction number: 0 Expression F Within procedure [PROCEDURE FAC] applied to (0) Debugger-command-character--> b Subproblem level: 1 Reduction number: 1 Expression (IF (= X 0) F (* X (FAC (- X 1)))) Within procedure [PROCEDURE FAC] applied to (0) Debugger-command-character--> b Subproblem level: 1 Reduction number: 2 Expression (FAC (- X 1)) Within procedure [PROCEDURE FAC] applied to (1) Debugger-command-character--> b Subproblem level: 2 Reduction number: 0 Expression F Within procedure [PROCEDURE FAC] applied to (0) Debugger-command-character--> b Subproblem level: 2 Reduction number: 1 Expression (IF (= X 0) F (* X (FAC (- X 1)))) Within procedure [PROCEDURE FAC] applied to (0) Debugger-command-character--> b Subproblem level: 2 Reduction number: 2 Expression (FAC (- X 1)) Within procedure [PROCEDURE FAC] applied to (1) Debugger-command-character--> b Subproblem level: 3 Reduction number: 0 Expression (* X (FAC (- X 1))) Within procedure [PROCEDURE FAC] applied to (2) Debugger-command-character--> b Subproblem level: 3 Reduction number: 1 Expression (IF (= X 0) F (* X (FAC (- X 1)))) Within procedure [PROCEDURE FAC] applied to (2) Debugger-command-character--> b Subproblem level: 3 Reduction number: 2 Expression (FAC (- X 1)) Within procedure [PROCEDURE FAC] applied to (3) Debugger-command-character--> q Quit! Level: 1 ==> (tofu) ------- 30-Jan-83 00:28:21-EST,421;000000000000 Mail-From: HANSON created at 30-Jan-83 00:26:47 Date: Sunday, 30 January 1983 00:26-EST Sender: HANSON @ MIT-OZ From: HANSON @ MIT-MC To: GJS @ MIT-OZ, Hal @ MIT-OZ, Lamping @ MIT-OZ Cc: Bug-SCHEME @ MIT-OZ Subject: Unassigned Variables and FLUID-LET The two don't mix right. If a variable is unassigned, it should still be possible to fluid bind it; after it is unbound it should again be unassigned. 31-Jan-83 20:48:47-EST,420;000000000000 Mail-From: JOSHM created at 31-Jan-83 20:44:08 Date: 31 Jan 1983 2044-EST From: JOSHM at MIT-OZ Subject: Circular lists To: bug-lisp at MIT-OZ cc: scheme-coders at MIT-OZ, bug-scheme at MIT-OZ Is there a system procedure defined that will determine if a list is circular, or does anyone know of anything already written, or at last resort, a good algorithm with which I can implement one? -Josh ------- 31-Jan-83 21:14:16-EST,555;000000000000 Date: 31 January 1983 21:14 EST From: David C. Plummer Subject: Circular lists To: JOSHM @ MIT-OZ cc: bug-lisp @ MIT-OZ, scheme-coders @ MIT-OZ, bug-scheme @ MIT-OZ Just as a screw case, consider (MACLisp) (defun screw-case () (let ((the-list (cons nil nil))) ;get a list (rplacd the-list the-list) ;make it circular (dotimes (i almost-an-address-space-of-consing) (push nil the-list)) ;prepend a lot of conses the-list)) BTW, what's the prefered way to create a circular list in scheme anyway? 31-Jan-83 21:20:56-EST,1193;000000000000 Mail-From: EE.GDS created at 31-Jan-83 21:19:25 Date: 29 Jan 1983 2200-EST From: The Mailer Daemon To: EE.GDS at MIT-OZ Subject: Message of 29-Jan-83 21:28:00 Remailed-date: 31 Jan 1983 2119-EST Remailed-from: Greg Skinner Remailed-to: bug-scheme at MIT-OZ Message failed for the following: MTH at MIT-OZ: No such mailbox JLS at MIT-OZ: No such mailbox BAKER at MIT-OZ: No such mailbox MACRAK at MIT-OZ: No such mailbox BRIAN at MIT-OZ: No such mailbox MILLER at MIT-OZ: No such mailbox Gyro at MIT-OZ: No such mailbox eakx at MIT-OZ: No such mailbox gonyea at MIT-OZ: No such mailbox miyata at MIT-OZ: No such mailbox ------------ Date: 29 Jan 1983 2128-EST From: Greg Skinner Subject: Opening/closing files To: info-scheme at MIT-OZ How would I open, write into, read from, and close files interactively using Scheme? I am working on a database which takes input from a TOPS-20 file and terminal commands which either modifies, creates, or flushes the TOPS-20 file. The file is the database itself (the rep is an association-list for now, pardon my CLU). --gregbo ------- ------- 1-Feb-83 11:25:59-EST,3996;000000000000 Date: Tuesday, 1 February 1983, 11:26-EST From: Kent M. Pitman Subject: Circular lists (long but hopefully interesting message) To: JOSHM at OZ, DCP at OZ Cc: SCHEME-CODERS at OZ, BUG-SCHEME at OZ, BUG-LISP at OZ, JAR at MC Date: 31 Jan 1983 2044-EST From: JOSHM at MIT-OZ Subject: Circular lists To: bug-lisp at MIT-OZ cc: scheme-coders at MIT-OZ, bug-scheme at MIT-OZ Is there a system procedure defined that will determine if a list is circular, or does anyone know of anything already written, or at last resort, a good algorithm with which I can implement one? -Josh Date: 31 January 1983 21:14 EST From: David C. Plummer Just as a screw case, consider (MACLisp) (defun screw-case () (let ((the-list (cons nil nil))) ;get a list (rplacd the-list the-list) ;make it circular (dotimes (i almost-an-address-space-of-consing) (push nil the-list)) ;prepend a lot of conses the-list)) BTW, what's the prefered way to create a circular list in scheme anyway? ----- Rivest's algorithms course (MIT 6.045) discussed a good algorithm for doing this. I am forever forgetting who actually designed this algorithm, but it was one of the more well-known algorithms people. The idea is that you release two runners on a list, running at different rates. If the fast one (who should be ahead of the slow one from the start) ever finds the slow one ahead of him, then there was a circularity... These are the definitions we originally installed in T (Yale Scheme). Jonathan removed them, against my recommendations because he didn't think anyone cared about having them. I still think they should be re-instated because they are healthy to have as built-ins. People aren't notably good at writing them. ; Start two runners. If the slow one catches the fastest, then the list was ; circular. (DEFINE (CIRCULAR? MOVE X) (IF (NULL-LIST? X) NIL (ITERATE RACE ((SLOW-RUNNER X) (FAST-RUNNER (MOVE X))) (COND ((OR (NULL-LIST? FAST-RUNNER) (NULL-LIST? (MOVE FAST-RUNNER))) NIL) ((EQ? SLOW-RUNNER FAST-RUNNER) T) ;Fast runner caught up! (T (RACE (MOVE SLOW-RUNNER) (MOVE (MOVE FAST-RUNNER)))))))) Eg, (CIRCULAR? CDR X) looked for cdr circularities. (CIRCULAR? CAR X) looks for car circularities. Note this is a constant space, linear time (with the length of the list) algorithm; worst case for a length M long with a circular tail N long nconc'd on is M+2N, I think. Here's an example of `coroutining' it with LENGTH... (DEFINE (LENGTH X) (COND ((NULL-LIST? X) 0.) (T (ITERATE RACE ((SLOW-RUNNER X) (FAST-RUNNER (CDR X)) (COUNT 1)) (COND ((NULL-LIST? FAST-RUNNER) COUNT) ((NULL-LIST? (CDR FAST-RUNNER)) (1+ COUNT)) ((EQ? SLOW-RUNNER FAST-RUNNER) (ERROR "Argument to LENGTH is circular: (~S ...)" (CAR X))) (T (RACE (CDR SLOW-RUNNER) (CDDR FAST-RUNNER) (+ COUNT 2.)))))))) In Maclisp, it'd be roughly, ... ; Start two runners. If the slow one catches the fastest, then the list was ; circular. (DEFUN CIRCULAR? (MOVE X) (IF (NULL X) NIL (DO ((SLOW-RUNNER X (FUNCALL MOVE SLOW-RUNNER)) (FAST-RUNNER (FUNCALL MOVE X) (FUNCALL MOVE (FUNCALL MOVE FAST-RUNNER)))) ((OR (NULL FAST-RUNNER) (NULL (FUNCALL MOVE FAST-RUNNER))) NIL) ; Fast runner fell off end (IF (EQ SLOW-RUNNER FAST-RUNNER) (RETURN T))))) ; Fast runner looped and caught up! Though due to the slowness of FUNCALL, the following special purpose definition might be much faster... (DEFUN CIRCULAR-CDR? (X) (IF (NULL X) NIL (DO ((SLOW-RUNNER X (CDR SLOW-RUNNER)) (FAST-RUNNER (CDR X) (CDDR FAST-RUNNER))) ((OR (NULL FAST-RUNNER) (NULL (CDR FAST-RUNNER))) NIL) ; Fast runner fell off end (IF (EQ SLOW-RUNNER FAST-RUNNER) (RETURN T))))) ; Fast runner looped and caught up! 1-Feb-83 21:04:08-EST,673;000000000000 Date: 1 Feb 1983 2057-EST From: Joshua D. Marantz Subject: package load To: bug-scheme at MIT-EECS My program doesn't work on ee, while it works on oz. It uses make-package, and some other assorted functions that a 6.001 student probably wouldn't use, so this is not an urgent problem, but it would be nice if there were an up to date scheme here. The problem is illustrated by loading the file [ee]ps:functions.scm or [oz]ps:functions.scm (they are the same, of course), which generates an UNBOUND VARIABLE -- KILL-POINTER on ee and loads correctly on oz (and does the right thing). -Josh ------- 1-Feb-83 22:26:59-EST,1043;000000000000 Date: Tuesday, 1 February 1983 22:18-EST Sender: HANSON @ MIT-OZ From: HANSON @ MIT-MC To: Joshua D. Marantz Cc: bug-scheme @ MIT-EECS Subject: package load In-reply-to: The message of 1 Feb 1983 20:57-EST from Joshua D. Marantz Date: Tuesday, 1 February 1983 20:57-EST From: Joshua D. Marantz To: bug-scheme at MIT-EECS Re: package load My program doesn't work on ee, while it works on oz. It uses make-package, and some other assorted functions that a 6.001 student probably wouldn't use, so this is not an urgent problem, but it would be nice if there were an up to date scheme here. The problem is illustrated by loading the file [ee]ps:functions.scm or [oz]ps:functions.scm (they are the same, of course), which generates an UNBOUND VARIABLE -- KILL-POINTER on ee and loads correctly on oz (and does the right thing). -Josh Will happen. GJS is doing it now. 16-Feb-83 23:14:33-EST,887;000000000000 Mail-From: AAB created at 16-Feb-83 23:12:20 Date: 16 Feb 1983 2312-EST From: Andrew A. Berlin Subject: Advice system To: bug-scheme at MIT-OZ The current SCHEME implementation lacks a way to remove a particular piece of advice from a procedure. UNADVISE removes all advice. If I want to remove a particular piece of advice from proc, I can do it by doing an (ADVICE proc) to find out what advice the procedure has, deleting the item I want removed from this list, and using ADVISE to give all the other advice back to the procedure. Shouldn't there be a function to do this implemented in SCHEME itself? UNTRACE uses something like this imported from MACLISP but it is messy and there is no maclisp on the 68000. While I'm on the topic, why isn't there a (UNBREAK proc), a (UNBREAK-ENTRY proc), and a (UNBREAK-EXIT proc). ---Andy ------- 21-Feb-83 23:30:04-EST,377;000000000000 Date: 21 Feb 1983 2326-EST From: Mark A. Hamilton Subject: Apply bug To: bug-scheme at MIT-EECS If apply is given a dotted pair as the second argument, it causes a trampoline error. An example of such can be found in scheme.bug. I havn't tried other types of non-list arguments, they may or may not work. Mark Hamilton ------- 22-Feb-83 12:53:20-EST,347;000000000000 Date: 22 Feb 1983 1240-EST From: Clifford Neuman Subject: Broken Scheme To: bug-scheme at MIT-EECS Another repeatable Error form TRAMPOLINE..... The following files came from who was having problems.... In scheme load array.scm pro1.scm and watch what happens. Cliff ------- 25-Feb-83 00:09:17-EST,835;000000000000 Date: Friday, 25 February 1983 00:07-EST From: GJS @ MIT-EECS To: Clifford Neuman , ec.chun @ MIT-EECS Cc: bug-scheme @ MIT-EECS Subject: Broken Scheme In-reply-to: The message of 22 Feb 1983 12:40-EST from Clifford Neuman The problem that you were having is that in your definition of TRAN (define (tran a) (apply mapcar (cons list (car a)))) you took (CAR A) where A is a matrix, getting the type code MAT passed as the list of argument lists to mapcar down. This was not a symbol, not a list. Thus your bug. My bug is that I didn't catch the error before it killed the SCHEME. In the next release explicit APPLY will check that its argument is a correct list and produce a reasonable SCHEME error to present you with. Thank you for your help in documenting my bug. Good luck. 27-Feb-83 21:59:21-EST,482;000000000000 Return-path: Date: 27 Feb 1983 1746-EST From: Mark A. Hamilton Subject: Debug failure To: bug-scheme at MIT-EECS This bug was reported to me by an EC type student: 1) Load array.scm 2) Load ps2.scm 3) Run (natresp G1 C1 V1 1 6) 4) An error occurs... 5) Run debug (it might work) 6) ^g 7) run natresp again (same args) 8) Run debug (this time the history is gone?) Mark Hamilton ------- 7-Mar-83 08:23:13-EST,759;000000000000 Return-path: Date: 7 Mar 1983 0707-EST From: Timothy J. Shepard Subject: Bug in conc! To: bug-scheme at MIT-EECS cc: LS.SHEP at MIT-EECS Shouldn't (conc! l1 l2) work when l1 is nil? It doesn't seem to.... ==> (define l1 '()) L1 ==> (define l2 '(4 5 6)) L2 ==> l1 NIL ==> l2 (4 5 6) ==> (conc! l1 l2) (4 5 6) ==> l1 NIL ==> l2 (4 5 6) ==> (define l1 '(1 2 3)) L1 ==> l1 (1 2 3) ==> (conc! l1 l2) (1 2 3 4 5 6) ==> l1 (1 2 3 4 5 6) ==> l2 (4 5 6) ==> (tofu) It seems to work fine as long as l1 is not nil. I would appreciate a reply on this. Thanks much... Tim Shepard ls.shep ------- 7-Mar-83 12:52:41-EST,427;000000000000 Return-path: Date: Monday, 7 March 1983 10:59-EST Sender: GJS @ MIT-OZ From: GJS @ MIT-MC To: Timothy J. Shepard Cc: bug-scheme @ MIT-EECS Subject: Bug in conc! In-reply-to: Msg of 7 Mar 1983 07:07-EST from Timothy J. Shepard That is not a bug. Please call me at x3-5874 so I can explain on phone, or come by my office and I'll show you on blackboard. 7-Mar-83 22:48:58-EST,358;000000000000 Return-path: Date: 7 Mar 1983 2245-EST From: Mark A. Hamilton Subject: Sharp-sign To: bug-scheme at MIT-EECS Typing a sharp-sign at scheme causes a read-macro failure. It leaves scheme in a strange state, which is sometimes recovered by typing ^G, sometimes dumped to Maclisp. Mark Hamilton ------- 16-Mar-83 15:50:20-EST,1265;000000000000 Return-path: Mail-From: AAB created at 16-Mar-83 15:45:35 Date: 16 Mar 1983 1545-EST From: Andrew A. Berlin Subject: Slight problem with debugger To: jinx@MIT-OZ cc: bug-scheme@MIT-OZ If you go into debug when you first enter scheme, you get an error: What ever happened to the "there is no saved history" message? ---Andy [PHOTO: Recording initiated Wed 16-Mar-83 3:42PM] TOPS-20 Command Processor 5(740)-2 @scheme SCHEME system made on (83 3 9) with MacLISP: 2129 Level: 1 ==> (debug) This level doesn't have a stack frame Subproblem level: 1 Possibly incomplete expression: (DYNAMIC-WIND (SEQUENCE (SET! G0002 ABORT-TO-TOP-LEVEL-DRIVER) (SET! ABORT-TO-TOP-LEVEL-DRIVER G0003)) (READ-EVAL-PRINT TOP-LEVEL-ENVIRONMENT MESSAGE DEFAULT-TOP-LEVEL-PROMPT) (SEQUENCE (SET! G0003 ABORT-TO-TOP-LEVEL-DRIVER) (SET! ABORT-TO-TOP-LEVEL-DRIVER G0002))) Within procedure [LAMBDA-PROCEDURE 211460] applied to (NIL [CONTROL-POINT 197592]) Debugger-command-character--> q ==> (quit) @pop [PHOTO: Recording terminated Wed 16-Mar-83 3:42PM] ------- 18-Mar-83 21:53:28-EST,2034;000000000000 Return-path: Mail-From: JINX created at 18-Mar-83 21:50:27 Date: 18 Mar 1983 2150-EST From: Bill Rozas Subject: Re: Slight problem with debugger To: AAB@MIT-OZ cc: bug-scheme@MIT-OZ, JINX@MIT-OZ In-Reply-To: Your message of 16-Mar-83 1545-EST Return-path: Mail-From: AAB created at 16-Mar-83 15:45:35 Date: 16 Mar 1983 1545-EST From: Andrew A. Berlin Subject: Slight problem with debugger To: jinx@MIT-OZ cc: bug-scheme@MIT-OZ If you go into debug when you first enter scheme, you get an error: What ever happened to the "there is no saved history" message? ---Andy [PHOTO: Recording initiated Wed 16-Mar-83 3:42PM] TOPS-20 Command Processor 5(740)-2 @scheme SCHEME system made on (83 3 9) with MacLISP: 2129 Level: 1 ==> (debug) This level doesn't have a stack frame Subproblem level: 1 Possibly incomplete expression: (DYNAMIC-WIND (SEQUENCE (SET! G0002 ABORT-TO-TOP-LEVEL-DRIVER) (SET! ABORT-TO-TOP-LEVEL-DRIVER G0003)) (READ-EVAL-PRINT TOP-LEVEL-ENVIRONMENT MESSAGE DEFAULT-TOP-LEVEL-PROMPT) (SEQUENCE (SET! G0003 ABORT-TO-TOP-LEVEL-DRIVER) (SET! ABORT-TO-TOP-LEVEL-DRIVER G0002))) Within procedure [LAMBDA-PROCEDURE 211460] applied to (NIL [CONTROL-POINT 197592]) Debugger-command-character--> q ==> (quit) @pop [PHOTO: Recording terminated Wed 16-Mar-83 3:42PM] ------- I don't see any error. The message may be confusing since there is a stack frame but no corresponding level in the history, but it seems to do the right thing. The reason the "No saved history" message went away is that once the cont stack is used, there is always available information, even if there is no saved history. Gjs wants that information available. By the way, I'll be here after Tuesday. Bill Rozas ------- 23-Mar-83 23:17:53-EST,1001;000000000000 Return-path: Mail-From: AAB created at 23-Mar-83 23:16:47 Date: 23 Mar 1983 2316-EST From: Andrew A. Berlin Subject: PHOTO BROKEN To: bug-scheme@MIT-OZ The PHOTO function of scheme is broken: 1) It assumes your directory is on PS: 2) It does not let you specify logical (or physical) devices like SRC: It worked recently, so someone broke it. ---Andy [PHOTO: Recording initiated Wed 23-Mar-83 11:12PM] TOPS-20 Command Processor 5(740)-2 @scheme SCHEME system made on (83 3 18) with MacLISP: 2129 Level: 1 ==> (photo "bug.foo") NO-ENVIRONMENT-SAVED Error! NO SUCH DIRECTORY NAME (OPEN ((PS |AAB.MAIL|) |bug| |foo| /-1) OUT) ([PRIMITIVE PHOTO] "bug.foo") Level: 2 Error-> ^G Quit! Level: 1 ==> (photo "src:bug.foo") ";Non-standard file name" ==> (photo "debug:bug.foo") ";Non-standard file name" ==> (quit) @pop [PHOTO: Recording terminated Wed 23-Mar-83 11:13PM] ------- 23-Mar-83 23:51:03-EST,1272;000000000000 Return-path: Mail-From: JINX created at 23-Mar-83 23:50:34 Date: 23 Mar 1983 2350-EST From: Bill Rozas Subject: Re: PHOTO BROKEN To: AAB@MIT-OZ cc: bug-scheme@MIT-OZ, JINX@MIT-OZ In-Reply-To: Your message of 23-Mar-83 2316-EST Photo was in fact changed recently so that filenames given to it can not contain "wierd" characters. The reason for this was that 6.001 students were having problems when they gave photo a wierd filename. Photo currently scans out a long list of characters from which probably <,> and : have to be omitted. As far as what the default filename should be, this is just a matter of choice: currently it assumes your connected directory (if on ps:, otherwise it barfs), but this hasn't been changed in a long time. It was only recently that load started defaulting to connected directories instead of ps: connected directories, but when this was fixed, photo was forgotten. I believe, however, that photo files shouldn't go to connected directories but rather to the LOGIN directory. The reason for this is that a lot of garbage would be generated in directories which shouldn't have it. Please let me know your opinion on the matter and I'll change the code as appropriate. ------- 24-Mar-83 00:12:33-EST,416;000000000000 Return-path: Mail-From: AAB created at 24-Mar-83 00:09:32 Date: 24 Mar 1983 0009-EST From: Andrew A. Berlin Subject: Re: PHOTO BROKEN To: JINX@MIT-OZ cc: bug-scheme@MIT-OZ In-Reply-To: Your message of 23-Mar-83 2350-EST I think Scheme should use the connected directory, just like the EXEC's PHOTO command and most if not all other programs on the system. ---Andy ------- 27-Mar-83 18:11:26-EST,626;000000000000 Return-path: Date: 27 Mar 1983 1808-EST From: Robert Scott Lenoil Subject: New command To: bug-scheme at MIT-EECS I wrote a new procedure, REMOVE, that I think would be nice to have in SCHEME. (REMOVE N L) removes the Nth element from list L. Hence, (REMOVE 2 '(1 4 7 8)) would return the list (1 7 8). I'm sure that what I wrote is terribly inefficient, but it demonstrates the idea. The procedure is in REMOVE.SCM. Maybe REMOVE can be added as a new primitive in the next version of SCHEME? -Robert ------- 28-Mar-83 05:55:04-EST,334;000000000000 Return-path: Mail-From: HANSON created at 28-Mar-83 05:53:44 Date: Mon, 28 Mar 1983 05:53 EST From: HANSON@MIT-OZ To: Bug-Scheme@MIT-OZ The debugger command S doesn't do the right thing when you go past the beginning of the history. It prints NIL instead of showing you the same thing that B and F do. 4-Apr-83 11:46:44-EST,284;000000000000 Return-path: Mail-From: GJS created at 4-Apr-83 11:45:26 Date: Mon, 4 Apr 1983 11:45 EST From: GJS@MIT-OZ To: Jinx@MIT-OZ Cc: Bug-Scheme@MIT-OZ Subject: WHERE The A command in WHERE doesn't print a list of bindings, but prints each binding separately. 17-Apr-83 17:10:14-EST,462;000000000000 Return-path: Date: 17 Apr 1983 1703-EST From: Andrew A. Berlin Subject: Photo in scheme To: jinx at MIT-OZ cc: bug-scheme at MIT-EECS Photo does not let you do something like: (photo "foo.log") It gives you a ?invalid character message (or something to that effect). Please make < > . and : legal characters for photo. The above refers to EE scheme as of 4/17/83 5:00 pm. ---Andy ------- 17-Apr-83 21:07:50-EST,311;000000000000 Return-path: Mail-From: HAL created at 17-Apr-83 20:26:58 Date: Sun, 17 Apr 1983 20:26 EST From: HAL@MIT-OZ To: bug-scheme@MIT-OZ please, in the new scheme, make cons-stream a primitive rather than syntax. its a real downer that one cannot write (accumulate cons-stream ......) 18-Apr-83 13:48:31-EST,634;000000000000 Return-path: Mail-From: HANSON created at 18-Apr-83 13:39:35 Date: Mon, 18 Apr 1983 13:39 EST From: HANSON@MIT-OZ To: HAL@MIT-OZ Cc: bug-scheme@MIT-OZ In-reply-to: Msg of 17 Apr 1983 20:26-EST from HAL Date: Sunday, 17 April 1983 20:26-EST From: HAL To: bug-scheme please, in the new scheme, make cons-stream a primitive rather than syntax. its a real downer that one cannot write (accumulate cons-stream ......) What? Sure, we can make a primitive that does what you want, but it will behave differently than cons-stream. Are you sure that's what you want? 18-Apr-83 14:10:07-EST,396;000000000000 Return-path: Mail-From: HAL created at 18-Apr-83 14:06:02 Date: Mon, 18 Apr 1983 14:06 EST From: HAL@MIT-OZ To: bug-scheme@MIT-OZ Subject: contender for crock of the week award I know this is a cludge, but what do you think of including in the initial Scheme environment definitions such as (define (cons-stream x y) (cons-stream x y)) (define (and . rest) 18-Apr-83 14:20:16-EST,806;000000000000 Return-path: Mail-From: HAL created at 18-Apr-83 14:19:33 Date: Mon, 18 Apr 1983 14:19 EST From: HAL@MIT-OZ To: bug-scheme@MIT-OZ Subject: kludge of the week (sorry about the spazzed version) Suppose we included in the initial scheme environment, definiitons such as (define (cons-stream x y) (cons-stream x y)) (define (and . rest) (if (null? rest) 't (and (car rest) (apply and (cdr rest))))) and so on for all the "call-by-name" style procedures. This would allow us to use them with higher order procedures such as stream accumulations. Of course, it has the disadvantage there will be differences between what the higher order procedure does, and what one would expect from the substution model. Do you think this is too kludgy? 18-Apr-83 23:30:02-EST,1221;000000000000 Return-path: Date: Monday, 18 April 1983 23:23-EST From: CWH at SCRC-TENEX To: HAL at MIT-OZ Cc: bug-scheme at MIT-OZ Subject: kludge of the week In-reply-to: The message of Mon 18 Apr 1983 14:19 EST from HAL at MIT-OZ Date: Mon, 18 Apr 1983 14:19 EST From: HAL at MIT-OZ To: bug-scheme at MIT-OZ Suppose we included in the initial scheme environment, definiitons such as (define (cons-stream x y) (cons-stream x y)) Could you send an example of how you would use this? I thought the whole point behind cons-stream was that the evaluation of y was delayed. (define (and . rest) (if (null? rest) 't (and (car rest) (apply and (cdr rest))))) I think it is a bad idea to define a procedure which has the same name as a special form. Someone looking at the above definition might think it was possible to apply other special forms. Zetalisp provides two procedures called "some" and "every", which correspond to the existential and universal quantifiers, respectively. They take a list and a predicate to apply to each element as arguments. I think there is something similar in Common Lisp. 20-Apr-83 17:27:29-EST,321;000000000000 Return-path: Mail-From: HAL created at 20-Apr-83 17:23:07 Date: Wed, 20 Apr 1983 17:23 EST From: HAL@MIT-OZ To: bug-scheme@MIT-OZ on the current scheme on oz, running the prime sieve program from page 177 of the notes and asking for the 100th prime gives a REG-PDL OVERFLOW error message. 21-Apr-83 19:37:13-EST,613;000000000000 Return-path: Mail-From: HANSON created at 21-Apr-83 19:23:39 Date: Thu, 21 Apr 1983 19:23 EST From: HANSON@MIT-OZ To: HAL@MIT-OZ Cc: bug-scheme@MIT-OZ In-reply-to: Msg of 20 Apr 1983 17:23-EST from HAL Date: Wednesday, 20 April 1983 17:23-EST From: HAL To: bug-scheme on the current scheme on oz, running the prime sieve program from page 177 of the notes and asking for the 100th prime gives a REG-PDL OVERFLOW error message. I would be surprised if this was other than the standard interaction between our streams and MacLisp's losing GC. 21-Apr-83 21:52:18-EST,496;000000000000 Return-path: Mail-From: KLOTZ created at 21-Apr-83 21:46:16 Date: Thu, 21 Apr 1983 21:46 EST From: Leigh L. Klotz To: bug-scheme@MIT-OZ You know, I bet if you made the EXPUNGE in (EDIT) happen only (for example) every 5th return to scheme, the load average on EE would go down. EXPUNGE takes a while, and isn't really necessary every time. I took it out just now for me, and it seemed to improve things. It's a fairly expensive operation. Leigh. 22-Apr-83 01:30:22-EST,1555;000000000000 Return-path: Mail-From: AAB created at 22-Apr-83 01:27:44 Date: 22 Apr 1983 0127-EST From: Andrew A. Berlin To: KLOTZ@MIT-OZ cc: bug-scheme@MIT-OZ In-Reply-To: Your message of 21-Apr-83 2152-EST Return-path: Mail-From: KLOTZ created at 21-Apr-83 21:46:16 Date: Thu, 21 Apr 1983 21:46 EST From: Leigh L. Klotz To: bug-scheme@MIT-OZ You know, I bet if you made the EXPUNGE in (EDIT) happen only (for example) every 5th return to scheme, the load average on EE would go down. EXPUNGE takes a while, and isn't really necessary every time. I took it out just now for me, and it seemed to improve things. It's a fairly expensive operation. Leigh. ------ I too remove the EXPUNGE on (edit). It totally eliminates the value of being able to UNDELETE a file. I think a better alternative would be to lower students working storage quotas (to, say 60 pages, which represents approximately 4 versions of any given problem set). This would make them do an expunge manually every time they run out of room, having much the same effect as doing it for them, with the major improvement that they would be able to undelete files before the expunge occurs. (are we really that pressed for space???) You could have another function around called (Eedit) which does the expunge and then goes into EMACS. This would be used when one is confident of the current version. IT IS WRONG TO EXPUNGE SOMEONE's DIRECTORY FOR THEM!!! (without asking). ---Andy ------- 4-May-83 05:09:18-EDT,355;000000000000 Return-path: Mail-From: HANSON created at 4-May-83 05:08:33 Date: Wed, 4 May 1983 05:08 EDT From: HANSON@MIT-OZ To: Jinx@MIT-OZ Cc: Bug-Scheme@MIT-OZ Subject: TRACE The function READ in the 68000 Scheme is defined roughly: (LAMBDA OPTIONAL ...) This fails to TRACE when it tries to do CDADR on the unsyntaxed text. 6-May-83 04:57:36-EDT,716;000000000000 Return-path: Mail-From: HANSON created at 6-May-83 04:55:16 Date: Fri, 6 May 1983 04:55 EDT From: HANSON@MIT-OZ To: Bug-Scheme@MIT-OZ Subject: ITERATE I would like to propose reviving ITERATE, which had the following syntax: (ITERATE (( ) ...) ...) The reason is that I can very efficiently implement many loops on the 68000/C Scheme using ((NAMED-LAMBDA ( ...) ...) ...) as opposed to the more cumbersome (SEQUENCE (DEFINE ( ...) ...) ( ...)) which we must use now to implement loops. What do you think? Chris