ldo@peace.waikato.ac.nz (Lawrence D'Oliveiro) (01/23/90)
Here's my list of what I'd like to see in future versions of MPW. * The ability to use the contents of a window (or the current selection within a window) as both input and output in the *same* command. That way, I can do nifty things like reformat code (which I've transferred from another machine) with Entab -d 8 -t 4 <"{Target}" >"{Target}" without having to mess around with intermediate temporary files. At the moment, if you try this, you immediately lose the portion of text you were trying to operate on. I'd be quite happy if this new feature were to work only with open windows, not with arbitrary files. * The ability to extend the selection by holding down the shift key while pressing the arrow keys, as per Inside Plusintosh, pages IV-5 to IV-6, which was published in 1986, remember. I was surprised (and disappointed) not to see this feature in MPW 3.0. * The ability for tools to invoke scripts and other tools, and to generally multitask within the MPW environment. System 7 will provide the IPC infrastructure (or so we keep getting told), will MPW 4.0 take advantage of it? Wouldn't it be luverly... Lawrence D'Oliveiro PC/networking consultant and sometime programmer Computer Services Dept University of Waikato Hamilton New Zealand ldo@waikato.ac.nz
chewy@apple.com (Paul Snively) (01/24/90)
In article <1990Jan23.065751.29303@peace.waikato.ac.nz> ldo@peace.waikato.ac.nz (Lawrence D'Oliveiro) writes: > Here's my list of what I'd like to see in future versions > of MPW. > > * The ability to use the contents of a window (or the current > selection within a window) as both input and output in the *same* > command. That way, I can do nifty things like reformat code > (which I've transferred from another machine) with > > Entab -d 8 -t 4 <"{Target}" >"{Target}" > > without having to mess around with intermediate temporary > files. At the moment, if you try this, you immediately lose > the portion of text you were trying to operate on. I'd be quite > happy if this new feature were to work only with open windows, > not with arbitrary files. This doesn't work??? Hang on a sec... (going off to try MPW 3)... Sure enough; it doesn't work. I'll pass this one along to the MPW team. As for it working only for open windows and not with arbitrary files, relax; it's no easier to work with windows only than it is with files in general. MPW implements a sophisticated external file system that makes open windows essentially override the files that they were opened from, which is why you can open a file, make changes, NOT save them, compile/link, and the changes will be in effect (good for prototyping ideas, lousy as a production technique, obviously). Thanks for the input! In article <1990Jan23.065751.29303@peace.waikato.ac.nz> ldo@peace.waikato.ac.nz (Lawrence D'Oliveiro) writes: > * The ability to extend the selection by holding down the > shift key while pressing the arrow keys, as per Inside > Plusintosh, pages IV-5 to IV-6, which was published in > 1986, remember. I was surprised (and disappointed) not > to see this feature in MPW 3.0. I'd always wondered about this too. In particular, I like the way that Macintosh Allegro Common Lisp deals with selections and editing (MACL essentially uses EMACS, but it also knows about selections, command-key equivalents, and the like). I'll check to see if a) there's an alternative way to extend selections from the keyboard or b) whether MPW will conform to Human Interface guidelines better in a future release. In article <1990Jan23.065751.29303@peace.waikato.ac.nz> ldo@peace.waikato.ac.nz (Lawrence D'Oliveiro) writes: > * The ability for tools to invoke scripts and other tools, > and to generally multitask within the MPW environment. System 7 > will provide the IPC infrastructure (or so we keep getting told), > will MPW 4.0 take advantage of it? This'd be easy if tools and scripts were applications in their own right, but they aren't. Tools come pretty close, though, so if MPW were revved so that tools were apps that got launched into their own layers, perhaps as "background-only" apps, and the interactive environment stuff were rewritten... hmmmmm... but that leaves scripts sorta out in the cold. Maybe that would be ok. I think this one needs some serious kicking around in the MPW team, but it's still nothing that I can promise (then again, none of this is). All good ideas; let's see what we can do about them. __________________________________________________________________________ Just because I work for Apple Computer, Inc. doesn't mean that they believe what I believe or vice-versa. __________________________________________________________________________ C++ -- The language in which only friends can access your private members. __________________________________________________________________________
bowman@reed.UUCP (Eric Bowman) (02/04/90)
Speaking of Entab, maybe who ever's listening at Apple would consider not trashing the 'MPSR' resource when they fix the > Entab -d 8 -t 4 <"{Target}" >"{Target}" problem. I envisioned a nice little menu item "Entab Active" which was to execute: derez "{active}" >__tempRez Entab "{Active}" | Catenate > "{Active}" rez __tempRez -append -o "{Active}" in hopes of not trashing all the Mark'ed items, but, alas, this doesn't work (I don't think there's anything wrong...) ^^^^^ ("And now, my trusty assistant Beaker, will turn up the Bunsen Burner") In response to an earlier flicker -- ok, I don't like heirarchical menus either, but customizable menus is hardly a *toy* feature, and adding this capability to MPW would not be that hard. The choice to use MPW is frequently motivated by, among other things, the degree to which the user can customize the environment. Isn't a certain level of graphic intuitiveness the whole idea? (Sheesh - wadayado, debug your shell scripts in MacsBug?) ("Thank you, Beaker. Beaker?") ============================================================================== | The Insidious Uncle BoBo | ------------------------------------------------------------------------------ | "As I see it, my friends can access my private | | members in a public class..." | ============================================================================== | Eric Bowman -> | | ShitNet: bowman@reed.bitnet | | FarFromFreeNet: (503)234-7158 (Like I'll Really Answer) | | Disclaimer: "If my employer ever found out my opinions, well..." | /=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=
shap@delrey.sgi.com (Jonathan Shapiro) (02/05/90)
One of the things that has always bothered me about MPW is that its editor is hardwired in. I have used other editors, most recently vi and emacs, for a long time, and I find that moving to the mouse every two seconds to correct typos in the line above really cuts into my throughput. Also, the mac editor isn't programmable, so the hacks I have put together to do sophisticated indenting, etc. can't be done there. I would be willing to write my own editor if the interface could be published or if I could get it from Apple by asking for it. Any chance of this happening? Jon Shapiro
omullarn@oracle.oracle.com (Oliver Mullarney) (02/05/90)
In article <14044@reed.UUCP> bowman@reed.UUCP (Eric Bowman) writes: > >("And now, my trusty assistant Beaker, will turn up the Bunsen Burner") > >In response to an earlier flicker -- ok, I don't like heirarchical menus >either, but customizable menus is hardly a *toy* feature, and adding this >capability to MPW would not be that hard. The choice to use MPW is >frequently motivated by, among other things, the degree to which the >user can customize the environment. Isn't a certain level of graphic >intuitiveness the whole idea? (Sheesh - wadayado, debug your shell scripts >in MacsBug?) > >("Thank you, Beaker. Beaker?") > Customizable menus, I agree, is not a toy feature. Everything you can do should be in menus, including the 'aliases' you create for frequently used commands. This may come as a surprise to you, but MPW already does have customisable menus. What I ridiculed as a toy feature was the wish for customisable, _hierarchical_ menus. I would prefer that the people working on MPW spent their time fixing the bugs in the compilers, making tools more co-operative, talking to the SADE people to see if they can further integrate these two companion tools, not farting around with hierarchical menus. I am glad to say that, to the best of my knowledge, the MPW people are talking to the SADE people, working on the compilers etc. Not a word yet about hierarchical menus... As for debugging tools in MacsBug, I have had to do that (not very often, though even once is too often...) - try debugging an MPW tool using SADE and you will realise that life is just too short. Oliver (How come nobody else had any complaints about the compilers etc.? I'm feeling lonely). | Oliver Mullarney | "I have knowledge of Digital Watches, and soon I | | Oracle Corporation | shall have knowledge of Video Cassette Recorders" | | omullarn@oracle.com | Time Bandits | --------------- "Universally acknowledged to work just fine" ----------------
omh@cs.brown.edu (Owen M. Hartnett) (02/05/90)
Here's one thing that amazed me wasn't in there: Extend the selection in the active window by one character with shift right arrow. I scoured the manuals looking for it, and maybe it's there, but I sure couldn't find it. (this is, if it is under a different key). This is really a useful feature, and I use it all the time with LSP. -Owen Owen Hartnett omh@cs.brown.edu.CSNET Brown University Computer Science omh@cs.brown.edu uunet!brunix!omh "Don't wait up for me tonight because I won't be home for a month."
bowman@reed.UUCP (Eric Bowman) (02/05/90)
In article <1990Feb5.004034.6097@oracle.com>, omullarn@oracle.oracle.com (Oliver Mullarney) writes: > In article <14044@reed.UUCP> bowman@reed.UUCP (Eric Bowman) writes: [stuff] > >either, but customizable menus is hardly a *toy* feature, and adding this > >capability to MPW would not be that hard. The choice to use MPW is Actually, I meant that adding heirarchical menus would not be that hard. ^^^^^^^^^^^ I know MPW has customizable menus. I use them daily. I still think heirarchical menus would be nice for certain things, such as on a build menu, i.e. Build -> Regular Debug You're right about the compilers, at least the C compiler, which is the only one I've used extensively. I keep finding instances in the compiled code like: @1 move (a7)+,d0 @2 beq @3 @3 move on... Come on, Apple, what's this garbage? But, thank god, at least it's close to ANSI. ============================================================================== | The Insidious Uncle BoBo | ------------------------------------------------------------------------------ | "As I see it, my friends can access my private | | members in a public class..." | ============================================================================== | Eric Bowman -> | | ShitNet: bowman@reed.bitnet | | FarFromFreeNet: (503)234-7158 (Like I'll Really Answer) | | Disclaimer: "If my employer ever found out my opinions, well..." | /=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=
tim@hoptoad.uucp (Tim Maroney) (02/05/90)
In article <3566@odin.SGI.COM> shap@delrey.sgi.com (Jonathan Shapiro) writes: >One of the things that has always bothered me about MPW is that its >editor is hardwired in. Not really. You can use whatever editor you want (except possibly for Projector -- I haven't used it ye, so I don't know). The makefiles just look at mod dates. Now, in LightSpeed C, you're in a lot of trouble if you want to use another editor, but with MPW C, it's perfectly easy under MultiFinder. >I have used other editors, most recently vi and emacs, for a long >time, and I find that moving to the mouse every two seconds to correct >typos in the line above really cuts into my throughput. So learn to use the arrow keys! This is exactly the same way you move around in vi and emacs, after all. >Also, the mac >editor isn't programmable, so the hacks I have put together to do >sophisticated indenting, etc. can't be done there. How so? You can run both tools and scripts in the editor, and add your own keyboard shortcuts to do them if you like. There's not as much direct control over the text as in MLisp, but there's far more than in vi (which isn't really programmable, unless you count the ! command). You can give editor commands from scripts, and run tools which do whatever you want to the text. >I would be willing to write my own editor if the interface could be >published or if I could get it from Apple by asking for it. You can do it now. What's the problem? All that you have to use the MPW Shell for is a command line interpreter. Any editor will work with your makefiles. -- Tim Maroney, Mac Software Consultant, sun!hoptoad!tim, tim@toad.com "He goes on about the wailing and gnashing of teeth. It comes in one verse after another, and it is quite manifest to the reader that there is a certain pleasure in contemplating the wailing and gnashing of teeth, or else it would not occur so often." -- Bertrand Russell, "Why I Am Not a Christian"
shap@delrey.sgi.com (Jonathan Shapiro) (02/06/90)
Since Tim Maroney either didn't think about my request or assumes I'm foolish, let me expand on the editor problem. The essential problems with the MPW editor are twofold. First, it constantly makes me remove my hands from the home position on the keyboard. I am a computer-style touch typist (I type quickly, but not always accurately), and this reduces my effective throughput by at least a factor of five. Why? because there is no way to move up/down a line or left/right a character without reaching for either the mouse or the arrow keys. The arrow keys don't help. It isn't the distance to the mouse that's the problem. It's the fact that I must lift a hand, move it someplace else, then bring it back, all of which takes time and a mental reorientation to figure out what the hell I was up to. Even 'vi', which is pretty old as editors go, doesn't have this problem. This is a case where modality is appropriate; for some people the modality of moving the hand is worse than the modality of a modal interface. Second, the editor isn't programmable, which means that things like the indentation technology might best be described as primative, and a lot of things I have grown used to in more sophisitcated environments I must once again live without. So Tim suggests I use JOVE. Setting aside the issue of whether JOVE is a reasonable editor (I like it a lot better than vi, but the last time I used it it sure wasn't EMACS yet), this doesn't address the problem of integration. One of the things that is very well done in the MPW environment is the fact that every window is a text editor window. I like the ability to compile a live file without the need to save it - it makes syntax errors cheap to fix, and it feels very good. Using JOVE I lose this capability. >>Also, the mac >>editor isn't programmable, so the hacks I have put together to do >>sophisticated indenting, etc. can't be done there. > >How so? You can run both tools and scripts in the editor, and add your >own keyboard shortcuts to do them if you like. I encourage you to attempt to add a keyboard shortcut for "backwards character" without the use of a macro facility (it can be done). I encourage you to then try "page down", which can't be done even with a keyboard macro, and certainly can't be done with a shortcut. How about "next-window"? Indenting is most effective when interactive. The ability to run a tool to indent things after the fact just doesn't give the right kind of support. The editor should, if MPW is designed right, be a separate code resource(s), and should have a well-defined interface taht could be implemented by an alternative. I would be happy to try and do this myself and might even consider giving the results away (depending on the complexity) if I can get some help from Apple on implementing it. Jonathan Shapiro
d6maca@dtek.chalmers.se. (Martin Carlberg) (02/06/90)
In article <1990Feb5.004034.6097@oracle.com> omullarn@oracle.com (Oliver Mullarney) writes: >As for debugging tools in MacsBug, I have had to do that (not very often, >though even once is too often...) - try debugging an MPW tool using SADE >and you will realise that life is just too short. What? I have never had any problems debugging MPW tools with SADE, I do that all the time. Should I have problems? - Martin Carlberg - Chalmers University of Technology, Gothenburg, Sweden
wilson@csli.Stanford.EDU (Nathan Wilson) (02/06/90)
shap@delrey.sgi.com (Jonathan Shapiro) writes: > The essential problems with the MPW editor are twofold. > First, it constantly makes me remove my hands from the home position > on the keyboard. I am a computer-style touch typist (I type quickly, > but not always accurately), and this reduces my effective throughput > by at least a factor of five. > ... Actually, I've found the MPW editor to be only slightly less programmable than Fred in Allegro Common Lisp or the gnuemacs editor. Granted it isn't truely programmable, but if you're willing to deal with a bit of gross syntax you can go a long way. > I encourage you to attempt to add a keyboard shortcut for "backwards > character" without the use of a macro facility (it can be done). I > encourage you to then try "page down", which can't be done even with a > keyboard macro, and certainly can't be done with a shortcut. In the MPW Shell it is trival: addmenu Extras 'Back One' 'find <option>-6<option>-!1 {active}' Adding a command equivalent for this is trivial. I personally use QuicKeys so I can bind the menu item to <control>-B. For this case I actually just bind <control>-B to left-arrow. Anyway, with this and a few similar hacks I can almost believe that I'm using emacs. It would be nice if I didn't have to use QuicKeys for changing the key bindings but I can live with it. If anybody's interested in my hacks I would be happy to post them. As for "page down", I haven't tried it but it shouldn't be all that hard let's try: addmenu Extras 'Next Page/<option>-v' <option>-d '(evaluate "`sizewindow {active}`" =~ <option>-d /<option>-x[0-9]+ ([0-9]+)<option>-r1<option>-x/) <option>-d > dev:null ; <option>-d (evaluate "`format {active}`" =~ <option>-d /<option>-x-s ([0-9]+)<option>-r2 <option>-x/) <option>-d > dev:null ; <option>-d find !`evaluate {<option>-r1} div ({<option>-r2} + 2)`<option>-j {active}' Hmm, seems to work pretty well for me. By way of explanation: The first line adds the menu, and menu item and gives it the command equivalent <command><option>-v. The second, third and fourth lines extract the horizontal window size from the result of SizeWindow. The fifth line uses the horizontal window size to compute the number of lines per page and then moves to the line on page below the current selection. You might be able to find a better way to compute the line height than just adding a fudge factor (in this case 2) to the {fontsize} but this is at least close. Also you probably would want to subtract the height scrollbar of the horizontal scrollbar from the window height. Actually this isn't 'true' next page since it goes from the current selection rather than what is currently visible in the window. On the other hand, gnuemacs doesn't even make this distinction to I think we can finesse it. I can't find anything that gives you the visible region rather than the selection region. It seems that these should be separately controllable from tools. > How about "next-window"? RTFM, unless you mean something other than RotateWindows. You can also get the back window to the front with: (evaluate {windows} =~ /([<option>-l,]+)<option>-r1,<option>-x/) <option>-d > dev:null ; <option>-d open {<option>-r1} > Indenting is most effective when interactive. The ability to run a > tool to indent things after the fact just doesn't give the right kind > of support. This seems more of a problem, but as I haven't needed anything weird in this regard it hasn't bothered me. I'm just thankful that it doesn't impose an indenting discipline like LSP and I presume LSC. > The editor should, if MPW is designed right, be a separate code > resource(s), and should have a well-defined interface that could be > implemented by an alternative. I haven't hacked any tools so I don't know whether this is already possible, but it seems that just some facility that allowed tools to catch events would be all you would need. Nathan Wilson Teleos Research nathan%teleos.com@ai.sri.com
ccc_ldo@waikato.ac.nz (02/06/90)
Subject: Re: MPW wish list References: <1990Jan23.065751.29303@peace.waikato.ac.nz>, <1990Jan25.003918.2359@cs.UAlberta.CA> In <1990Jan25.003918.2359@cs.UAlberta.CA>, simon@alberta.uucp (Simon Tortike) suggests, as an alternative to the command sequence Entab -d 8 -t 4 <"{Target}" >"{Target}" that I use Entab -d 8 -t 4 < "{Target}" | Catenate > "{Target}" instead. Fine, this works now. But it might not work under a future multitasking version of MPW. I want a less kludgy way of doing it.
bowman@reed.UUCP (Eric Bowman) (02/06/90)
I've never had any problems debugging Tools in SADE either. (Thank god for the instructions in the NewUser file...) ============================================================================== | The Insidious Uncle BoBo | ------------------------------------------------------------------------------ | "As I see it, my friends can access my private | | members in a public class..." | ============================================================================== | Eric Bowman -> | | ShitNet: bowman@reed.bitnet | | FarFromFreeNet: (503)234-7158 (Like I'll Really Answer) | | Disclaimer: "If my employer ever found out my opinions, well..." | /=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=
philip@Kermit.Stanford.EDU (Philip Machanick) (02/06/90)
I find this discussion a bit disturbing. There's a consistant thread that says, "Why isn't MPW more like unix?" My question is, "Why is it so much like unix?" I've used more programming environments than I care to remember, and the LS environments are by far the biggest step forward in my experience. MPW doesn't add anything to the state of the art; the LS environments do for personal computing programming what the Mac did for the user. What I would like to know is how an environment of the LS variety could best be extended to provide the functionality of unix, without losing its low learning threshold. My first thought is inspiration is to be found more in environments like Smalltalk and Interlisp, which are more obvious influences on the Mac style of computing. Philip Machanick philip@pescadero.stanford.edu
omullarn@oracle.oracle.com (Oliver Mullarney) (02/07/90)
In article <1990Feb5.204443.20878@mathrt0.math.chalmers.se> d6maca@dtek.chalmers.se (Martin Carlberg) writes: >In article <1990Feb5.004034.6097@oracle.com> omullarn@oracle.com (Oliver Mullarney) writes: >>As for debugging tools in MacsBug, I have had to do that (not very often, >>though even once is too often...) - try debugging an MPW tool using SADE >>and you will realise that life is just too short. > >What? I have never had any problems debugging MPW tools with SADE, I do that >all the time. Should I have problems? > I didn't say I had problems - I said life was too short. It just takes a goddamn age to step through your tools source when you are 'debugging' MPW. Sometimes I just convert my tool to an application with hardwired command line parameters so I can debug it as an application, and save my old age for sitting by the fire on a rocking chair, not waiting for SADE to return from a STEP command. BTW - has anyone else noticed the very strange selection behaviour when you start debugging a running MPW. OK - you have MPW running with the command line to launch your MPW tool sitting there in the WorkSheet. Start up SADE; do the usual: Directory.../Source.../Target 'MPW Shell' using 'MyTool.SYM' etc. Then: Launch 'MPW Shell' Now try to select the line with your tool's launch command on it by triple clicking. The results are ... interesting. Someone else said they would like to be able to split windows? Yup - that would be nice, and as far as I have heard, is scheduled for the next release. A decent 'lib' tool, however, is not. :-( Oliver | Oliver Mullarney | "I have knowledge of Digital Watches, and soon I | | Oracle Corporation | shall have knowledge of Video Cassette Recorders" | | omullarn@oracle.com | Time Bandits | --------------- "Universally acknowledged to work just fine" ----------------
macduff@cbnewse.ATT.COM (Roger R. Espinosa) (02/08/90)
In article <1990Feb6.065019.22828@Neon.Stanford.EDU>, philip@Kermit.Stanford.EDU (Philip Machanick) writes: > I find this discussion a bit disturbing. There's a consistant thread > that says, "Why isn't MPW more like unix?" > > My question is, "Why is it so much like unix?" Well, I grew up on UNIX, so I don't mind the UNIX-like nature of it. :-) > > I've used more programming environments than I care to remember, and the > LS environments are by far the biggest step forward in my experience. This is a really subjective matter. For me, I couldn't do a *thing* in the LSP environment. Don't ask me why. When I first booted up the thing (and I *was* *really* excited about using LSP, let me tell you...), I thought the editor was really nice, the way it automatically indented and high-lited everything. This, for some reason, started working against me: I found that (for *me*. I'm not sure if this is reproduceable, or why I kept getting it) if I kept doing a "semi-colon <return>", just like I'd do in vi, the editor would stop accepting input after 66 lines or so. > MPW doesn't add anything to the state of the art; the LS environments do On the contrary. I'm sitting here at work using UNIX and wishing that it was more like MPW in some ways. I really appreciate the MPW editor/windows, which is very similar to MacScheme's environment. > for personal computing programming what the Mac did for the user. What I > would like to know is how an environment of the LS variety could best be > extended to provide the functionality of unix, without losing its low > learning threshold. My first thought is inspiration is to be found more I'm using TML Pascal with MPW right now, and I haven't had to open the MPW manual beyond installing it, for most things. The TML project menu takes care of setting up the compilation lines for me, so there was no learning curve there. In many ways, I don't think using TML is any different than using LSP (no real interfact change via menus), except I like the editor more. NOTE: I'm not trying to trash LSP. My experiences with LSP were very frustrating to *me*, but I realize that a lot of the frustration was from me not being to mesh with the LSP environment. What makes MPW work for me, aside from the zillion and one times I"ve said "I like the editor better," is that you can make different types of tools (scripts, tools, and applications), so prototyping (seems to me) is easier, and the tools can interact with each other. It didn't seem that way (to me) in LSP; I've never seen LSC. I think that to get the power of UNIX, you have to accept some sort of learning threshold. Complex makefiles and the ilk don't translate well into menus, I don't think. The "only-menu" mode may not be acceptable, because it's too focused of an environment. Smalltalk, and MacScheme (I'd guess) differ from traditional languages, though, in that in these environments, there's no fine line between the environment and the language: in MacScheme, for instance, many of the menu items were merely calling MacScheme procedures. MPW (or LSP/C...) aren't calling Pascal/ C/whatever procedures when you do their menu items, or commands. > Philip Machanick > philip@pescadero.stanford.edu Roger rre@ihlpn.ATT.COM DISCLAIMER: Heck, I'm not trying to be an expert or anything on this subject. Obviously, the LSP/C environemnts *must* work for people, or else there couldn't be nice big ads in MacWorld about all the products made with them. Believe me, when I look at the price of MPW, I wish it would work for me, too :-(
cy@dbase.A-T.COM (Cy Shuster) (02/08/90)
In article <1990Jan25.191441.26280@oracle.com> omullarn@oracle.com (Oliver Mullarney) writes: >- Incremental linking would be nice. Waiting 15 minutes to relink after > a change of one object file is very boring. Hear, hear! Especially with virtual memory coming, applications are growing larger all the time... and the links, exponentially! --Cy--
pasek@ncrcce.StPaul.NCR.COM (Michael A. Pasek) (02/09/90)
In <1990Feb6.065019.22828@Neon.Stanford.EDU> Philip Machanick writes: >I find this discussion a bit disturbing. There's a consistant thread >that says, "Why isn't MPW more like unix?" >My question is, "Why is it so much like unix?" >[remainder deleted] Funny, I was about to ask the same question when Philip's article showed up. I can guess, though -- Apple hired a bunch of (then) recent CompSci grads to do programming for them about 4 or 5 years ago. M. A. Pasek Software Development NCR Comten, Inc. (612) 638-7668 MNI Development 2700 N. Snelling Ave. pasek@c10sd3.StPaul.NCR.COM Roseville, MN 55113
erics@eleazar.dartmouth.edu (Eric Schlegel) (02/09/90)
>In article <1990Jan25.191441.26280@oracle.com> omullarn@oracle.com (Oliver Mullarney) writes: >>- Incremental linking would be nice. Waiting 15 minutes to relink after >> a change of one object file is very boring. > Even better - incremental compilation. Forget to put a semicolon after one line in your 2000 line MacApp include file? No problem. The compiler recompiles _only that one line_ instead of compiling the entire program. This can be done, but it requires a significant amount of compiler rewrite. The basic idea is for the compiler to keep a record of all variable, type, function declarations, etc, where lines begin and end in the file, and what variables/functions are referenced by each statement in the program. Then by determining which source lines changed, you determine which references may have changed (sort of like recalcing a spreadsheet) and only recompile the affected lines. I read any article about a year ago saying that the MPW team was looking into incremental compilation. I've no idea if anything's coming, but it sure would be nice. -eric -- Eric Schlegel '90 | "Never underestimate the bandwidth of a eric.schlegel@dartmouth.edu | station wagon full of tapes."
drc@claris.com (Dennis Cohen) (02/09/90)
erics@eleazar.dartmouth.edu (Eric Schlegel) writes: >>In article <1990Jan25.191441.26280@oracle.com> omullarn@oracle.com (Oliver Mullarney) writes: >>>- Incremental linking would be nice. Waiting 15 minutes to relink after >>> a change of one object file is very boring. >> >Even better - incremental compilation. Forget to put a semicolon after one >line in your 2000 line MacApp include file? No problem. The compiler recompiles >_only that one line_ instead of compiling the entire program. I think that a better solution for such simple errors would be one that was in one of the first Pascal compilers I ever used (1979). The University of Wisconsin's Univac 1100 compiler gave a warning message with the context and continued to compile, treating the source as though the semicolon were there. If Fischer and LeBlanc could do that on a Univac 11 or 12 years ago, it seems that we should have compilers that do that now. Some errors were non- recoverable; however, I've missed that "friendliness" in every compiler I've used since then. Dennis Cohen Claris Corp. **************************************************** Disclaimer: Any opinions expressed above are _MINE_! ****************************************************
dorner@pequod.cso.uiuc.edu (Steve Dorner) (02/09/90)
In article <10865@claris.com> drc@claris.com (Dennis Cohen) writes: >The University of >Wisconsin's Univac 1100 compiler gave a warning message with the context and >continued to compile, treating the source as though the semicolon were there. The other way to look at that is, if a compiler knows there ought to be a semicolon at some point in your program, then the semicolon could be safely removed from the language definition, as not adding anything meaningful to the language. :-) Seriously, this really isn't an option in C, where just about anything is possible just about anywhere; there's very little a compiler could infer. Thus there are so few cases where the thing might be useful that it's not worth doing. (My very favorite C compiler inference was the way some UNIX compilers disambiguated declarations like: int i=-1; Since "=-" used to be how one wrote "-=", the compiler had a choice. What it did was: int i =- 1; # warning, old fashioned assignment operator # syntax error in initializer (illegal operator) I found this an amusingly wrongheaded thing to do in the name of backwards compatibility.) -- Steve Dorner, U of Illinois Computing Services Office Internet: s-dorner@uiuc.edu UUCP: {convex,uunet}!uiucuxc!dorner
isr@rodan.acs.syr.edu ( ISR group account) (02/09/90)
In article <19240@dartvax.Dartmouth.EDU> erics@eleazar.dartmouth.edu (Eric Schlegel) writes: >>In article <1990Jan25.191441.26280@oracle.com> omullarn@oracle.com (Oliver Mullarney) writes: >>>- Incremental linking would be nice. Waiting 15 minutes to relink after >>> a change of one object file is very boring. > >Even better - incremental compilation. Forget to put a semicolon after one >line in your 2000 line MacApp include file? No problem. The compiler recompile >_only that one line_ instead of compiling the entire program. Maybe incremental compiling down to the line level would be a bit difficult, but certainly having it at the routine level would not be that difficult. That way as long as arguments, return values, and globals all had the same TYPE as before, all you have to update are the address's whereever they where referenced. (just stick the new routine after the last old one, update all addresses) Of course, you'd only want to do this a few times before you would do a real compile/link to prevent nightmares from ocurring. -- Mike Schechter, Computer Engineer,Institute Sensory Research, Syracuse Univ. InterNet: isr@rodan.acs.syr.edu Bitnet: SENSORY@SUNRISE
matthews@eleazar.dartmouth.edu (Jim Matthews) (02/10/90)
In article <10865@claris.com> drc@claris.com (Dennis Cohen) writes: >I think that a better solution for such simple errors would be one that was >in one of the first Pascal compilers I ever used (1979). The University of >Wisconsin's Univac 1100 compiler gave a warning message with the context and >continued to compile, treating the source as though the semicolon were there. Mac compilers could go a long way towards being more helpful in dealing with errors. My pet peeve is when Think C tells me that a function call is incompatible with a prototype, without telling me which parameter is wrong or what type it was expecting. The compiler has that information, and it could do much better than issue "wrong, guess again" error messages. Jim Matthews Dartmouth Software Development
erics@eleazar.dartmouth.edu (Eric Schlegel) (02/10/90)
In article <10865@claris.com> drc@claris.com (Dennis Cohen) writes: >erics@eleazar.dartmouth.edu (Eric Schlegel) writes: >>Even better - incremental compilation. Forget to put a semicolon after one >>line in your 2000 line MacApp include file? No problem. The compiler recompiles >>_only that one line_ instead of compiling the entire program. > >I think that a better solution for such simple errors would be one that was >in one of the first Pascal compilers I ever used (1979). The University of >Wisconsin's Univac 1100 compiler gave a warning message with the context and >continued to compile, treating the source as though the semicolon were there. That would also be a nice feature to have. Incremental compilation really gets nice, though, when you consider this: change the implementation of a function, and only the function is recompiled. Change the function interface, and the compiler is smart enough to recompile the function and every statement that calls the function - but nothing else. And another wish for MPW - I want a faster editor! The editor is very easy to type ahead of, even on a II-class machine. This is especially a problem when the text displayed in a window is wider than the window - this seems to slow down the editor drastically. -eric -- Eric Schlegel '90 | "Never underestimate the bandwidth of a eric.schlegel@dartmouth.edu | station wagon full of tapes."
omullarn@oracle.oracle.com (Oliver Mullarney) (02/10/90)
In article <10865@claris.com> drc@claris.com (Dennis Cohen) writes: > >I think that a better solution for such simple errors would be one that was >in one of the first Pascal compilers I ever used (1979). The University of >Wisconsin's Univac 1100 compiler gave a warning message with the context and >continued to compile, treating the source as though the semicolon were there. >If Fischer and LeBlanc could do that on a Univac 11 or 12 years ago, it seems >that we should have compilers that do that now. Some errors were non- >recoverable; however, I've missed that "friendliness" in every compiler I've >used since then. > This does lead to some questions - What counts as a 'simple' error? There are many cases where there are a number of possible corrections - forgetting a semi-colon may be simply that, or it may be that the remainder of a statement was forgotten or deleted by accident. Matching parenthesis in a logical condition can be done any number of ways, and semantic knowledge is necessary to do it right. That's why _we_ are still writing software, not Macs. :-) How should compilers react to such errors? Guess? Should the compiler modify the source file? If it does, then you will have to go back and undo the changes if the compiler screwed up. However, if you don't notice the warning, you will be left with a source file which compiles correctly, even though it does not do what you intended. If the compiler does not alter the source, then you will have to remember to go back and do that, thereby changing the modification date and making the newly produced application out of date with the source. Another recompile and link... As systems get more automated, one has to very careful what one allows these systems to do. Most of them are very stupid, especially compilers (or have I just been using MPW C for too long :-)). Just look at the error messages you get all the time - these machines are _really_ lost, and I for one am not going to trust them to get me out of the woods. Oliver | Oliver Mullarney | "Death wears a big hat, | | Oracle Corporation | 'cos he's a big bloke" | | omullarn@oracle.com | Tokyo Storm Warning, Elvis Costello | --------------- "Universally acknowledged to work just fine" ----------------
d88-jwa@nada.kth.se (Jon Watte) (02/13/90)
In article <19265@dartvax.Dartmouth.EDU> matthews@eleazar.dartmouth.edu (Jim Matthews) writes: >Mac compilers could go a long way towards being more helpful in dealing >with errors. My pet peeve is when Think C tells me that a function call >is incompatible with a prototype, without telling me which parameter is _My_ pet peeve is that THINK C halts at the first error encountered. It could give a list of errors, like the link error list, and have a "Next Error" menu item / key (Like EMACS !) h+ -- --- Stay alert ! - Trust no one ! - Keep your laser handy ! --- h+@nada.kth.se == h+@proxxi.se == Jon Watte longer .sig available on request
pepke@gw.scri.fsu.edu ("Eric Pepke") (02/13/90)
In article <2930@draken.nada.kth.se> d88-jwa@nada.kth.se (Jon Watte) writes: > _My_ pet peeve is that THINK C halts at the first error encountered. > It could give a list of errors, like the link error list, and have a > "Next Error" menu item / key (Like EMACS !) De gustibus non disputandum est. Personally, I like this feature. Except when I am converting a large code from some other source, I seldom get more than one or two errors in a file. Part of the reason for this is that Think C makes checking syntax quite painless, so I do it often. I have used boatloads of other, more traditional compilers, both C and Pascal, on a variety of computers. When I see a cascading list of error messages, nearly always there is only one real error, and the rest are artifacts of the compiler's error recovery algorithm. It is sometimes easy to see which ones are specious by comparing the descriptions, but I would rather not be bothered with the red herrings. Your mileage may vary. Now, if they would only improve the code generation... Eric Pepke INTERNET: pepke@gw.scri.fsu.edu Supercomputer Computations Research Institute MFENET: pepke@fsu Florida State University SPAN: scri::pepke Tallahassee, FL 32306-4052 BITNET: pepke@fsu Disclaimer: My employers seldom even LISTEN to my opinions. Meta-disclaimer: Any society that needs disclaimers has too many lawyers.
kaufman@Neon.Stanford.EDU (Marc T. Kaufman) (02/15/90)
In article <2028@rodan.acs.syr.edu> isr@rodan.acs.syr.edu (Michael S. Schechter - ISR group account) writes: >In article <19240@dartvax.Dartmouth.EDU> erics@eleazar.dartmouth.edu (Eric Schlegel) writes: -->In article <1990Jan25.191441.26280@oracle.com> omullarn@oracle.com (Oliver Mullarney) writes: --->- Incremental linking would be nice. Waiting 15 minutes to relink after ---> a change of one object file is very boring. ->Even better - incremental compilation. Forget to put a semicolon after one ->line in your 2000 line MacApp include file? No problem. The compiler recompile ->_only that one line_ instead of compiling the entire program. >Maybe incremental compiling down to the line level would be a bit difficult, >but certainly having it at the routine level would not be that difficult. >That way as long as arguments, return values, and globals all had the >same TYPE as before, all you have to update are the address's whereever >they where referenced. Incremental (routine level) compilation, with insertion of the new routine INTO A RUNNING PROGRAM is available with Jasik's "The Debugger". The Incremental Build System lets you stop the program, do a side-door exit to MPW, recompile the offending routine, link it back into the program, and continue execution. Especially nice when it takes a long time to execute down to the problem area. All that and source level debugging too. Marc Kaufman (kaufman@Neon.stanford.edu) [a user of The Debugger and IBS]
peirce@claris.com (Michael Peirce) (02/16/90)
In article <1990Feb9.220233.4211@oracle.com> omullarn@oracle.com (Oliver Mullarney) writes: >In article <10865@claris.com> drc@claris.com (Dennis Cohen) writes: >> >>I think that a better solution for such simple errors would be one that was >>in one of the first Pascal compilers I ever used (1979). The University of >>Wisconsin's Univac 1100 compiler gave a warning message with the context and >>continued to compile, treating the source as though the semicolon were there. >>If Fischer and LeBlanc could do that on a Univac 11 or 12 years ago, it seems >>that we should have compilers that do that now. Some errors were non- >>recoverable; however, I've missed that "friendliness" in every compiler I've >>used since then. >> >This does lead to some questions - >What counts as a 'simple' error? There are many cases where there are a number >of possible corrections - forgetting a semi-colon may be simply that, or it >may be that the remainder of a statement was forgotten or deleted by accident. >Matching parenthesis in a logical condition can be done any number of ways, >and semantic knowledge is necessary to do it right. That's why _we_ are >still writing software, not Macs. :-) > >How should compilers react to such errors? Guess? > >Should the compiler modify the source file? If it does, then you will have to >go back and undo the changes if the compiler screwed up. However, if you >don't notice the warning, you will be left with a source file which compiles >correctly, even though it does not do what you intended. If the compiler >does not alter the source, then you will have to remember to go back and do >that, thereby changing the modification date and making the newly produced >application out of date with the source. Another recompile and link... > >As systems get more automated, one has to very careful what one allows these >systems to do. Most of them are very stupid, especially compilers (or have I >just been using MPW C for too long :-)). Just look at the error messages you >get all the time - these machines are _really_ lost, and I for one am not >going to trust them to get me out of the woods. Back in the old days (two years ago :-) ) back at DEC we used an Ada compiler that made these types of suggestions about fixing source code. When we were using DEC's Language Sensitive Editor (LSE) the compiler would tell LSE about the suggested change to the source. LSE would then show you the change and ask you if you wanted to keep it or dump it. Because of the tight coupling of the compiler and LSE it all worked out very nicely. I don't see why MPW couldn't be enhanced to provide this type of thing -- just a little more work by the developers! :-) Claris Corp. | Michael R. Peirce -------------+-------------------------------------- | 5201 Patrick Henry Drive MS-C4 | Box 58168 | Santa Clara, CA 95051-8168 | (408) 987-7319 | AppleLink: peirce1 | Internet: peirce@claris.com | uucp: {ames,decwrl,apple,sun}!claris!peirce