delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/03/03/11:45:34

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-0.3 required=5.0 tests=AWL,BAYES_50,RCVD_IN_DNSWL_NONE,UNPARSEABLE_RELAY
X-Spam-Check-By: sourceware.org
X-Yahoo-SMTP: jenXL62swBAWhMTL3wnej93oaS0ClBQOAKs8jbEbx_o-
Date: Thu, 3 Mar 2011 11:45:19 -0500
From: Christopher Faylor <cgf-use-the-mailinglist-please AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: Doubtful about unison
Message-ID: <20110303164519.GA26936@ednor.casa.cgf.cx>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <ikgf2f$vtm$1 AT dough DOT gmane DOT org> <fggnm61cfbkp0fm6jm0lvrns74bk56bls4 AT 4ax DOT com> <ikgjlh$tk7$1 AT dough DOT gmane DOT org> <aamnm61uhbmgbrq007c6oag7cd7n9hpdt2 AT 4ax DOT com> <ikgt6p$ubn$1 AT dough DOT gmane DOT org> <4D6BFD09 DOT 8020600 AT gmx DOT de> <AANLkTimi6R8MFSH63quHW3EqV4z5ucwtgNEPmCWWfjjc AT mail DOT gmail DOT com> <ikivlj$got$1 AT dough DOT gmane DOT org> <AANLkTikru7S2U8OsaQQoerwmruWVLcRc_ngDuNAiXcKB AT mail DOT gmail DOT com> <iko64n$gdk$1 AT dough DOT gmane DOT org>
MIME-Version: 1.0
In-Reply-To: <iko64n$gdk$1@dough.gmane.org>
User-Agent: Mutt/1.5.20 (2009-06-14)
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Thu, Mar 03, 2011 at 02:46:59PM +0100, Olivier Lefevre wrote:
>On 3/3/2011 8:06 AM, Andy Koppe wrote:
>>> In a slightly different line of thought, isn't it rather brittle of
>>> Cygwin that a minor upgrade (I was already at some 1.7 version)
>>> breaks applications? Think, a contrario, of how you can still run
>>> ancient Windows apps on XP.
>>
>> The problem you had was a case of broken forward compatibility,
>> whereas your Windows example is talking about backward compatibility.
>
>Yes, you're right, I had it mostly backwards.
>
>However in this case it seems the problem wasn't that Unison used new
>features of Cygwin but that somehow the layout of the Cygwin DLL had
>changed, in a way that broke applications. I am not much of a system-
>level programmer but in higher-level languages you'd expect things to
>keep working as long as functionality (i.e., method signatures) has not
>changed or that the new functionality is a strict superset of the older
>one. I am sure I am betraying a woeful ignorance of C-level programming,
>of linkers etc (which maybe isn't such a wise thing to do in a public
>forum; oh well) with this question but isn't there a way to pin down
>entry points and suchlike to ensure better forward compatibility? Would
>rebaseall have helped? This is just for my enlightenment: I am not
>suggesting you twist yourself into pretzel shapes trying to ensure
>stellar forward compatibility; I suspect Cygwin programming is tricky
>enough as it is.

I can't make much sense of the above.  It seems like gobble-de-gook.
Except for certain very rare cases, old programs should work fine with
new Cygwin DLLs.  We don't "change the layout" in a way that breaks
compatibility for old programs and new DLLs.

Since we do continually augment the Cygwin DLL by adding new features
and new functions, a program which is linked with a new Cygwin DLL may
make use of the new functions.  There isn't anything, short of time
travel, that the Cygwin DLL can do at that point to make the program
backwards compatible.  It's possible that a program might want to take
newer features into account but I think it would be rather daft and
counter-productive for anyone maintaining a program to worry about
that scenario.

Windows itself offers new APIs in newer OSes.  So a program built to
work on Windows 7 may not work on Windows XP.  That's just the way
the world works.

cgf

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019