\begindata{text822, 0} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po3.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 3 May 1993 12:04:40 -0400 (EDT) Received: from andrew.cmu.edu via qmail ID ; Mon, 3 May 1993 12:03:31 -0400 (EDT) If-Type-Unsupported: send Received: from po3.andrew.cmu.edu via qmail ID ; Mon, 3 May 1993 11:57:47 -0400 (EDT) Received: from thumper.bellcore.com by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Mon, 3 May 93 11:57:20 EDT Received: from greenbush.bellcore.com by thumper.bellcore.com (4.1/4.7) id for info-andrew+@andrew.cmu.edu; Mon, 3 May 93 11:57:15 EDT Received: by greenbush.bellcore.com (4.1/4.7) id for info-andrew+@andrew.cmu.edu; Mon, 3 May 93 11:57:27 EDT Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.greenbush.galaxy.sun4.41 via MS.5.6.greenbush.galaxy.sun4_41; Mon, 3 May 1993 11:57:26 -0400 (EDT) Message-Id: Date: Mon, 3 May 1993 11:57:26 -0400 (EDT) From: Nathaniel Borenstein Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII To: info-andrew+@andrew.cmu.edu Subject: Andrew oddity Why is it that when I tell twm to redisplay all windows (f.refresh) all the windows EXCEPT the Andrew windows get redrawn, but I have to explicitly type ^L to each Andrew window? -- Nathaniel \enddata{text822, 0} \begindata{text822, 1819} Return-path: X-Andrew-Authenticated-as: 5904;andrew.cmu.edu;Robert Andrew Ryan Received: from atk.itc.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 3 May 1993 14:05:29 -0400 (EDT) Received: from atk.itc.cmu.edu via qmail ID ; Mon, 3 May 1993 14:04:00 -0400 (EDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.atk.itc.cmu.edu.rs.aix31 via MS.5.6.atk.itc.cmu.edu.rs_aix31; Mon, 3 May 1993 14:03:59 -0400 (EDT) Message-ID: <4ftJuD_00WoiFBhUVr@andrew.cmu.edu> Date: Mon, 3 May 1993 14:03:59 -0400 (EDT) From: Robert Andrew Ryan X-Andrew-Message-Size: 632+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: Info-Andrew Subject: Re: Andrew oddity In-Reply-To: References: \begindata{text,538773440} \textdsversion{12} \template{messages} \excerptedcaption{Excerpts from internet.other.info-andrew: 3-May-93 Andrew oddity Nathaniel Borenstein@thu (193*)} \quotation{Why is it that when I tell twm to redisplay all windows (f.refresh) all the windows EXCEPT the Andrew windows get redrawn, but I have to explicitly type ^L to each Andrew window? -- Nathaniel } It's because ATK uses backing store. Alas, few if any window managers bother to really make sure the windows redraw. (Say by sending an expose event to all the windows.) You could try turning off backing store with the preference *.UseBackingStore: no. (I don't recommend it though, text redraw is fairly painful for example...) -Rob \enddata{text,538773440} \enddata{text822, 1819} \begindata{text822, 3766} Return-path: X-Andrew-Authenticated-as: 8158;andrew.cmu.edu;David Anderson Received: from carnot.itc.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 3 May 1993 14:09:20 -0400 (EDT) Received: from carnot.itc.cmu.edu via qmail ID ; Mon, 3 May 1993 14:06:48 -0400 (EDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.carnot.itc.cmu.edu.rs.aix31 via MS.5.6.carnot.itc.cmu.edu.rs_aix31; Mon, 3 May 1993 14:06:45 -0400 (EDT) Message-ID: <0ftJwpG00hYtAQ80Vh@andrew.cmu.edu> Date: Mon, 3 May 1993 14:06:45 -0400 (EDT) From: David Anderson X-Andrew-Message-Size: 400+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: Nathaniel Borenstein Subject: Re: Andrew oddity CC: Info-Andrew In-Reply-To: References: \begindata{text,539520524} \textdsversion{12} \template{messages} \excerptedcaption{Excerpts from internet.other.info-andrew: 3-May-93 Andrew oddity Nathaniel Borenstein@thu (193*)} \quotation{Why is it that when I tell twm to redisplay all windows (f.refresh) all }\quotation{the windows EXCEPT the Andrew windows get redrawn, but I have to }\quotation{explicitly type ^L to each Andrew window? -- Nathaniel } Because ATK applications use backing store (and twm doesn't force such apps to redraw themselves). --david \enddata{text,539520524} \enddata{text822, 3766} \begindata{text822, 5557} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po2.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 3 May 1993 15:02:16 -0400 (EDT) Received: from andrew.cmu.edu via qmail ID ; Mon, 3 May 1993 15:00:21 -0400 (EDT) If-Type-Unsupported: send Received: from po3.andrew.cmu.edu via qmail ID ; Mon, 3 May 1993 14:59:02 -0400 (EDT) Received: from thumper.bellcore.com by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Mon, 3 May 93 14:58:30 EDT Received: from guppylake (guppylake.bellcore.com) by thumper.bellcore.com (4.1/4.7) id for dba+@andrew.cmu.edu; Mon, 3 May 93 14:58:23 EDT Received: by guppylake (4.1/4.7) id for info-andrew+@andrew.cmu.edu; Mon, 3 May 93 14:58:54 EDT Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.guppylake.noname.sun4.41 via MS.5.6.guppylake.noname.sun4_41; Mon, 3 May 1993 14:58:53 -0400 (EDT) Message-Id: Date: Mon, 3 May 1993 14:58:53 -0400 (EDT) From: Nathaniel Borenstein X-Andrew-Message-Size: 450+0 Mime-Version: 1.0 Content-Type: text/richtext; charset=US-ASCII Content-Transfer-Encoding: quoted-printable To: David Anderson Subject: Re: Andrew oddity Cc: Info-Andrew In-Reply-To: <0ftJwpG00hYtAQ80Vh@andrew.cmu.edu> References: <0ftJwpG00hYtAQ80Vh@andrew.cmu.edu> Excerpts from mail: 3-May-93 Re: Andrew oddity David Anderson@a= ndrew.cm (400+0) Because ATK applications use backing store (and twm doesn't force suc= h apps to redraw themselves). OK, that's a good answer, up to a point. Now it sounds like a twm bug rather = than an Andrew bug. Why doesn't twm do this? The fact that they're using bac= king store doesn't mean they can't ever get their display clobbered, e.g. by a= console message.... -- Nathaniel \enddata{text822, 5557} \begindata{text822, 7986} Return-path: X-Andrew-Authenticated-as: 8158;andrew.cmu.edu;David Anderson Received: from carnot.itc.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 3 May 1993 15:38:28 -0400 (EDT) If-Type-Unsupported: send Received: from carnot.itc.cmu.edu via qmail ID ; Mon, 3 May 1993 15:36:58 -0400 (EDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.carnot.itc.cmu.edu.rs.aix31 via MS.5.6.carnot.itc.cmu.edu.rs_aix31; Mon, 3 May 1993 15:36:54 -0400 (EDT) Message-ID: Date: Mon, 3 May 1993 15:36:54 -0400 (EDT) From: David Anderson X-Andrew-Message-Size: 1004+0 Content-Type: X-BE2; 12 To: Nathaniel Borenstein Subject: Re: Andrew oddity CC: Info-Andrew In-Reply-To: References: <0ftJwpG00hYtAQ80Vh@andrew.cmu.edu> \begindata{text,539520524} \textdsversion{12} \template{messages} What twm effectively does is to mark every window as damaged, in a way that causes the X server to refresh them from backing store (if any), or to redraw them (if not). You're right: this doesn't always clean up the display because in some cases the spooj finds its way into the backing store. The reason twm hasn't been fixed is probably because backing store is only very rarely used -- this is another one of those cases where ATK is an oddball (but for good reasons). (BTW, whether or not console messages screw up the backing store depends on the implementation. Whizzy servers don't back up all/any of the uncovered pixels until they become covered, which does allow console messages to wind up in the backing store -- but I'm not sure that all servers use this optimization. I remember a time when completely uncovered windows had no off-screen buffer, but once they were the least bit obscured they went to full off-screen buffering. I've since lost track of what the MIT server does.) --david \enddata{text,539520524} \enddata{text822, 7986} \begindata{text822, 10413} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 3 May 1993 15:57:36 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Mon, 3 May 1993 15:56:40 -0400 (EDT) If-Type-Unsupported: send Received: from po3.andrew.cmu.edu via qmail ID ; Mon, 3 May 1993 15:51:07 -0400 (EDT) Received: from thumper.bellcore.com by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Mon, 3 May 93 15:50:42 EDT Received: from guppylake (guppylake.bellcore.com) by thumper.bellcore.com (4.1/4.7) id for dba+@andrew.cmu.edu; Mon, 3 May 93 15:50:33 EDT Received: by guppylake (4.1/4.7) id for info-andrew+@andrew.cmu.edu; Mon, 3 May 93 15:51:04 EDT Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.guppylake.noname.sun4.41 via MS.5.6.guppylake.noname.sun4_41; Mon, 3 May 1993 15:51:03 -0400 (EDT) Message-Id: Date: Mon, 3 May 1993 15:51:03 -0400 (EDT) From: Nathaniel Borenstein Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII To: David Anderson Subject: Re: Andrew oddity Cc: Info-Andrew In-Reply-To: References: <0ftJwpG00hYtAQ80Vh@andrew.cmu.edu> Sigh. Sounds like there's no easy fix. Oh, well.... Or is there a way to turn off the use of backing store, perchance? \enddata{text822, 10413} \begindata{text822, 12440} Return-path: X-Andrew-Authenticated-as: 8158;andrew.cmu.edu;David Anderson Received: from carnot.itc.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 3 May 1993 16:18:03 -0400 (EDT) Received: from carnot.itc.cmu.edu via qmail ID ; Mon, 3 May 1993 16:16:47 -0400 (EDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.carnot.itc.cmu.edu.rs.aix31 via MS.5.6.carnot.itc.cmu.edu.rs_aix31; Mon, 3 May 1993 16:16:44 -0400 (EDT) Message-ID: Date: Mon, 3 May 1993 16:16:44 -0400 (EDT) From: David Anderson X-Andrew-Message-Size: 112+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: Nathaniel Borenstein Subject: Re: Andrew oddity CC: Info-Andrew In-Reply-To: References: <0ftJwpG00hYtAQ80Vh@andrew.cmu.edu> \begindata{text,539520524} \textdsversion{12} \template{messages} \indent{\italic{Or is there a way to turn off the use of backing store, perchance? }} Of course! *.usebackingstore: no --david \enddata{text,539520524} \enddata{text822, 12440} \begindata{text822, 14063} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po5.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 3 May 1993 21:19:37 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Mon, 3 May 1993 21:16:07 -0400 (EDT) Received: from alpha.xerox.com by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Mon, 3 May 93 21:15:59 EDT Received: from holmes.parc.xerox.com ([13.1.100.162]) by alpha.xerox.com with SMTP id <11651>; Mon, 3 May 1993 18:15:38 PDT Received: by holmes.parc.xerox.com id <16134>; Mon, 3 May 1993 18:15:29 -0700 Received: from Messages.7.15.N.CUILIB.3.45.SNAP.NOT.LINKED.holmes.parc.xerox.com.sun4.41 via MS.5.6.holmes.parc.xerox.com.sun4_41; Mon, 3 May 1993 18:15:21 -0700 (PDT) Message-Id: Date: Mon, 3 May 1993 18:15:21 PDT Sender: Bill Janssen From: Bill Janssen To: David Anderson , Nathaniel Borenstein Subject: Re: Andrew oddity Cc: Info-Andrew In-Reply-To: References: <0ftJwpG00hYtAQ80Vh@andrew.cmu.edu> Excerpts from ext.andrew: 3-May-93 Re: Andrew oddity Nathaniel Borenstein@thu (124*) > Sigh. Sounds like there's no easy fix. Oh, well.... > Or is there a way to turn off the use of backing store, perchance? Wouldn't it be nicer to fix twm, and send the changes back to the X Consortium? Backing store is pretty nice to reduce context switching... In X11R5/src/clients/twm/menus.c, there's the following: case F_REFRESH: { XSetWindowAttributes attributes; unsigned long valuemask; valuemask = (CWBackPixel | CWBackingStore | CWSaveUnder); attributes.background_pixel = Scr->Black; attributes.backing_store = NotUseful; attributes.save_under = False; w = XCreateWindow (dpy, Scr->Root, 0, 0, (unsigned int) Scr->MyDisplayWidth, (unsigned int) Scr->MyDisplayHeight, (unsigned int) 0, CopyFromParent, (unsigned int) CopyFromParent, (Visual *) CopyFromParent, valuemask, &attributes); XMapWindow (dpy, w); XDestroyWindow (dpy, w); XFlush (dpy); } break; case F_WINREFRESH: if (DeferExecution(context, func, Scr->SelectCursor)) return TRUE; if (context == C_ICON && tmp_win->icon_w) w = XCreateSimpleWindow(dpy, tmp_win->icon_w, 0, 0, 9999, 9999, 0, Scr->Black, Scr->Black); else w = XCreateSimpleWindow(dpy, tmp_win->frame, 0, 0, 9999, 9999, 0, Scr->Black, Scr->Black); XMapWindow(dpy, w); XDestroyWindow(dpy, w); XFlush(dpy); break; Why not change it to do what you want (Rob suggests explicitly sending an expose event to the client (which may not work with clients like xterm that don't accept client events, I think, whereas the current trick of creating, mapping, and unmapping a window over the window to be refreshed *will* work))? Bill \enddata{text822, 14063} \begindata{text822, 17924} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po3.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Tue, 4 May 1993 09:56:45 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Tue, 4 May 1993 09:49:09 -0400 (EDT) Received: from chx400.switch.ch by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew; Tue, 4 May 93 09:48:39 EDT X400-Received: by mta chx400.switch.ch in /PRMD=switch/ADMD=arcom/C=CH/; Relayed; Tue, 4 May 1993 15:47:50 +0200 X400-Received: by /PRMD=switch/ADMD=arcom/C=ch/; Relayed; Tue, 4 May 1993 15:47:23 +0200 X400-Received: by /PRMD=switch/ADMD=arcom/C=ch/; Relayed; Tue, 4 May 1993 15:47:06 +0200 Date: Tue, 4 May 1993 15:47:06 +0200 X400-Originator: wilde@komsys.tik.ethz.ch X400-Recipients: info-andrew@andrew.cmu.edu X400-Mts-Identifier: [/PRMD=switch/ADMD=arcom/C=ch/;930504154706] X400-Content-Type: P2-1984 (2) Content-Identifier: 704 From: Erik Wilde Message-Id: <704*/S=wilde/OU=komsys/OU=tik/O=ethz/PRMD=SWITCH/ADMD=ARCOM/C=CH/@MHS> To: "Andrew Mailing List at CMU" Subject: Andrew on SPARC Hello, I have a problem installing Andrew on SPARC 10 workstations running SunOS 4.1.3. The installation process successfully completed, but every Andrew application that I start dies just after coming up. I can see the window and text within it (for example, when I start help, I can see the help text), but just after displaying the text, the window disappears. Any suggestions or help? Thanks in advance, Erik Wilde (wilde@tik.ethz.ch) Swiss Federal Institute of Technology (ETH Zuerich) Laboratory of Computer Engineering and Networks (TIK) ETH-Zentrum, ETZ G61.2, CH - 8092 Zuerich Phone: +41-1-254-7009 Fax: +41-1-251-2504 \enddata{text822, 17924} \begindata{text822, 20085} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po3.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Fri, 7 May 1993 07:11:20 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Fri, 7 May 1993 07:11:08 -0400 (EDT) ReSent-Message-ID: Received: from neptun.kapsch.co.at by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Fri, 7 May 93 07:10:53 EDT Return-Path: @neptun.kapsch.co.at:fodatec@harare.kapsch.co.at Resent-Date: Fri, 7 May 1993 13:10 +0200 Received: from harare.kapsch.co.at [148.198.10.5] by neptun.kapsch.co.at with SMTP-OpenVMS via TCP/IP; Fri, 7 May 1993 13:10 +0200 Received: by harare.kapsch.co.at (4.1/SMI-4.1) id AA02327; Fri, 7 May 93 13:09:42 +0200 Received: from Messages.7.15.N.CUILIB.3.45.SNAP.NOT.LINKED.harare.kapsch.co.at.sun4.41 via MS.5.6.harare.kapsch.co.at.sun4_41; Fri, 7 May 1993 13:09:41 +0200 (MET DST) Message-Id: Date: Fri, 7 May 1993 13:09:41 +0200 (MET DST) From: Fodatec Project X-Andrew-Message-Size: 1120+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: info-andrew+@andrew.cmu.edu Subject: C++ Converters \begindata{text,1495960} \textdsversion{12} \template{messages} \excerptedcaption{Excerpts from info-andrew: 30-Apr-93 The Andrew View V. 2 No. 1 Wilfred.Hansen@cs.cmu.ed (36375+1)} \quotation{At present the Consortium staff is working full time on conversion of the source code to C++. } I hope the C++ feature 'private' is not used in the ATK conversion to C++. C++ 'private' is questionable from OO point of view. It limits reusability of a class, since private features are not inherited. One of the reasons why you often cannot subclass an ATK class, is because there is no override access to things in .c file of the superior class. You achieve the same if you use 'private' in C++. Another issue, *\bold{all}* features should be virtual in OO environment to enable dynamic binding. \quotation{Other class procedures are made static... }What is the reason of making some class procedures not virtual ? It is truism to say that C++ only will not make any system object oriented (this is even not easy with C++). So beware of losing the possibility to make ATK truly object oriented. This is probably the only and last chance for the toolkit to become so. Good luck with the conversion! -Kazio Zielinski fodatec@kapsch.co.at\ \enddata{text,1495960} \enddata{text822, 20085} \begindata{text822, 22971} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po2.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Fri, 7 May 1993 11:00:36 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Fri, 7 May 1993 10:59:57 -0400 (EDT) Received: from vnet.IBM.COM by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Fri, 7 May 93 10:59:34 EDT Received: from RCHLAND by vnet.IBM.COM (IBM VM SMTP V2R2) with BSMTP id 5678; Fri, 07 May 93 10:58:25 EDT Reply-To: "Blair Wyman" Received: by po1 (AIX 3.2/UCB 5.64/4.7) id for info-andrew+@andrew.cmu.edu; Fri, 7 May 1993 09:58:07 -0500 Received: via switchmail; Fri, 7 May 1993 09:58:06 -0500 (CDT) Received: from julia.rchland.ibm.com via qmail ID ; Fri, 7 May 1993 09:57:55 -0500 (CDT) Received: from julia.rchland.ibm.com via qmail ID ; Fri, 7 May 1993 09:57:53 -0500 (CDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.julia.rchland.ibm.com.rs.aix32 via MS.5.6.julia.rchland.ibm.com.rs_aix32; Fri, 7 May 1993 09:57:53 -0500 (CDT) Message-Id: Date: Fri, 7 May 1993 09:57:53 -0500 (CDT) From: Blair Wyman X-Andrew-Message-Size: 1317+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: info-andrew+@andrew.cmu.edu Subject: Re: C++ Converters In-Reply-To: References: \begindata{text,539449600} \textdsversion{12} \template{messages} \define{global } \excerptedcaption{Excerpts from ext.misc.info-andrew: 7-May-93 C++ Converters Fodatec Project@harare.k (1120+0)} \quotation{I hope the C++ feature 'private' is not used in the ATK conversion to C++. C++ 'private' is questionable from OO point of view. It limits reusability of a class, since private features are not inherited. One of the reasons why you often cannot subclass an ATK class, is because there is no override access to things in .c file of the superior class. You achieve the same if you use 'private' in C++. } \quotation{Another issue, *\bold{all}* features should be virtual in OO environment to enable dynamic binding. } Wow, this user's Smalltalk heritage comes shining through... I sincerely hope that \bold{all} the relevant features of C++ are used where appropriate -- \bold{private} included. I just completed 6 weeks of the best C++ instruction on the planet, I wouldn't try to do C++ without\bold{ private }or static procedure binding. With the decision to go with C++ come all of its attendant advantages and shortcomings -- but C++ makes a crummy Smalltalk. As someone once said \quotation{"I knew Smalltalk personally, and C++ --\bold{ you're no Smalltalk}"} Just my $0.02 worth. \typewriter{\smaller{ ___ _ Blair Wyman TieLine: 553-2891 ( /_) / _ ' _ IBM Rochester Internet: wyman@vnet.ibm.com __/__)_/_<_/_/_/_' RCHLAND(BLAIR) BITNET: wyman@vnet }}\enddata{text,539449600} \enddata{text822, 22971} \begindata{text822, 26493} Return-path: X-Andrew-Authenticated-as: 5904;andrew.cmu.edu;Robert Andrew Ryan Received: from atk.itc.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Fri, 7 May 1993 11:37:25 -0400 (EDT) Received: from atk.itc.cmu.edu via qmail ID ; Fri, 7 May 1993 11:35:03 -0400 (EDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.atk.itc.cmu.edu.rs.aix31 via MS.5.6.atk.itc.cmu.edu.rs_aix31; Fri, 7 May 1993 11:35:00 -0400 (EDT) Message-ID: <8fuc6YK00Woi1Yokg4@andrew.cmu.edu> Date: Fri, 7 May 1993 11:35:00 -0400 (EDT) From: Robert Andrew Ryan X-Andrew-Message-Size: 2831+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: Info-Andrew Subject: Re: C++ Converters In-Reply-To: References: \begindata{text,538919952} \textdsversion{12} \template{messages} \define{bold menu:[Font~1,Bold~10] attr:[FontFace Bold Int Set]} \define{quotation menu:[Region~4,Quotation~10] attr:[LeftMargin LeftMargin Inch 32768] attr:[RightMargin RightMargin Inch 32768] attr:[FontFace Italic Int Set]} \excerptedcaption{Excerpts from internet.other.info-andrew: 7-May-93 C++ Converters Fodatec Project@harare.k (1120+0)} \quotation{I hope the C++ feature 'private' is not used in the ATK conversion to C++. C++ 'private' is questionable from OO point of view. } I can't agree here, but private is not being used in the initial port. (For a very practical reason: there is no practical way to automatically decide what should be private. Or at least I couldn't think of one...) \excerptedcaption{Excerpts from internet.other.info-andrew: 7-May-93 C++ Converters Fodatec Project@harare.k (1120+0)} \quotation{Another issue, *\bold{all}* features should be virtual in OO environment to enable dynamic binding. } Again, I can't really agree, but all ATK methods are virtual in C++. (except macromethods... Again it would be impratical to auomatically decide what can/should be virtual without breaking existing code in the conversion. Enough code breaks in the conversion process anyway. :-( though in general it is compile time breakage.) \excerptedcaption{Excerpts from internet.other.info-andrew: 7-May-93 C++ Converters Fodatec Project@harare.k (1120+0)} \quotation{\quotation{Other class procedures are made static... }}\quotation{What is the reason of making some class procedures not virtual ? } The semantics of ATK classprocedures are most closely matched by static member functions in C++. This is because classprocedure don't require an object to act on, whereas plain non-static member functions in C++ require a 'this' to apply them. (Note this is a case where the many meanings of static may be confusing the issue, the class procedures do NOT have static LINKAGE, their linkage is global.) \excerptedcaption{Excerpts from internet.other.info-andrew: 7-May-93 C++ Converters Fodatec Project@harare.k (1120+0)} \quotation{It is truism to say that C++ only will not make any system object oriented (this is even not easy with C++). So beware of losing the possibility to make ATK truly object oriented. This is probably the only and last chance for the toolkit to become so. } You won't find any very large collection of programmers who agree on what object oriented programming is.... Our hope is to make ATK a desirable alternative for people wishing to delevop GUI programs in an X environment with a C++ API. (ewww.... 3 acronyms, I'm sorry...) To achieve this I believe we need to get the conversion done as quickly as possible and get on with enhancing the capabilities and facilities of ATK. (Particularly a re-usable widget set, instead of N widget sets which never seem to be quite general enough... and some kind of screen layout manager, be it WYSIWYG or not...) The majority of andrew/atk/* has been converted. An automatic conversion process has been developed, but nevertheless nearly every source file will require some hand tweaking. (If only to avoid !$%$#%^ compiler bugs in g++ or cfront.) -Rob Ryan C++ Conversion Guru Andrew Consortium \enddata{text,538919952} \enddata{text822, 26493} \begindata{text822, 31064} Return-path: X-Andrew-Authenticated-as: 5904;andrew.cmu.edu;Robert Andrew Ryan Received: from atk.itc.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Fri, 7 May 1993 11:50:27 -0400 (EDT) Received: from atk.itc.cmu.edu via qmail ID ; Fri, 7 May 1993 11:49:39 -0400 (EDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.atk.itc.cmu.edu.rs.aix31 via MS.5.6.atk.itc.cmu.edu.rs_aix31; Fri, 7 May 1993 11:49:38 -0400 (EDT) Message-ID: <8fucIGK00Woi1YolMl@andrew.cmu.edu> Date: Fri, 7 May 1993 11:49:38 -0400 (EDT) From: Robert Andrew Ryan X-Andrew-Message-Size: 869+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: Info-Andrew Subject: Re: C++ Converters In-Reply-To: References: \begindata{text,538919952} \textdsversion{12} \template{messages} \define{bold menu:[Font~1,Bold~10] attr:[FontFace Bold Int Set]} \excerptedcaption{Excerpts from internet.other.info-andrew: 7-May-93 Re: C++ Converters Blair Wyman@rchland.ibm. (1317+0)} \quotation{ I sincerely hope that \bold{all} the relevant features of C++ are used where appropriate -- \bold{private} included. } I agree in principle, however, for existing code I don't think we can afford the time it would take to consider each class and decide which features it could/should use. Hopefully as time goes on new classes will be written is a more C++ aware fashion. It should be noted however that in order to maintain the widest possible availability ATK should not use features that aren't fully supported by common C++ compilers. (Unfortunately I believe this includes cfront 2.1.) (One particular feature whose use I had to back out was class-scoped typedefs...) Of course what we would like to do would be to start from scratch and write ATK in C++ :-) -Rob \enddata{text,538919952} \enddata{text822, 31064} \begindata{text822, 33366} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po3.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 10 May 1993 05:16:45 -0400 (EDT) Received: from po5.andrew.cmu.edu via qmail ID ; Mon, 10 May 1993 05:16:12 -0400 (EDT) ReSent-Message-ID: Received: from neptun.kapsch.co.at by po5.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Mon, 10 May 93 05:15:58 EDT Return-Path: @neptun.kapsch.co.at:fodatec@harare.kapsch.co.at Resent-Date: Mon, 10 May 1993 11:15 +0200 Received: from harare.kapsch.co.at [148.198.10.5] by neptun.kapsch.co.at with SMTP-OpenVMS via TCP/IP; Mon, 10 May 1993 11:15 +0200 Received: by harare.kapsch.co.at (4.1/SMI-4.1) id AA08016; Mon, 10 May 93 11:15:29 +0200 Received: from Messages.7.15.N.CUILIB.3.45.SNAP.NOT.LINKED.harare.kapsch.co.at.sun4.41 via MS.5.6.harare.kapsch.co.at.sun4_41; Mon, 10 May 1993 11:15:29 +0200 (MET DST) Message-Id: Date: Mon, 10 May 1993 11:15:29 +0200 (MET DST) From: Fodatec Project X-Andrew-Message-Size: 1131+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: info-andrew+@andrew.cmu.edu, "Blair Wyman" Subject: Re: C++ Converters In-Reply-To: References: \begindata{text,1430560} \textdsversion{12} \template{messages} The only argument for using C++ \bold{private} feature seems to be that someone has "just completed 6 weeks of the best C++ instruction on the planet". Any other reasons ? Robert Ryan claims \bold{static binding} is appropriate for class procedures. One could ask if class procedures are necessary but they are already there. At least all methods should be virtual and it seems they will. Blair, I agree C++ is no Smalltalk (as everyone will agree Ada is no Prolog :-)) but my point was to be just very carefull in using 'dangerous' features, i.e. those you will hardly find theoretical motivation for. \excerptedcaption{Excerpts from info-andrew: 7-May-93 Re: C++ Converters Robert Andrew Ryan@andre (2831+0)} \quotation{there is no practical way to automatically decide what should be private. Or at least I couldn't think of one. } In current ATK all features in .c file not defined in .ch file are like C++ private, i.e. not inheritable to subordinate classes. Rather than private they should be protected (in C++ terms). How are you converting them to C++ (static/virtual, private/protected)? -Kazio Zielinski fodatec@kapsch.co.at \smaller{PS. Blair, have a look at Eiffel.\ }\enddata{text,1430560} \enddata{text822, 33366} \begindata{text822, 36452} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po5.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 10 May 1993 11:20:22 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Mon, 10 May 1993 11:19:47 -0400 (EDT) Received: from vnet.IBM.COM by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Mon, 10 May 93 11:19:13 EDT Received: from RCHLAND by vnet.IBM.COM (IBM VM SMTP V2R2) with BSMTP id 1778; Mon, 10 May 93 11:18:08 EDT Reply-To: "Blair Wyman" Received: by po1 (AIX 3.2/UCB 5.64/4.7) id for info-andrew+@andrew.cmu.edu; Mon, 10 May 1993 09:59:38 -0500 Received: via switchmail; Mon, 10 May 1993 09:59:37 -0500 (CDT) Received: from julia.rchland.ibm.com via qmail ID ; Mon, 10 May 1993 09:59:33 -0500 (CDT) Received: from julia.rchland.ibm.com via qmail ID ; Mon, 10 May 1993 09:59:28 -0500 (CDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.julia.rchland.ibm.com.rs.aix32 via MS.5.6.julia.rchland.ibm.com.rs_aix32; Mon, 10 May 1993 09:59:25 -0500 (CDT) Message-Id: Date: Mon, 10 May 1993 09:59:25 -0500 (CDT) From: Blair Wyman X-Andrew-Message-Size: 1658+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: info-andrew+@andrew.cmu.edu, "Blair Wyman" Subject: Re: C++ Converters In-Reply-To: References: \begindata{text,539449600} \textdsversion{12} \template{messages} \define{global } \excerptedcaption{Excerpts from ext.misc.info-andrew: 10-May-93 Re: C++ Converters Fodatec Project@harare.k (1131+0)} \quotation{The only argument for using C++ \bold{private} feature seems to be that someone has "just completed 6 weeks of the best C++ instruction on the planet". Any other reasons ? } How about 'encapsulation?' If a derived class can munge around in the belly of its base class, the base class can never change the arrangement of its internal organs. And hey, even after \bigger{\bold{6 whole weeks}} I don't \bold{always} get it right the first time...*8-) So, if I don't want derived classes to ever depend on the way I arrange my bits, then by jingo I'll just not show them around. Potential problem solved/avoided. In a similar vein, \bold{private} comes in handy when copy construction or assignment make no sense for a class. Making the copy constructor and assignment operator\bold{ private }prevents their misuse. \quotation{[...] my point was to be just very carefull in using 'dangerous' features, i.e. those you will hardly find theoretical motivation for. } IMHO, using\bold{ private} to hide is inherently \bold{less }'dangerous' than saying "nothing should ever be hidden." \quotation{PS. Blair, have a look at Eiffel. } The travel budget is a little light right now. I can't afford the cycles... And, from a theoretical standpoint, I wouldn't even consider any language that has C as it's intermediate representation. ;-) -blair wyman@vnet.ibm.com \smaller{The opinions expressed herein are strictly my own, and do not reflect those of IBM.} \typewriter{\smaller{ ___ _ Blair Wyman TieLine: 553-2891 ( /_) / _ ' _ IBM Rochester Internet: wyman@vnet.ibm.com __/__)_/_<_/_/_/_' RCHLAND(BLAIR) BITNET: wyman@vnet }}\enddata{text,539449600} \enddata{text822, 36452} \begindata{text822, 40470} Return-path: X-Andrew-Authenticated-as: 5904;andrew.cmu.edu;Robert Andrew Ryan Received: from atk.itc.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 10 May 1993 11:38:55 -0400 (EDT) Received: from atk.itc.cmu.edu via qmail ID ; Mon, 10 May 1993 11:37:06 -0400 (EDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.atk.itc.cmu.edu.rs.aix31 via MS.5.6.atk.itc.cmu.edu.rs_aix31; Mon, 10 May 1993 11:37:05 -0400 (EDT) Message-ID: Date: Mon, 10 May 1993 11:37:05 -0400 (EDT) From: Robert Andrew Ryan X-Andrew-Message-Size: 2125+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: Info-Andrew Subject: Re: C++ Converters In-Reply-To: References: \begindata{text,538978404} \textdsversion{12} \template{messages} \excerptedcaption{Excerpts from internet.other.info-andrew: 10-May-93 Re: C++ Converters Fodatec Project@harare.k (1131+0)} \quotation{In current ATK all features in .c file not defined in .ch file are like C++ private, i.e. not inheritable to subordinate classes. Rather than private they should be protected (in C++ terms). How are you converting them to C++ (static/virtual, private/protected)? } Functions which are not class procedures, methods, or class macros are simply converted to C++ syntax, they do not become part of the class definition in the conversion. Also under ATK they don't really correspond to private in C++, since there is no "friend" access. They are just "invisible" to subclasses. It might be worthwhile to convert classes to have more of their implementation be part of the class definition under C++, but doing so indiscriminately would be worse than not at all. (Remember, the manual work in the conversion process is basically type fixes and compiler bug workarounds.) In general ATK code converted to C++ code is still basically ATK code, with all the assumptions and influences that implies. For example under C++ it is far easier to subclass than with the ATK class system. (No need for two extra files...) Rocks for enumeration functions, proctable functions, etc... are still long, or char *, or void * (converting them all to void * turned out to have a nasty tendency to provoke a ripple effect where more and more code had to be changed). I share your concern with the lack of useful inheritance interfaces in many ATK classes, indeed this is a very important issue in any OOP library. I believe however that our first priority must be to allow new code to be developed in C++ as soon as possible. Currently I hope we will be able to have an beta/alpha release of the C++ ATK distribution this fall. The first few releases will no doubt be a mess as we deal with all the different combinations of compiler, OS, header files for all the machine types. (And doubtless support for some machines will have to be dropped without testers available to port the new code.) -Rob Ryan Andrew Consortium \enddata{text,538978404} \enddata{text822, 40470} \begindata{text822, 44015} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po5.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 10 May 1993 13:13:22 -0400 (EDT) Received: from po2.andrew.cmu.edu via qmail ID ; Mon, 10 May 1993 13:11:04 -0400 (EDT) Received: from sadye.emba.uvm.edu by po2.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Mon, 10 May 93 13:10:58 EDT Received: by sadye.emba.uvm.edu id AA28141 (5.65/6.02); Mon, 10 May 93 13:10:53 -0400 Date: Mon, 10 May 93 13:10:53 -0400 From: Garrett.Wollman@UVM.EDU Message-Id: <9305101710.AA28141@sadye.emba.uvm.edu> To: "Blair Wyman" Cc: info-andrew+@andrew.cmu.edu Subject: Re: C++ Converters In-Reply-To: References: < said: > How about 'encapsulation?' If a derived class can munge around in the > belly of its base class, the base class can never change the arrangement of > its internal organs. And hey, even after \bigger{\bold{6 whole weeks}} I > don't \bold{always} get it right the first time...*8-) So, if I don't want > derived classes to ever depend on the way I arrange my bits, then by jingo > I'll just not show them around. Potential problem solved/avoided. InterViews does this nicely. In the InterViews code, (almost) /no/ data members are ever made public; they are all either private or protected, with accessor functions just like O-O fans would expect. The way it seems to be arranged is fairly sensible... If a given class doesn't make sense without certain data members (e.g., size and position indicators for a scrollbar), then those members are declared protected in an appropriate base class. Otherwise, they are private. Somewhere in /interviews.stanford.edu:/pub there is an explanation of why these design choices were made. -GAWollman Disclaimer: I don't use InterViews---it won't compile on my system because of IBM's 64k limit on TOC size. -- Garrett A. Wollman | Shashish is simple, it's discreet, it's brief. ... wollman@emba.uvm.edu | Shashish is the bonding of hearts in spite of distance. uvm-gen!wollman | It is a bond more powerful than absence. We like people UVM disagrees. | who like Shashish. - Claude McKenzie + Florent Vollant \enddata{text822, 44015} \begindata{text822, 46831} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po3.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Mon, 10 May 1993 13:39:22 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Mon, 10 May 1993 13:37:32 -0400 (EDT) ReSent-Message-ID: Received: from neptun.kapsch.co.at by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Mon, 10 May 93 13:36:52 EDT Return-Path: @neptun.kapsch.co.at:fodatec@harare.kapsch.co.at Resent-Date: Mon, 10 May 1993 19:36 +0200 Received: from harare.kapsch.co.at [148.198.10.5] by neptun.kapsch.co.at with SMTP-OpenVMS via TCP/IP; Mon, 10 May 1993 19:36 +0200 Received: by harare.kapsch.co.at (4.1/SMI-4.1) id AA22063; Mon, 10 May 93 19:36:32 +0200 Received: from Messages.7.15.N.CUILIB.3.45.SNAP.NOT.LINKED.harare.kapsch.co.at.sun4.41 via MS.5.6.harare.kapsch.co.at.sun4_41; Mon, 10 May 1993 19:36:32 +0200 (MET DST) Message-Id: Date: Mon, 10 May 1993 19:36:32 +0200 (MET DST) From: Fodatec Project X-Andrew-Message-Size: 2457+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: info-andrew+@andrew.cmu.edu, "Blair Wyman" , "Blair Wyman" Subject: Re: C++ Converters In-Reply-To: References: \begindata{text,1553336} \textdsversion{12} \template{messages} I watched the discussion about C++ with interest. I must admit, that I have the same ideas about OOP like my college. Of course there is alway a possibility to program in the same old manner someone learned - you can code procedural in LISP too. But I think OOP is something new and we should not treat it like some poor old pepped up procedural language. \excerptedcaption{Excerpts from info-andrew: 10-May-93 Re: C++ Converters Blair Wyman@rchland.ibm. (1658+0)} \quotation{How about 'encapsulation?' If a derived class can munge around in the belly of its base class, the base class can never change the arrangement of its internal organs. } You have to be aware that you never can alter a base class from within a derived class. An inherited class is always something new, like a copy plus extension. If you don't want the extensions get control of the basic code you will probably prevent reuse at all. The inheritance tree will not become very deep because everybody tends to use classes and not inherits them. So you will probably produce much coupling between classes. Someone who can't access a varible because it is private will probably produce some different class and not inherit.He then codes this variable with all its methods again, but some parts he will use from the similar class. So here we have two things not intended to be OOP: recoding and coupling between classes. If you take a careful look at ATK you will see that all this things happened here. This has many reasions. One obvious is the lack of the class precompiler to produce data inheritance. Some data is coded "private", in some sort of Smalltalk class variables. If you like to have access to these data it is in first case hard to make and in the second even impossible, even though the only this you wanted is to have a look at the data. If you are lucky someone wrote a capsule around (like get.. and set..). But what differs set.. this from assignment? At first sight the old wisdom of hiding information from procedural language is applicable for OOP too.But I don't think so. Here we have other concepts, which run against this idea. And if you program like this in object oriented languages you will never get some good class system but a even worse procedural library. PS. As far as I know there are already some eiffel systems on the market, that don't precompile to C. Besides that : C++ in former days was as well nothing else than a precompiler to C ! Christian.Sodomka@kapsch.co.at\ \enddata{text,1553336} \enddata{text822, 46831} \begindata{text822, 51362} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po3.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Tue, 11 May 1993 04:06:39 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Tue, 11 May 1993 04:05:46 -0400 (EDT) ReSent-Message-ID: Received: from neptun.kapsch.co.at by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Tue, 11 May 93 04:05:26 EDT Return-Path: @neptun.kapsch.co.at:fodatec@harare.kapsch.co.at Resent-Date: Tue, 11 May 1993 10:04 +0200 Received: from harare.kapsch.co.at [148.198.10.5] by neptun.kapsch.co.at with SMTP-OpenVMS via TCP/IP; Tue, 11 May 1993 10:04 +0200 Received: by harare.kapsch.co.at (4.1/SMI-4.1) id AA22452; Tue, 11 May 93 10:04:41 +0200 Received: from Messages.7.15.N.CUILIB.3.45.SNAP.NOT.LINKED.harare.kapsch.co.at.sun4.41 via MS.5.6.harare.kapsch.co.at.sun4_41; Tue, 11 May 1993 10:04:40 +0200 (MET DST) Message-Id: Date: Tue, 11 May 1993 10:04:40 +0200 (MET DST) From: Fodatec Project X-Andrew-Message-Size: 2462+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: info-andrew+@andrew.cmu.edu, "Blair Wyman" Subject: Re: C++ Converters In-Reply-To: References: \begindata{text,1394208} \textdsversion{12} \template{messages} \excerptedcaption{Excerpts from info-andrew: 10-May-93 Re: C++ Converters Blair Wyman@rchland.ibm. (1658+0)} \quotation{How about 'encapsulation?' If a derived class can munge around in the belly of its base class, the base class can never change the arrangement of its internal organs. And hey, even after \bigger{\bold{6 whole weeks}} I don't \bold{always} get it right the first time...*8-) So, if I don't want derived classes to ever depend on the way I arrange my bits, then by jingo I'll just not show them around. Potential problem solved/avoided. } Thank you for the explanation. I still think there is a confusion about "derived class can munge around in the belly of its base class". The derived class can never change anything in the base class itself. Everything it changes becomes effective only for that derived class. So munging is done on the subclass' responsibility. You can rearrange 'bits' of your base class as long as you don't change features it has. If you have to change features of a class it is a redesign problem of your software system with all consequences to the derived classes. Concerning encapsulation, it is realized by 'public'. Only exported features can be accessed by users of a class. To make some features not accessible to subclasses you already must know all classes which will be derived from it. It is not always the case, especially not for toolkits, as ATK. What happens then ? Rather than reuse the existing one by subclassing it and then accessing/overriding some feature which is unfortunately private (or hidden in the implementation file), you have to write a new class. Of course you copy the existing code, rename the class and subsequently make your changes. Reusing by copying. Horrible. Conclusion: "nothing should ever be hidden" to derived classes, not to users of a class. \excerptedcaption{Excerpts from info-andrew: 10-May-93 Re: C++ Converters Robert Andrew Ryan@andre (2125+0)} \quotation{Functions which are not class procedures, methods, or class macros are simply converted to C++ syntax, they do not become part of the class definition in the conversion. Also under ATK they don't really correspond to private in C++, since there is no "friend" access. They are just "invisible" to subclasses. } Sigh. What happens if you make them all class members protected or protected virtual ? C++ "friend" access is really not very OO. Is it used in the conversion ? -Kazio Zielinski fodatec@kapsch.co.at \smaller{PS. Blair, come on, I really wasn't referring to Eiffel tower in Paris. }\enddata{text,1394208} \enddata{text822, 51362} \begindata{text822, 55919} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po5.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Tue, 11 May 1993 11:29:45 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Tue, 11 May 1993 11:28:28 -0400 (EDT) Received: from vnet.IBM.COM by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Tue, 11 May 93 11:28:10 EDT Received: from RCHLAND by vnet.IBM.COM (IBM VM SMTP V2R2) with BSMTP id 7635; Tue, 11 May 93 11:27:06 EDT Reply-To: "Blair Wyman" Received: by po1 (AIX 3.2/UCB 5.64/4.7) id for info-andrew+@andrew.cmu.edu; Tue, 11 May 1993 10:26:05 -0500 Received: via switchmail; Tue, 11 May 1993 10:26:04 -0500 (CDT) Received: from julia.rchland.ibm.com via qmail ID ; Tue, 11 May 1993 10:25:59 -0500 (CDT) Received: from julia.rchland.ibm.com via qmail ID ; Tue, 11 May 1993 10:25:42 -0500 (CDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.julia.rchland.ibm.com.rs.aix32 via MS.5.6.julia.rchland.ibm.com.rs_aix32; Tue, 11 May 1993 10:25:30 -0500 (CDT) Message-Id: <0fvwJeI91JR_F4pF1I@rchland.ibm.com> Date: Tue, 11 May 1993 10:25:30 -0500 (CDT) From: Blair Wyman X-Andrew-Message-Size: 4503+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: info-andrew+@andrew.cmu.edu, "Blair Wyman" Subject: Re: C++ Converters \begindata{text,540394240} \textdsversion{12} \template{messages} \define{smaller menu:[Font~1,Smaller~21] attr:[FontSize PreviousFontSize Point -2]} \define{global } \excerptedcaption{Excerpts from ext.misc.info-andrew: 11-May-93 Re: C++ Converters Fodatec Project@harare.k (2462+0)} \quotation{C++ "friend" access is really not very OO. Is it used in the conversion ? }I sure \bold{hope} they use "friend" where appropriate, since it is just a part of the notion of building an encapsulation barrier. After all, a class and its friends \bold{are} the encapsulation unit, wouldn't you say? \excerptedcaption{Excerpts from ext.misc.info-andrew: 11-May-93 Re: C++ Converters Fodatec Project@harare.k (2462+0)} \quotation{I still think there is a confusion about "derived class can munge around in the belly of its base class". }The 'munging in the belly' stuff is saying simply that a derived class can become dependent on implementation details which are really \italic{none of its business}, unless it is actively prevented with \bold{private}. Say you have a base class that contains a sequence of items. If you need the (heaven forbid) address of one of the items in the sequence, and the sequence is implemented as an array, you'll probably just go in and munge in the belly with\typewriter{ &a[i] }and be done with it. Now, however, the base class can never change what should really have been strictly its own business -- the implementation of the sequence. Bummer, no? And all it would've taken to avoid that inflexibility would've been a little tiny button. What a shame... \excerptedcaption{Excerpts from ext.misc.info-andrew: 11-May-93 Re: C++ Converters Fodatec Project@harare.k (2462+0)} \quotation{To make some features not accessible to subclasses you already must know all classes which will be derived from it. }No, you just know what aspects of \bold{your} class a potential subclass has no business being concerned about. And I agree that it is the rare case indeed that a member function should not be virtual. Theoretically, there is no such thing as a 'leaf class,' but you can't spread theory on your toast and sprinkle cinnamon onto it. \excerptedcaption{Excerpts from ext.misc.info-andrew: 10-May-93 Re: C++ Converters Fodatec Project@harare.k (2457+0)} \quotation{I think OOP is something new and we should not treat it like some poor old pepped up procedural language.} You're preaching to the choir. I'd just add that C++ is something wonderful in its own right, and that we should not treat it like Smalltalk. \excerptedcaption{Excerpts from ext.misc.info-andrew: 10-May-93 Re: C++ Converters Fodatec Project@harare.k (2457+0)} \quotation{Someone who can't access a varible because it is private will probably produce some different class and not inherit.} Well, if it is really something wrong with the base class -- that it should've put some additional button on its skin -- then bite the bullet and fix the base class. But a more likely scenario is that the derivation itself was ill-advised. \excerptedcaption{Excerpts from ext.misc.info-andrew: 10-May-93 Re: C++ Converters Fodatec Project@harare.k (2457+0)} \quotation{At first sight the old wisdom of hiding information from procedural language is applicable for OOP too. But I don't think so. Here we have other concepts, which run against this idea. } You have concepts that support building inappropriate dependencies on implementation details? Next thing you know you'll be depending on an 8-bit byte! *8-) We can't just discard the lessons learned in the structured revolution. I've got no qualms about about providing\italic{ information }to anyone who wants it... \bold{it's just that I'll make them go through a button on my skin to get it }-- a button I've\bold{ chosen }to put there. I will NOT just allow them to reach among my viscera and yank the data out willy-nilly. For instance, if you give out addressability to a contained class, you blew it. You can never again be sure that someone hasn't cached that address and will run through their wild pointer to trash the heap forever. Amen. Inheritance shouldn't be used 'just because it's there' -- but rather only when the derived class \bold{is-a-kind-of} the base class. A bag of oranges \bold{is-\underline{not}-a-kind-of} a bag of fruit. Conformance, contravariance, rah-rah-rah. Disagree with that and I'm wasting my breath. -blair \smaller{Opinions expressed are not those of IBM. \smaller{\quotation{PS. Blair, come on, I really wasn't referring to Eiffel tower in Paris. }}'Not being able to afford the cycles' was a jab at the run-time performance of Eiffel, not a statement of my relative poverty\smaller{ (although poverty is the one thing I always have plenty of :)} \quotation{Besides that : C++ in former days was as well nothing else than a precompiler to C !} I'm going to have to stop trying to be funny. (\italic{Trying} is the operative word there.) It was an attempt at irony when I said... oh, never mind. }\enddata{text,540394240} \enddata{text822, 55919} \begindata{text822, 62898} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po5.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Tue, 11 May 1993 12:35:57 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Tue, 11 May 1993 12:32:48 -0400 (EDT) Received: from chx400.switch.ch by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew; Tue, 11 May 93 12:32:35 EDT X400-Received: by mta chx400.switch.ch in /PRMD=switch/ADMD=arcom/C=CH/; Relayed; Tue, 11 May 1993 18:22:30 +0200 X400-Received: by /PRMD=switch/ADMD=arcom/C=ch/; Relayed; Tue, 11 May 1993 18:22:10 +0200 X400-Received: by /PRMD=switch/ADMD=arcom/C=ch/; Relayed; Tue, 11 May 1993 18:22:05 +0200 Date: Tue, 11 May 1993 18:22:05 +0200 X400-Originator: wilde@komsys.tik.ethz.ch X400-Recipients: info-andrew@andrew.cmu.edu X400-Mts-Identifier: [/PRMD=switch/ADMD=arcom/C=ch/;930511182205] X400-Content-Type: P2-1984 (2) Content-Identifier: 747 From: Erik Wilde Message-Id: <747*/S=wilde/OU=komsys/OU=tik/O=ethz/PRMD=SWITCH/ADMD=ARCOM/C=CH/@MHS> To: "Andrew Mailing List at CMU" Subject: OpenWindows crashes Andrew clients Hello, I have a question about Andrew and OpenWindows 3.0. I have installed Andrew on our Sparc SunOS 4.1.3 cluster and it works fine, when I use MacX or the MIT X11R5 X Server as displays, but whenever I use my local X Server (OpenWindows 3.0), the application window shows up and then disappeares with a segmentation fault. It's the same behaviour for all Andrew clients, so this must be a general problem of Andrew working with this special server. Does anybody have had similar problems or effects? Maybe it's just a configuration problem, but I cannot find it. Thankful for every hint, Erik Wilde (wilde@tik.ethz.ch) Swiss Federal Institute of Technology (ETH Zuerich) Laboratory of Computer Engineering and Networks (TIK) ETH-Zentrum, ETZ G61.2, CH - 8092 Zuerich Phone: +41-1-254-7009 Fax: +41-1-251-2504 \enddata{text822, 62898} \begindata{text822, 65266} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po3.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Wed, 12 May 1993 14:37:26 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Wed, 12 May 1993 14:32:13 -0400 (EDT) Received: from LOAN1.SP.CS.CMU.EDU by po3.andrew.cmu.edu (5.54/3.15) id for wjh+; Wed, 12 May 93 14:32:04 EDT Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.LOAN1.SP.CS.CMU.EDU.sun4.mach via MS.5.6.LOAN1.SP.CS.CMU.EDU.sun4_mach; Wed, 12 May 1993 14:31:10 -0400 (EDT) Message-Id: Date: Wed, 12 May 1993 14:31:10 -0400 (EDT) From: Wilfred.Hansen@cs.cmu.edu To: Info-Andrew Subject: Visit to Europe My paper "Andrew as a Multiparadigm Environment for Visual Languages" has been accepted for presentation at the Visual Languages symposium in Bergen, Norway, 24-27 August. After the symposium, I can visit a few sites in Europe to find out what people are doing with the Andrew User Interface System and what needs they may have. As part of a visit, I would be prepared to give a talk such as a discussion of future plans for Andrew or conversion of Andrew applications to C++. If you are interested in having me visit, please send me email. To make my travels financially feasible, the consortium asks that your site contribute toward local expenses and travel from the previous site. (I prefer train travel if we can keep distances reasonable.) Fred Hansen Director, Andrew Consortium \enddata{text822, 65266} \begindata{text822, 67159} Return-path: X-Andrew-Authenticated-as: 1447;andrew.cmu.edu;Gary Keim Received: from rascal.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Fri, 14 May 1993 13:58:42 -0400 (EDT) Received: from rascal.andrew.cmu.edu via qmail ID ; Fri, 14 May 1993 13:55:28 -0400 (EDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.rascal.andrew.cmu.edu.rs.aix32 via MS.5.6.rascal.andrew.cmu.edu.rs_aix31; Fri, 14 May 1993 13:55:28 -0400 (EDT) Message-ID: <4fwxoEG00WohIoMWBE@andrew.cmu.edu> Date: Fri, 14 May 1993 13:55:28 -0400 (EDT) From: Gary Keim X-Andrew-Message-Size: 980+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: Info-Andrew Subject: Re: Can't get AMS aliases to work for groups In-Reply-To: References: \begindata{text,538669784} \textdsversion{12} \template{messages} \define{bb+org.itc.atk.ia-trail@andrew.cmu.edu } \define{added.yfwa6hg00ui348we4y@andrew.cmu.edu } I tried to reply directly but I had problems with your return address. -Gary \bb+org.itc.atk.ia-trail@andrew.cmu.edu{\ \added.yfwa6hg00ui348we4y@andrew.cmu.edu{\ \added.yfwa6hg00ui348we4y@andrew.cmu.edu{You appear to have sent me a message in MIME format but there was no MIME-Version header so my mail reader (messages) didn't grok it: \bold{\quotation{Excerpts from misc: 13-May-93 Re: Can't get AMS aliases t.. Kevin Rigotti@relay.MOD. (1486)}} \quotation{Yes, I have an aliases file that says: # External People } \bold{\quotation{Excerpts from misc: 13-May-93 Re: Can't get AMS aliases t.. Kevin Rigotti@relay.MOD. (1486)}} \quotation{# External Organisations group pats cm,ep,bvd,ms,mlg,pe,gcd,kdr,sct } There is no \italic{group} keyword. Just have a line like this: \typewriter{pats cm, ep, bvd, ms, mlg, pe, ..... } You didn't leave a single space after the commas in the list. The help file specifies that this must be done: From the ms-aliases help file: \quotation{The addresses for the alias "group" are separated by a comma and a space. }I just tested this to make sure it works and it does. -Gary Keim Andrew Consortium }}}\enddata{text,538669784} \enddata{text822, 67159} \begindata{text822, 69795} Return-path: X-Andrew-Authenticated-as: 2971;andrew.cmu.edu;John Gardiner Myers Received: from hogtown.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Fri, 14 May 1993 14:51:11 -0400 (EDT) Received: from hogtown.andrew.cmu.edu via qmail ID ; Fri, 14 May 1993 14:50:26 -0400 (EDT) Received: from BatMail.robin.v2.13.CUILIB.3.45.SNAP.NOT.LINKED.hogtown.andrew.cmu.edu.sun4c.411 via MS.5.6.hogtown.andrew.cmu.edu.sun4c_411; Fri, 14 May 1993 14:50:20 -0400 (EDT) Message-ID: Date: Fri, 14 May 1993 14:50:20 -0400 (EDT) From: John Gardiner Myers To: Info-Andrew Subject: MIME-Version In-Reply-To: <4fwxoEG00WohIoMWBE@andrew.cmu.edu> References: <4fwxoEG00WohIoMWBE@andrew.cmu.edu> Beak: Is Gary Keim writes: > You appear to have sent me a message in MIME format but there was no > MIME-Version header so my mail reader (messages) didn't grok it: Huh? This sounds like a bug in your version of messages. The MIME-Version: header is completely useless and should be ignored. It's absence is certainly no reason to ignore a perfectly valid Content-Type: header. _.John \enddata{text822, 69795} \begindata{text822, 71369} Return-path: X-Andrew-Authenticated-as: 1210;alw.nih.gov;Bob Dew Received: from kirin.dcrt.nih.gov via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl@andrew.cmu.edu) ID ; Fri, 14 May 1993 15:11:35 -0400 (EDT) Received: from kirin.dcrt.nih.gov via qmail ID ; Fri, 14 May 1993 15:07:28 -0400 (EDT) If-Type-Unsupported: send Received: from kirin.dcrt.nih.gov via qmail ID ; Fri, 14 May 1993 15:06:56 -0400 (EDT) Received: from dude.dcrt.nih.gov via qmail ID ; Fri, 14 May 1993 15:05:11 -0400 (EDT) Received: from dude.dcrt.nih.gov via qmail ID ; Fri, 14 May 1993 15:05:01 -0400 (EDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.dude.dcrt.nih.gov.sun4c.411 via MS.5.6.dude.dcrt.nih.gov.sun4_41; Fri, 14 May 1993 15:05:00 -0400 (EDT) Message-ID: Date: Fri, 14 May 1993 15:05:00 -0400 (EDT) From: Bob Dew X-Andrew-Message-Size: 676+0 Content-Type: X-BE2; 12 To: Info-Andrew Subject: Re: MIME-Version In-Reply-To: References: <4fwxoEG00WohIoMWBE@andrew.cmu.edu> \begindata{text,7164256} \textdsversion{12} \template{messages} \excerptedcaption{Excerpts from mail: 14-May-93 MIME-Version John Gardiner Myers@CMU. (407)} \quotation{Gary Keim writes: }\quotation{> You appear to have sent me a message in MIME format but there was no }\quotation{> MIME-Version header so my mail reader (messages) didn't grok it: } \quotation{Huh? This sounds like a bug in your version of messages. The }\quotation{MIME-Version: header is completely useless and should be ignored. }\quotation{It's absence is certainly no reason to ignore a perfectly valid }\quotation{Content-Type: header. } \quotation{ _.John } I believe Mime-Version and Content-Type headers ae required for all MIME-compliant mail messages. The version header simply indicates indicates that the message complies with RFC 1341. -Bob \enddata{text,7164256} \enddata{text822, 71369} \begindata{text822, 74065} Return-path: X-Andrew-Authenticated-as: 1447;andrew.cmu.edu;Gary Keim Received: from rascal.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Fri, 14 May 1993 15:35:49 -0400 (EDT) Received: from rascal.andrew.cmu.edu via qmail ID ; Fri, 14 May 1993 15:34:18 -0400 (EDT) Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.rascal.andrew.cmu.edu.rs.aix32 via MS.5.6.rascal.andrew.cmu.edu.rs_aix31; Fri, 14 May 1993 15:34:18 -0400 (EDT) Message-ID: Date: Fri, 14 May 1993 15:34:18 -0400 (EDT) From: Gary Keim X-Andrew-Message-Size: 1156+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: Info-Andrew Subject: Re: MIME-Version In-Reply-To: References: <4fwxoEG00WohIoMWBE@andrew.cmu.edu> \begindata{text,538669784} \textdsversion{12} \template{messages} \excerptedcaption{Excerpts from misc: 14-May-93 Re: MIME-Version Bob Dew@alw.nih.gov (676+0)} \quotation{I believe Mime-Version and Content-Type headers ae required for all MIME-compliant mail messages. The version header simply indicates indicates that the message complies with RFC 1341. } From BodyFormats.ez: \leftindent{Therefore, this document defines a new header field, "MIME-Version", which is to be used to declare the version of the Internet message body format standard in use. Messages composed in accordance with this document MUST include such a header field, with the following verbatim text: \typewriter{MIME-Version: }\typewriter{1.0} The presence of this header field is an assertion that the message has been composed in compliance with this document. Since it is possible that a future document might extend the message format standard again, a formal BNF is given for the content of the MIME-Version field: \typewriter{MIME-Version := text } Thus, future format specifiers, which might replace or extend "1.0", are (minimally) constrained by the definition of "text", which appears in RFC 822. Note that the MIME-Version header field is required at the top level of a message. } -Gary Keim Andrew Consortium \enddata{text,538669784} \enddata{text822, 74065} \begindata{text822, 76709} Return-path: X-Andrew-Authenticated-as: 2971;andrew.cmu.edu;John Gardiner Myers Received: from hogtown.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Fri, 14 May 1993 16:54:34 -0400 (EDT) Received: from hogtown.andrew.cmu.edu via qmail ID ; Fri, 14 May 1993 16:53:38 -0400 (EDT) Received: from BatMail.robin.v2.13.CUILIB.3.45.SNAP.NOT.LINKED.hogtown.andrew.cmu.edu.sun4c.411 via MS.5.6.hogtown.andrew.cmu.edu.sun4c_411; Fri, 14 May 1993 16:53:29 -0400 (EDT) Message-ID: Date: Fri, 14 May 1993 16:53:29 -0400 (EDT) From: John Gardiner Myers To: Info-Andrew Subject: Re: MIME-Version In-Reply-To: References: <4fwxoEG00WohIoMWBE@andrew.cmu.edu> Beak: is Not RFC 1341 does state that mime composers are required to create a MIME-Version: header, however it says nothing about allowing a MIME-reader to ignore a perfectly-formed Content-Type: header when the MIME-Version is not present. _.John \enddata{text822, 76709} \begindata{text822, 78232} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po3.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Sun, 16 May 1993 12:29:49 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Sun, 16 May 1993 12:29:26 -0400 (EDT) If-Type-Unsupported: send Received: from po3.andrew.cmu.edu via qmail ID ; Sun, 16 May 1993 12:27:44 -0400 (EDT) Received: from thumper.bellcore.com by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Sun, 16 May 93 12:27:33 EDT Received: from greenbush.bellcore.com by thumper.bellcore.com (4.1/4.7) id for info-andrew+@andrew.cmu.edu; Sun, 16 May 93 12:27:31 EDT Received: by greenbush.bellcore.com (4.1/4.7) id for info-andrew+@andrew.cmu.edu; Sun, 16 May 93 12:27:48 EDT Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.greenbush.galaxy.sun4.41 via MS.5.6.greenbush.galaxy.sun4_41; Sun, 16 May 1993 12:27:47 -0400 (EDT) Message-Id: Date: Sun, 16 May 1993 12:27:47 -0400 (EDT) From: Nathaniel Borenstein X-Andrew-Message-Size: 733+0 Mime-Version: 1.0 Content-Type: text/richtext; charset=US-ASCII Content-Transfer-Encoding: quoted-printable To: info-andrew+@andrew.cmu.edu Subject: Re: MIME-Version Excerpts from mail: 15-May-93 Today's misc digest Digestifier@?= ?? (13197*) RFC 1341 does state that mime composers are required to create a MIME-Version: header, however it says nothing about allowing a MIME-reader to ignore a perfectly-formed Content-Type: header when the MIME-Version is not present. Yeah, this is a judgement call. If you get content-type but not MIME-version,= it might or might not be MIME. While either is a reasonable default, you pro= bably want an easy way for the user to go either way. Messages already has "s= how raw body" to use if you assume it is MIME but isn't; if the default assump= tion in this case will be that it is not MIME, you probably want a menu item t= o use if you want to see it as MIME... \enddata{text822, 78232} \begindata{text822, 80777} Return-path: X-Andrew-Authenticated-as: 7274;pitt.edu;Jeffrey J. Carpenter Received: from pitt.edu via trymail ID ; Tue, 18 May 1993 22:05:25 -0400 (EDT) Received: from sea-green.cis.pitt.edu via qmail ID ; Tue, 18 May 1993 22:04:45 -0400 (EDT) Received: from sea-green.cis.pitt.edu via qmail ID ; Tue, 18 May 1993 21:58:15 -0400 (EDT) Received: from Messages.7.15.N.CUILIB.3.45.SNAP.NOT.LINKED.sea.green.cis.pitt.edu.pmax.3 via MS.5.6.sea-green.cis.pitt.edu.pmax_3; Tue, 18 May 1993 21:58:15 -0400 (EDT) Message-ID: Date: Tue, 18 May 1993 21:58:15 -0400 (EDT) From: "Jeffrey J. Carpenter" X-Andrew-Message-Size: 851+0 Content-Type: X-BE2; 12 If-Type-Unsupported: send To: Info-Andrew Subject: White Pages problem \begindata{text,17133656} \textdsversion{12} \template{messages} Hello, We have about 30,000 entries in our password file (and thus our white pages). We recently added about 1400 accounts that had the first two letters of the username be "pa" (please don't ask why). Ever since these have been added, we have run into a problem updating the white pages. After makeboth tries to insert some number of these, it fails with the error: \example{Can't bt_Search for ``a"t'': B-tree file is damaged } This happens both when we applied these new accounts to an existing white pages database and also when we build one from from scratch. I assume that this is being caused by something in the btree routines in overhead/util/lib, and have just started looking at the code. Any ideas on this? Are these "pa" accounts seriously unbalancing the tree? I can make the full log files available if anyone wants to see them. jeff \enddata{text,17133656} \enddata{text822, 80777} \begindata{text822, 82874} X-Andrew-Authenticated-As: 469;andrew.cmu.edu;Craig F. Everhart Return-path: X-Andrew-Authenticated-as: 1312;transarc.com;Craig Everhart Received: from craig.transarc.com via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl@andrew.cmu.edu) ID ; Wed, 19 May 1993 12:08:33 -0400 (EDT) If-Type-Unsupported: send Received: from craig.transarc.com via qmail ID ; Wed, 19 May 1993 12:03:06 -0400 (EDT) Received: from Messages.7.14.N.CUILIB.3.45.SNAP.NOT.LINKED.craig.transarc.com.pmax.3 via MS.5.6.craig.transarc.com.pmax_3; Wed, 19 May 1993 12:03:04 -0400 (EDT) Message-ID: Date: Wed, 19 May 1993 12:03:04 -0400 (EDT) From: Craig_Everhart@transarc.com X-Andrew-Message-Size: 979+0 Content-Type: X-BE2; 12 To: Info-Andrew , "Jeffrey J. Carpenter" Subject: Re: White Pages problem In-Reply-To: References: \begindata{text,18849676} \textdsversion{12} \template{messages} \excerptedcaption{Excerpts from internet.other.info-andrew: 18-May-93 White Pages problem Jeffrey Carpenter@pitt.e (851+0)} \example{\quotation{Can't bt_Search for ``a"t'': B-tree file is damaged }} Unfortunately, no, this is a first. Certainly the error is being generated by the b-tree routines, though that error code is a little bit of a catchall. Clearly, you've gone pretty far in trying to debug this, if you've rebuilt your 30000-entry WP from scratch already. I can think of two avenues to try: \leftindent{(a) ensure that all the WP keys are unique: \leftindent{- no two passwd entries with the same first four pw_name characters and the same pw_uid field - no two wpadd entries with the same first three $ID field characters and the same $SI/$NI numbers} (b) set breakpoints at every explicit reference to bterr_BTreeDamaged in all the places where bt_Search might return it: bt_Search itself, b_ScanNode. That will at least tell you what the specific complaint is. } I can offer some remote help, but not a huge amount. Craig \enddata{text,18849676} \enddata{text822, 82874} \begindata{text822, 85366} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po4.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Thu, 20 May 1993 17:22:05 -0400 (EDT) Received: from po5.andrew.cmu.edu via qmail ID ; Thu, 20 May 1993 17:21:23 -0400 (EDT) If-Type-Unsupported: send Received: from po3.andrew.cmu.edu via qmail ID ; Thu, 20 May 1993 17:18:12 -0400 (EDT) Received: from CANTVA.CANTERBURY.AC.NZ by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew; Thu, 20 May 93 17:17:44 EDT Received: from cantsc.canterbury.ac.nz by csc.canterbury.ac.nz (PMDF #2553 ) id <01GYFKAYLAXS9ZQYCB@csc.canterbury.ac.nz>; Fri, 21 May 1993 09:17:37 +1200 Received: by cantsc.canterbury.ac.nz (4.1/SMI-4.1) id AA12512; Fri, 21 May 93 09:17:34 NZS Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.cantsc.canterbury.ac.nz.sun4.41 via MS.5.6.cantsc.canterbury.ac.nz.sun4_41; Fri, 21 May 1993 09:17:33 +1200 (NZST) Date: 21 May 1993 09:17:33 +1200 (NZST) From: Jason Haar Subject: sendmail and Mailbox To: info-andrew@andrew.cmu.edu Message-Id: X-Envelope-To: info-andrew@andrew.cmu.edu Mime-Version: 1.0 Content-Type: text/richtext; charset=US-ASCII Content-Transfer-Encoding: quoted-printable X-Andrew-Message-Size: 653+0 X-Mailer: ATK messages 8.5 X-Contact: phone: +64 3 364-2336, fax: +64 3 364-2332 Organisation: CSC, University of Canterbury, Christchurch, New Zealand. Hi, When messages first starts up, I gather it reads the /var/spool/m= ail/userid> file (for sendmail), chops up all the messages into separate f= iles, and writes them to $HOME/Mailbox. After that, the mail is in it's own me= ssages environment, and messages then fiddles with it and moves it to $HOME/.M= ESSAGES... Am I right in assuming that the initial filenames in Mailbox can be anything, = and that no index file is required? I'd like to use procmail to manipulate my = incoming mail so that it's already lying around in Mailbox before I do a "Check New Messages" command (I want to hack the headers aroun= d before the MUA sees them). Cheers Jason Haar \enddata{text822, 85366} \begindata{text822, 87992} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po5.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Fri, 21 May 1993 10:09:07 -0400 (EDT) Received: from po2.andrew.cmu.edu via qmail ID ; Fri, 21 May 1993 10:07:13 -0400 (EDT) If-Type-Unsupported: send Received: from po3.andrew.cmu.edu via qmail ID ; Fri, 21 May 1993 10:02:56 -0400 (EDT) Received: from thumper.bellcore.com by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Fri, 21 May 93 10:02:48 EDT Received: from greenbush.bellcore.com by thumper.bellcore.com (4.1/4.7) id for info-andrew+@andrew.cmu.edu; Fri, 21 May 93 10:02:42 EDT Received: by greenbush.bellcore.com (4.1/4.7) id for info-andrew+@andrew.cmu.edu; Fri, 21 May 93 10:03:01 EDT Received: from Messages.8.5.N.CUILIB.3.45.SNAP.NOT.LINKED.greenbush.galaxy.sun4.41 via MS.5.6.greenbush.galaxy.sun4_41; Fri, 21 May 1993 10:02:58 -0400 (EDT) Message-Id: Date: Fri, 21 May 1993 10:02:58 -0400 (EDT) From: Nathaniel Borenstein Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII To: Jason Haar Subject: Re: sendmail and Mailbox Cc: info-andrew+@andrew.cmu.edu In-Reply-To: References: Excerpts from mail: 21-May-93 sendmail and Mailbox Jason Haar@cantva.canter (653+0) > Am I right in assuming that the initial filenames in Mailbox can be anything, and that no index file is required? Absolutely. Just try to generate it uniquely to avoid overwriting other files! There's a utility program $ANDREWDIR/etc/ams_genid that is perfect for this purpose..... \enddata{text822, 87992} \begindata{text822, 90179} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po3.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Tue, 25 May 1993 04:58:50 -0400 (EDT) Received: from po3.andrew.cmu.edu via qmail ID ; Tue, 25 May 1993 04:56:14 -0400 (EDT) Received: from chx400.switch.ch by po3.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Tue, 25 May 93 04:56:06 EDT X400-Received: by mta chx400.switch.ch in /PRMD=switch/ADMD=arcom/C=CH/; Relayed; Tue, 25 May 1993 10:55:35 +0200 X400-Received: by /PRMD=switch/ADMD=arcom/C=ch/; Relayed; Tue, 25 May 1993 10:55:19 +0200 X400-Received: by /PRMD=switch/ADMD=arcom/C=ch/; Relayed; Tue, 25 May 1993 10:55:13 +0200 Date: Tue, 25 May 1993 10:55:13 +0200 X400-Originator: kuenzler@komsys.tik.ethz.ch X400-Recipients: info-andrew+@andrew.cmu.edu X400-Mts-Identifier: [/PRMD=switch/ADMD=arcom/C=ch/;930525105513] X400-Content-Type: P2-1984 (2) Content-Identifier: 24 From: Urs Kuenzler Message-Id: <24*/S=kuenzler/OU=komsys/OU=tik/O=ethz/PRMD=SWITCH/ADMD=ARCOM/C=CH/@MHS> To: Andrew Mailing List Subject: ATK5.1 & MacX problem Hello, I'm using ATK 5.1 and MacX 1.2 as display server. As soon as I try loading a complex document (such as the ADEW-RefMan or arb) into ez, my MacX crashes. From time to time it crashes while loading the document and in other situations it keeps running for 5 seconds or even for some minutes. MacX seems to crash somewhere when doing memory management. It gets 5 MB and it never seems to run out of memory. I just get an "unimplemented instruction" trap and have to reboot my Mac. The same MacX did run without any major problem before we upgraded to ATK 5.1, no other X-client caused my MacX to crash and ATK 5.1 does not cause our sun workstations to crash either. Does anybody know this problem or something similar. Maybe this is a known behaviour. Thanks Urs K"unzler (ukuenzle@iiic.ethz.ch) \enddata{text822, 90179} \begindata{text822, 92516} Return-path: X-Andrew-Authenticated-as: 0;andrew.cmu.edu;Network-Mail Received: from po5.andrew.cmu.edu via trymail for info-andrew+@andrew.cmu.edu (->+dist+/afs/andrew.cmu.edu/usr0/ak99/dists/info-andrew-nostrip.dl) ID ; Fri, 28 May 1993 14:35:44 -0400 (EDT) Received: from po5.andrew.cmu.edu via qmail ID ; Fri, 28 May 1993 14:31:23 -0400 (EDT) Received: from mcenroe.cs.unc.edu by po5.andrew.cmu.edu (5.54/3.15) id for info-andrew+; Fri, 28 May 93 14:31:08 EDT Received: from menges by mcenroe.cs.unc.edu (5.65/UNC_08_21_92) id AA02821; Fri, 28 May 93 14:31:04 -0400 Received: by menges.cs.unc.edu (5.65/UNC_02-28-90) id AA03639; Fri, 28 May 93 14:31:02 -0400 Received: from Messages.7.15.N.CUILIB.3.45.SNAP.NOT.LINKED.menges.cs.unc.edu.pmax.ul4 via MS.5.6.menges.cs.unc.edu.pmax_ul4; Fri, 28 May 1993 14:30:58 -0400 (EDT) Message-Id: <4g1ZdWGM0c16E3FmII@menges.cs.unc.edu> Date: Fri, 28 May 1993 14:30:58 -0400 (EDT) From: John Menges To: info-andrew+@andrew.cmu.edu Subject: Re: Shadow Colors In-Reply-To: References: Excerpts from info-andrew: 12-Feb-93 Shadow Colors Robert Andrew Ryan@andre (744+0) > I am currently working on centralizing and improving the code which > chooses shadow colors for the menubar, the popup menus, scrollbars, and > all non-pushbutton buttons. > I'm curious whether or not there is any strong feeling as to whether I > should provide a preference to get the old behavior, and if so, what the > default value should be. > The main improvement provided by the new code is that the interior of > the button is always the same color as the background, and only the > background color is used in computing the top and bottom shadows. > Another benefit is that the code will be part of it's own library, so > the choices can be kept consistent between the various pieces of ATK > which now have 3d-type effects. > -Rob Ryan > Andrew Consortium Thank you, thank you, thank you for doing this!!! I use dark backgrounds & light foregrounds, so by default all raised/lowered areas are switched. I've been able to fix a lot of it by setting {Dialog,Scroll}Foreground to black and {Dialog,Scroll}Background to white, but I've never found a way to fix, e.g, the On/Off buttons in message options. Is there a preferance I can use to fix these until your updates are available? If not, can you suggest a quick code fix? \enddata{text822, 92516}