X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=3.0 required=5.0 tests=AWL,BAYES_00,DKIM_ADSP_CUSTOM_MED,FORGED_YAHOO_RCVD,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED,RCVD_IN_BL_SPAMCOP_NET,RCVD_NUMERIC_HELO,SPF_HELO_PASS,T_RP_MATCHES_RCVD,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: Olivier Lefevre Subject: Re: Doubtful about unison Date: Thu, 03 Mar 2011 14:46:59 +0100 Lines: 27 Message-ID: References: <4D6BFD09 DOT 8020600 AT gmx DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 In-Reply-To: X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , 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 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. -- O.L. -- 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