oster@dewey.soe.berkeley.edu.UUCP (10/29/87)
I've been using Lucid Common Lisp + Portable Common Loops + X version 10 on Sun 3/50 and Sun 3/160 hardware, and I am very unhappy with the system. If anyone has any advise, or can tell me how to get software to ameliorate some of my problems, I would truly appreciate it. I'd be happy to switch from Lucid to Franz, if it made a big difference in programmer productivity. (We are using Lucid because our program runs twice as fast under Lucid as Franz, and Franz tends to core dump if you call an X function with incorrect arguments.) 1.) I'm having these problems with the debugger: Has anyone fixed it to allow single-stepping from a breakpoint? (I can set breakpoints, and I can single step, but my problems are all deep within large systems. For the moment, I set a breakpoint, recompile, run, and at the break, compile a fresh version of the function without the breakpoint, laborously call it under the stepper with the same arguments that the break trace shows (using :l 0, :l 1, :l 2 to get the arguments where I can setq them into temporaries.)) Has anyone fixed it to allow continuing the stepper with just a mouse click? (I have to type ":n<return>" now, which is pretty painful.) Has anyone fixed it so that it preserves the names of the local variables? (local 0...n are hard to associate with the names in the original code.) Has anyone fixed PCL so it uses gensyms based on the original method names? (most of the procedures on my backtrace are completely anonymous gensyms.) Has anyone fixed it so I can see data structures, each in its own window, as scrollable list of labelled data field where I can click and type at a data value to change it? I want to edit the stack backtrace as a scrollable list of scrollable lists. Is there a package so that I can examine interlinked data structures as a graph, and edit it by mousing on and dragging the links? Is there anything like the InterLisp advise package, so I can decorate functions with preambles and postambles without having to recompile them? Does anyone have a window based stepper that will show me the current expression, underlined, in an editor window? Does anyone have a decent code profiler? (I want to click on a button, run something, click the button off, and get a graph of the calling tree, with a bar for each function of how often it got called and how much time it took.) 2.) X problems Has anyone fixed X so that it will save the bitmap of my output window and restore it when that window is re-revealed? (My program is still too sick to burden my programming with worrying about redraw events.) (this is in the spec for X v11, but no-one has implemented it, and X v11 is still too rocky for us to convert.) Where is the fix to Xv10 to allow clipboards longer than 512 characters? Actually, this may be more nearly a problem with pipe blockage running processes under emacs. (I'm having problems with Lucid's built-in mini-emacs, but if I run lucid under real emacs, this problem makes it impossible to send a complete function definition to Lucid.) Does anyone have file for emacs for running lisp that maintains the common lisp package environment? 3.) I'm having these problems with Lucid's editor: Has anyone fixed Lucid's built-in mini-emacs so that it doesn't trash my files? (I've had problems with extra text showing up in my source code.) So it doesn't abort if I un-thinkingly edit a directory? (like you can in real emacs.) So you can position the cursor on a function name and have it display the calling sequence in the mini-buffer? So you can position the cursor on a function name and have it display the documentation? the definition? So you can position the cursor on a function name and have it display a list of windows, each window centered on the function who called it? How do I make it command complete my function names? Running under the editor, it doesn't tell me it is garbage collecting until it finishes. I need to know before that so I won't get frustrated by the frequent wait-15-seconds-while-it-garbage-collects. has anyone fixed this? ---------------- I'm not asking for much, just a bare minimum of programmer's tools for doing serious lisp programming on a workstation. I apologize if I'm wasting the net's time and the answers to these requests are already in documentation I have. Please answer by E-mail. I will repost if there is any interest. --- David Phillip Oster --A Sun 3/60 makes a poor Macintosh II. Arpa: oster@dewey.soe.berkeley.edu --A Macintosh II makes a poor Sun 3/60. Uucp: {uwvax,decvax,ihnp4}!ucbvax!oster%dewey.soe.berkeley.edu
rshu@zodiac.UUCP (10/30/87)
In article <21493@ucbvax.BERKELEY.EDU> you write: >I've been using Lucid Common Lisp + Portable Common Loops + X version 10 >on Sun 3/50 and Sun 3/160 hardware, and I am very unhappy with the system. > No kidding. >If anyone has any advise, or can tell me how to get software to ameliorate >some of my problems, I would truly appreciate it. > So would I. My advice is buy a *REAL* Lisp Machine (i.e. Symbolics) >(I'm having problems with Lucid's built-in mini-emacs, but if I run >lucid under real emacs, this problem makes it impossible to send a >complete function definition to Lucid.) > Sorry for the flipness of this reply. I have also been struggling with the SUN environment (FRANZ and GNUEMACS) and I ***HATE*** it. Where the #$#%@@ is the window inspector, the flavor examiner, etc. Seriously, I find that using Gnuemacs' inferior lisp mode (aptly named when referring to Franz or Lucid) to communicate to Franz is marginally acceptable. I make my Emacstool window as wide as the entire screen and almost as tall and then split it in two using c-x 5. I then do a M-x run-lisp (I've modified the emacs variable "inferior-lisp-program" so that run-lisp runs Franz instead of Lucid). Now I can cut and paste from either the Lisp buffer or any other buffer. I use C-m-x to send function definitions from gnuemacs to the inferior-lisp buffer. I haven't sent very large functions but Franz seems to be reading a temp file so my guess is that there shouldn't be any size limitation. By the way, make sure to use Emacstool so that Emacs will know about the mouse. I find Gnuemacs enticing because the source is available. I haven't hacked the sources much yet but the fact that I can makes a big difference. After working in Symbolics Release 6 for two years, I'm spoiled by the availability of source code. Too bad Symbolics is becoming secretive. I'm beginning to think that Stallman and the Free Software Foundation are not so bonkers after all. But that's the topic for a different flame. > >---------------- >I'm not asking for much, just a bare minimum of programmer's tools >for doing serious lisp programming on a workstation. Clearly, you're asking for more than most computer manufacturer's are willing to deliver. Pity the poor programmers of conventional languages who don't even EXPECT this level of support, let alone get it. Once again, buy a Symbolics. (Maybe, just maybe, Sun's SPE will be an acceptable improvement whenever it shows up). > >--- David Phillip Oster --A Sun 3/60 makes a poor Macintosh II. >Arpa: oster@dewey.soe.berkeley.edu --A Macintosh II makes a poor Sun 3/60. Neither even qualifies as a poor Symbolics. -- Richard F. Shu Today, the Fulda Gap. Tomorrow, the world.
chan@hpfcmp.HP.COM (Chan Benson) (11/02/87)
It doesn't do you much good since you're running on a Sun, but take a look at HP's Common Lisp environment running on our Series 300 Unix workstations sometime. The Emacs based NMODE environment has much of the debugging and development tools that are missing in the Lucid environment on Sun. It's not as window oriented as a Symbolics and at the moment it doesn't have Flavors or access to X (since it runs in HP's proprietary windowing system), but it's lots better than the other workstation offerings in terms of programming features. Any unbiased HP Lisp users from the grants program care to comment? If you have any specific questions about features, e-mail them and I'll try and answer. -- Chan Benson HP Fort Collins (303) 229-3892 {ihnp4|hplabs}!hpfcla!chan
steve@siemens.UUCP (Steve Clark) (11/05/87)
As long as everyone is plugging their favorite Lisp environment, I have to throw in my 2 cents. When I read the original message, I honestly thought the guy was going to say he had come from the Xerox Interlisp-D environment. The things he expected, which weren't there, are what I am used to in the Interlisp-D environment (with the exception of X, whose implementation in Interlisp is still in its infancy). Now for the good news: Not only has Xerox (finally) come through with Common Lisp on their workstations (although CL has lots of disadvantages (and a few advantages) over Interlisp-D), but the latest news is that Xerox will stop making their own hardware in the next few years, and move all their great stuff onto SUN-4's. I wouldn't expect to see anything for at least a year, and by the time they are ready they will doubtless have gotten all the great things in Interlisp-D to run in Common Lisp.
shebs@utah-orion.UUCP (Stanley T. Shebs) (11/07/87)
In article <2630001@hpfcmp.HP.COM> chan@hpfcmp.HP.COM (Chan Benson) writes: >It doesn't do you much good since you're running on a Sun, but take a >look at HP's Common Lisp environment running on our Series 300 Unix >workstations sometime. The Emacs based NMODE environment has much of >the debugging and development tools that are missing in the Lucid >environment on Sun. > >Any unbiased HP Lisp users from the grants program care to comment? (What is "unbiased" is supposed to mean?) Utah's comment on NMODE is that we don't use it anymore. It was great on the old Chipmunk Pascal workstations, but has gone downhill steadily since then. It's slow, flaky, and restrictive. No sources, so we can't fix things; doesn't understand termcap/lib, so can't run from anywhere except the workstation; huge, so you get a choice of thrashing VM or doing long waits for the GC; excessive consing, so GCs are not uncommon while you're typing (how any editor could manage to cons while reading characters is beyond me); no multiple control threads, so can't edit while a Lisp program is running; and more. Kind of a shame, since the hardware is outstanding, and the original NMODE was really fun to use. Definitely a case of galloping featurism getting in the way of little things like editing text. At present, we use Gnumacs with HP CL as a subprocess. We lose debugging goodies, but it's better than getting stopped cold with a minute-long GC while typing a program in, or losing files because your Lisp code had a bug in it... > -- Chan Benson While I'm here, I'd like to make a plea for more flexible Lisp programming environments. People coming out of Interlisp/Symbolics traditions are very big on integration, but have no concept of tools. How hard can it be to supply grep and wc and diff? There is just one way to use the environments now; program in exactly the way the developers insist on (i.e. get an error, jump into monster debug menu). If your style is even slightly different, it's quite painful to deal with. Even a few customization options would be better than nothing... stan shebs shebs@cs.utah.edu
dzzr@beta.UUCP (Douglas J Roberts) (11/09/87)
In article <177@utah-orion.UUCP>, shebs@utah-orion.UUCP (Stanley T. Shebs) writes: > In article <2630001@hpfcmp.HP.COM> chan@hpfcmp.HP.COM (Chan Benson) writes: > . . . SOME STUFF DELETED . . . > While I'm here, I'd like to make a plea for more flexible Lisp programming > environments. People coming out of Interlisp/Symbolics traditions are very > big on integration, but have no concept of tools. HA! The 15 or so of us in my group who have experimented with Knowledge Engineering Environment (KEE) and LISP running on a SUN would *swear* that UNIX folks had never heard of software development tools! However, we have been promised that this will change when SUN releases their Symbolic Programming Environment (SPE). We are told that it will provide a usable window debugger, multiple LISP listeners, and a slew of other goodies that may compare favoribly with the rich development environment provided by a Symbolics. -- --------------------------------------------------------------- Doug Roberts dzzr@lanl.gov ---------------------------------------------------------------
shebs@utah-orion.UUCP (Stanley T. Shebs) (11/10/87)
In article <12076@beta.UUCP> dzzr@beta.UUCP (Douglas J Roberts) writes: >HA! The 15 or so of us in my group who have experimented with Knowledge >Engineering Environment (KEE) and LISP running on a SUN would *swear* >that UNIX folks had never heard of software development tools! This is a very puzzling remark. Unix systems were the first to exploit the idea of using tools instead of big, fancy, and inflexible systems (recent years have seen a proliferation of such systems in Unix, though). Perhaps there's a misconception - when I say "tool", I have in mind the software equivalents of hammers and screwdrivers and bench saws. Sure, three-story-high milling machines are amazing creations, but everything they do has to be cast in terms of milling (for instance, cutting = engraving a channel so deep it goes all the way through), and they are totally useless for anything that the milling machine designers did not think of already. Getting back to software, there is *no* programming environment designer clever enough to anticipate what I want to do. They're better off supplying a set of simpler tools that can fit together in different ways. In Unix, the interface is a character stream, which is good for text and general file processing, but bad for Lisp. A tool-oriented Lisp environment would presumably use S-expressions as the basic interface, although one would probably need some sort of lazy version, so that heap space isn't exhausted by the creation of one intermediate object. Useful operations include many already in Common Lisp, such as sorting, set operations, and reversing, but extended to operate on incompletely-defined things. Generalization of streams is a good thing as well. (For some more ideas like this, see the Fraser/Hanson paper on the EZ programming environment in POPL 85.) A classic example of tool usage in Unix is the one-line spelling checker; I have yet to see any Lisp programming environment support anything quite as elegant and useful. There is actually an interesting research question here: integration vs tools. Both approaches have their advantages and disadvantages, and nobody really knows enough about programming environments to say which is better, and under what conditions. Unfortunately, doing believable experiments on this sort of question involves a horrendous amount of work... > Doug Roberts > dzzr@lanl.gov stan shebs shebs@cs.utah.edu
barmar@think.COM (Barry Margolin) (11/11/87)
In article <178@utah-orion.UUCP> shebs@orion.utah.edu.UUCP (Stanley T. Shebs) writes: >In article <12076@beta.UUCP> dzzr@beta.UUCP (Douglas J Roberts) writes: > >>HA! The 15 or so of us in my group who have experimented with Knowledge >>Engineering Environment (KEE) and LISP running on a SUN would *swear* >>that UNIX folks had never heard of software development tools! > >This is a very puzzling remark. Unix systems were the first to exploit >the idea of using tools instead of big, fancy, and inflexible systems >(recent years have seen a proliferation of such systems in Unix, though). >Perhaps there's a misconception - when I say "tool", I have in mind the >software equivalents of hammers and screwdrivers and bench saws. I think the two of you are talking about different things when you say "software development tools". Everyone knows that Unix is built on a toolbox philosophy. Unix provides many tools for use in applications. However, Unix is lacking many tools that directly aid the programming process. The most significant lack is in the debuggers. I don't think there are any Unix debuggers that even come close the Symbolics Lisp Machine debugger. Unix is twice as old as Lisp Machines, and you'd think that with all the zillions of lines of C code that have been written for Unix there would be some really amazing debuggers by now. On the contrary, I suspect that there are still a large number of Unix programmers using adb, not even source-level debugging. >Getting back to software, there is *no* programming environment designer >clever enough to anticipate what I want to do. They're better off supplying >a set of simpler tools that can fit together in different ways. In Unix, >the interface is a character stream, which is good for text and general file >processing, but bad for Lisp. A tool-oriented Lisp environment would >presumably use S-expressions as the basic interface, although one would >probably need some sort of lazy version, so that heap space isn't exhausted >by the creation of one intermediate object. I don't understand this point. I create lots of intermediate objects all the time while debugging and prototyping in Lisp. > Useful operations include >many already in Common Lisp, such as sorting, set operations, and reversing, >but extended to operate on incompletely-defined things. Most of these operations are generalized to some extent in Common Lisp; in my view, this was one of its most significant innovations. All the set, list, and sequence operations take options specifying how to operate on the elements; for example, SORT lets the programmer specify a comparison function and a function for extracting the key, and set operations let you specify the equality function. > Generalization of >streams is a good thing as well. (For some more ideas like this, see the >Fraser/Hanson paper on the EZ programming environment in POPL 85.) > >A classic example of tool usage in Unix is the one-line spelling checker; >I have yet to see any Lisp programming environment support anything quite >as elegant and useful. You can do an amazing amount in one line of APL, too, but that doesn't make it a great language (please, no flaming from the APL enthusiasts). --- Barry Margolin Thinking Machines Corp. barmar@think.com seismo!think!barmare
shebs@utah-orion.UUCP (Stanley T. Shebs) (11/12/87)
In article <11639@think.UUCP> barmar@sauron.UUCP (Barry Margolin) writes: >[...] I don't think there >are any Unix debuggers that even come close the Symbolics Lisp Machine >debugger. Unix is twice as old as Lisp Machines, and you'd think that >with all the zillions of lines of C code that have been written for >Unix there would be some really amazing debuggers by now. On the >contrary, I suspect that there are still a large number of Unix >programmers using adb, not even source-level debugging. You have a good point. But consider that a high-level debugger must know about the language implementation, and therefore be different for each. The Symbolics debugger is only useful for official Symbolics languages. If I were to, say, port PSL to a Symbolics, the pre-existing debugger would be quite useless. Unix systems run a great variety of languages. There are C debuggers out there, but C is a very low-level language, and it's quite easy for a C program to trash things so badly that the symbolic debugger's own data structures are destroyed. Adb has the advantage that it *almost* always works (although I've been in situations in Lisp implementation work where even adb couldn't fathom what had happened...). Now if one were to take a tools-oriented approach to debugging, there would be a small language/interface to specify types of debugging actions, the state of execution would be available as a normal data object to be looked at, the user interface would be separate from the basic breakpoint/examine/step code, and the debugger would have a published interface to the language system, so that a conforming language would be usable with that debugger. Even Lisp machine debuggers haven't managed all that yet (unless there's an amazing new one I haven't heard about?). >>A tool-oriented Lisp environment would >>presumably use S-expressions as the basic interface, although one would >>probably need some sort of lazy version, so that heap space isn't exhausted >>by the creation of one intermediate object. > >I don't understand this point. I create lots of intermediate objects >all the time while debugging and prototyping in Lisp. To take a realistic example, I've been having to debug some subtle misbehavior where I'm not quite sure what exactly is wrong. I've been applying pipes of Unix tools (grep mostly) to a 1-2 megabyte log file, trying to get a feel for patterns in it. Even a Lisp machine has a hard time dealing with dozens of ephemeral objects each several megabytes in size... To take another example, Aho, Sethi, and Ullmann formatted the multi-megabytes of their compiler book with a long pipe of various tools. (no, I'm not defending troff!) >> Useful operations include >>many already in Common Lisp, such as sorting, set operations, and reversing, >>but extended to operate on incompletely-defined things. > >Most of these operations are generalized to some extent in Common >Lisp; in my view, this was one of its most significant innovations. >[...] I'm all too familiar with CL sequence functions and their innards! :-) :-( Nevertheless, they must conform to Lisp's strictness - the arguments are completely evaluated before the operation starts. In general, I was suggesting a research program rather than demanding a particular kind of Lisp environment. Certainly it's not reasonable to make Lisp look like Unix or APL or EZ! On the other hand, although Lisp people might once have had the lead in environments, not much has happened in recent years, and people working in conventional languages are catching up fast. It's disappointing to see a defense of the status quo rather than new ideas. >Barry Margolin >Thinking Machines Corp. stan shebs shebs@cs.utah.edu
alex@umbc3.UUCP (11/12/87)
<mucho stuff made gone...> There has been much heated discussion about what is wrong with various systems, but mostly vaguaritys & generalizations...SO: I am running KCL on an AT&T 3b1, I also have GNU Emacs. As an extension to a school project, I would like to design a working environment for lisp stuff. I plan to write all the code (unless someone else is interested :-)) and have an abundance of tools, graphics, windows, mouse, menus, editors, lisp etc. So my question: What makes a good lisp environment? do i need/want full unix shell stuff inside of lisp? I can link all of the syscalls into lisp & dynamicly load a shell, but the command syntax seems a bit odd. also, while i can get lisp to fork, forking 2meg of lisp for ls is a bit extranious. I am considering satalite processes, like a shell & editor, & communicatiion through message packes or pipes, but... SO, In 25 words or less, What do you want?? whate shal i go? what shal i do? all suggestions are welcome! either post or email & i will summerize. :alex. alex@umbc3.umd.edu .
barmar@think.COM (Barry Margolin) (11/13/87)
In article <179@utah-orion.UUCP> shebs@orion.utah.edu.UUCP (Stanley T. Shebs) writes: > But consider that a high-level debugger must know >about the language implementation, and therefore be different for each. >The Symbolics debugger is only useful for official Symbolics languages. No, it's useful for any language that generates code in the same style as Symbolics's languages. Just because a language wasn't implemented by the vendor doesn't mean that it can't produce the data that the debugger needs. There may be documentation issues, in that Symbolics doesn't document everything that a language implementor must do to be compatible, but that is different from a technical inability. >If I were to, say, port PSL to a Symbolics, the pre-existing debugger would >be quite useless. Only if you choose not to put the effort into your port to make it generate Symbolics standard functions. If you want the edebugger to be able to figure out local variable names, all you have to do is generate a local-map; if you want it to be able to find the source line associated with an instruction, generate source-locators. Of course, it goes without saying that you should follow Symbolics's stack discipline. Before I was a Symbolics user I was a Multics user. In Multics, the entire runtime environment is standardized across all languages (except some esoteric ones like MacLisp and SNOBOL). They all use the same stack frame layouts, the same argument list formats, even the same data type descriptors (the Multics equivalent of varargs allows the subroutine to determine the data type of the parameter). Object file formats are similarly standardized. This means that the same debugging tools are useful for all languages that follow the standards. > Unix systems run a great variety of languages. There are >C debuggers out there, but C is a very low-level language, and it's quite >easy for a C program to trash things so badly that the symbolic debugger's >own data structures are destroyed. Well, if a program trashes its stack, very few debugging systems can deal with it. Most of the other data structures that debuggers need are in the read-only section of the object file, and are unlikely to be trashed (this isn't as true on a dynamically-linked system, where it is possible to destroy the linkage between subroutines). >Now if one were to take a tools-oriented approach to debugging, there would >be a small language/interface to specify types of debugging actions, the state >of execution would be available as a normal data object to be looked at, the >user interface would be separate from the basic breakpoint/examine/step code, >and the debugger would have a published interface to the language system, >so that a conforming language would be usable with that debugger. Even >Lisp machine debuggers haven't managed all that yet (unless there's an >amazing new one I haven't heard about?). We've been told that the debugger coming in the next Symbolics release will be sensitive to the language of the program it is debugging, and allow the user to type in expressions in the appropriate syntax. As far as I'm concerned, that's the only part of a debugger that should be language-dependent. Stack tracing, stepping, and breakpoints deal with language-independent data structures. >To take a realistic example, I've been having to debug some subtle misbehavior >where I'm not quite sure what exactly is wrong. I've been applying pipes of >Unix tools (grep mostly) to a 1-2 megabyte log file, trying to get a feel for >patterns in it. Even a Lisp machine has a hard time dealing with dozens of >ephemeral objects each several megabytes in size... To take another example, >Aho, Sethi, and Ullmann formatted the multi-megabytes of their compiler book >with a long pipe of various tools. (no, I'm not defending troff!) I'm still not sure what the point you're trying to make is. First of all, people rarely debug programs using large data sets; when you are debugging you create small sample data sets, if only just to speed up the debugging cycle. I'm sure that when people debug long pipelines they do it by incrementally building up from pairs and triples, perhaps sending intermediate output to files so they can examine the results. I do the same thing in Lisp: I create lists 5-10 elements long, save the results of things on other little lists, etc. Of course, most of the time you only need to debug the function that is being called on each iteration, so you don't even need a list. --- Barry Margolin Thinking Machines Corp. barmar@think.com seismo!think!barmar
shebs@utah-orion.UUCP (Stanley T. Shebs) (11/14/87)
In article <11746@think.UUCP> barmar@sauron.UUCP (Barry Margolin) writes: >Only if you choose not to put the effort into your port to make it >generate Symbolics standard functions. [...] >Of course, it goes without saying that you should follow Symbolics's >stack discipline. The reason I mentioned PSL specifically is that it uses a register protocol instead of a stack protocol. That's what I meant about environment designers not being clever enough to anticipate what programmers will come up with. It shouldn't "go without saying" that I have to implement my languages the way somebody else implemented theirs. After all, the whole point of higher level languages is to allow different implementations! >Before I was a Symbolics user I was a Multics user. In Multics, the >entire runtime environment is standardized across all languages >(except some esoteric ones like MacLisp and SNOBOL). [...] This is good but too restrictive. It's analogous to the use of intermediate languages in optimizing compilers - the language ends up mirroring the source language and hairifying the backend, or it looks too much like a particular machine and code for other machines is poor as a result. An answer is to use machine description languages, although satisfactory ones for compilers have yet to appear. In the environments world, there has been some work on interface description languages; I don't believe any of it is being done in a Lisp context, however. >We've been told that the debugger coming in the next Symbolics release >will be sensitive to the language of the program it is debugging, and >allow the user to type in expressions in the appropriate syntax. As >far as I'm concerned, that's the only part of a debugger that should >be language-dependent. Stack tracing, stepping, and breakpoints >deal with language-independent data structures. Better, but not there yet. The structure of the stack is certainly not language-independent! The only language-independent stepping I can think of is at the machine language level, but surely you can't be stepping by machine instructions in a high-level debugger? The *concept* of a breakpoint is independent of language, but certainly the display at a break in a Prolog is rather different than that for Lisp (at least for those Lisps which don't have logical variables and choice points :-) ). >[...] people rarely debug programs using large data sets; when you are >debugging you create small sample data sets, if only just to speed up >the debugging cycle. Of course, if that's possible; if the problem breaks up into little pieces. That's the easy part of debugging, and I consider it a solved problem. It's the system integration bugs that are nasty. You know the sort; all the parts seem to work perfectly, the bug appears only once in a hundred runs or only to particular users, and it only appears after the program has been running for an hour. Lisp system garbage collectors are a traditional example - I don't know of any Lisp hackers that would bet large amounts of money against a tiger team attack on their storage allocator. A rationale for Unix-style tools is that one can use them to construct more powerful debugging tools than those already provided. >I'm sure that when people debug long pipelines >they do it by incrementally building up from pairs and triples, >perhaps sending intermediate output to files so they can examine the >results. The pipes I mentioned specifically are *for* debugging; they don't need debugging themselves! In fact, a Symbolics-type debugger is completely useless, because the program (xconq) runs perfectly, but I'm unhappy about the intelligence of the machine players, and am trying to figure out why. Small-scale behavior seems to be OK, but is poor on larger examples and after longer times. You must not have used pipes very much - the whole point of them is to *avoid* "sending intermediate output to files". I've used Unix for quite a while, and my tool usage is far inferior to what real experts do, which is on a scale that would swamp most Lisps if those tools were in Lisp. On the other hand, accommodating Unix tools can involve peculiar restrictions on the format of data - I believe the ideal is some as-yet-unachieved combination of tools and integration. The Lisp community is setting itself up for a fall by continually calling for more integration, while the rest of the world is looking for more flexibility... (Of course, I may be misreading the future, but then that's one of the hazards of academic life!) >Barry Margolin stan shebs shebs@cs.utah.edu
dzzr@beta.UUCP (Douglas J Roberts) (11/16/87)
> But consider that a high-level debugger must know >about the language implementation, and therefore be different for each. >The Symbolics debugger is only useful for official Symbolics languages. The last time I looked, my Symbolics debugger worked just fine on FORTRAN, and PASCAL, and I have no reason to suspect that it won't work on the ADA as well. 'C' will be available soon, as well. -- --------------------------------------------------------------- Doug Roberts dzzr@lanl.gov ---------------------------------------------------------------