From owner-freebsd-current@FreeBSD.ORG Tue Nov 9 05:35:42 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A23E116A4CE; Tue, 9 Nov 2004 05:35:42 +0000 (GMT) Received: from avas7.globetrotter.net (smtp2.globetrotter.net [142.169.1.152]) by mx1.FreeBSD.org (Postfix) with ESMTP id D4F5E43D31; Tue, 9 Nov 2004 05:35:41 +0000 (GMT) (envelope-from freebsd-current@sfina.com) Received: from smtp2.telusquebec.local(192.168.250.24) by avas7.globetrotter.net via csmap id be0cd48e_3210_11d9_912f_0002b3a434af_8979; Tue, 09 Nov 2004 00:32:27 -0500 (EST) Received: from avas7.globetrotter.net (c207.134.17-22.clta.globetrotter.net [207.134.17.22]) by smtp2.globetrotter.net (iPlanet Messaging Server 5.2) with SMTP id <0I6W007DJCVG5J@"TELUS Quebec">; Tue, 09 Nov 2004 00:35:41 -0500 (EST) Received: from c207.134.17-22.clta.globetrotter.net(207.134.17.22) by avas7.globetrotter.net via csmap id bd9b6894_3210_11d9_824c_0002b3a434af_8969; Tue, 09 Nov 2004 00:32:26 -0500 (EST) Date: Tue, 09 Nov 2004 00:36:40 -0500 From: Yuval Levy In-reply-to: <418FA238.80605@freebsd.org> To: Andre Oppermann Message-id: MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Importance: Normal X-Priority: 3 (Normal) X-MSMail-priority: Normal cc: freebsd-current@freebsd.org Subject: RE: FreeBSD 6.0 and onwards X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Nov 2004 05:35:42 -0000 Andre Oppermann wrote: > This doesn't work. You can't change API/ABI incrementally without breaking > applications. I am no OS expert and there are probably such situation in wich incrementally changing the API without breaking applications is not feasible or too hard to think of. Here a simple example where it works: A currency converter function is part of a web based application plattform: converted_amount = conversion (original_amount, original_currency, converted_currency). Then we realized we might also need to format the conversion for display. Introduce a fourth argument, a bolean (format/non-format). The new function was converted_amount = conversion (original_amount, original_currency, converted_currency, format). By testing if the fourth argument exists and defaulting to the original behaviour if it does not we upgraded without breaking the applications. Granted, this is a very simple example, far from the complexity of an operating system. It only shows that "this doesn't always work, but sometimes it could". Yuval Levy