From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Bruce Korb" Newsgroups: gmane.lisp.guile.devel Subject: Re: RFD: drop the GH interface. Date: Sun, 21 Sep 2008 11:02:24 -0700 Message-ID: <668c430c0809211102i701b3d40o37643bf6713fe28@mail.gmail.com> References: <87wshgl5sd.fsf@gnu.org> <871vzhho7c.fsf@gnu.org> <48D26E19.5000301@gnu.org> <49dd78620809210240r6a426487xdb893b55519f8ccd@mail.gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1222020160 15745 80.91.229.12 (21 Sep 2008 18:02:40 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 21 Sep 2008 18:02:40 +0000 (UTC) Cc: guile-devel@gnu.org To: "Neil Jerram" Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sun Sep 21 20:03:37 2008 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KhTHT-0002Jy-1J for guile-devel@m.gmane.org; Sun, 21 Sep 2008 20:03:37 +0200 Original-Received: from localhost ([127.0.0.1]:60793 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KhTGQ-0007iK-ML for guile-devel@m.gmane.org; Sun, 21 Sep 2008 14:02:30 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KhTGO-0007i3-Gs for guile-devel@gnu.org; Sun, 21 Sep 2008 14:02:28 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KhTGN-0007hj-TX for guile-devel@gnu.org; Sun, 21 Sep 2008 14:02:28 -0400 Original-Received: from [199.232.76.173] (port=43713 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KhTGN-0007hb-QJ for guile-devel@gnu.org; Sun, 21 Sep 2008 14:02:27 -0400 Original-Received: from yx-out-1718.google.com ([74.125.44.158]:62185) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KhTGN-0007m4-5j for guile-devel@gnu.org; Sun, 21 Sep 2008 14:02:27 -0400 Original-Received: by yx-out-1718.google.com with SMTP id 34so181255yxf.66 for ; Sun, 21 Sep 2008 11:02:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender :to:subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references :x-google-sender-auth; bh=El+Aq9PEtcK9/y9ybJzXJDQJDBzhn326pVkc1dTrLvM=; b=kteYmAavFsRcbb+iA42+wakDZQsLSE5k0rbKhmpHzfrMfbupxculzkqV5nv02sycZN hxKSVmqp9SvPw3tm4APYyV6DI+FIgt7+bJQRkwKHurSsQTEe7vEwwBw545xARp1dw5CQ 7flTY+Cl5BAyaNgL39mgusZ3sBNAHpVU42ooA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references:x-google-sender-auth; b=tvmWebcWXvGzFGzmMpT48xK2SXjM2WbpZBV/TE/yZdojFzfjZwDrP2TcyvD5VJ1YBk mC4QYKA7uCeJ+ymWVe0ejkqxJkTVWz6hGlKRJxIO8TcVCy/taAGZjSdgP8Y4TpMcVVhO QZMMNYZ/LnuZf3gWbFCwE58e0qpQ1c8wU/68w= Original-Received: by 10.150.145.20 with SMTP id s20mr585861ybd.124.1222020144545; Sun, 21 Sep 2008 11:02:24 -0700 (PDT) Original-Received: by 10.150.57.4 with HTTP; Sun, 21 Sep 2008 11:02:24 -0700 (PDT) In-Reply-To: <49dd78620809210240r6a426487xdb893b55519f8ccd@mail.gmail.com> Content-Disposition: inline X-Google-Sender-Auth: cb9729d5b97918f7 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:7733 Archived-At: Hi Neil, On Sun, Sep 21, 2008 at 2:40 AM, Neil Jerram wrote: > Hi Bruce, and thanks for your input on this... > > 2008/9/18 Bruce Korb : >> 1. the most retrograde platform must have all the GH capabilities in >> the SCM interfaces for their releases. It seems to take quite a few >> years for BSD to get around to building newer versions. > > Greg has countered this, I believe. Do you still think there's any > real concern here? To be honest, I don't know. Some years back I started using some newfangled Guile interfaces that were, at the time, a couple years old. I think it was a 1.6-ism. However, some variation of BSD (I'd guess not "Net") was still on 1.4.x. So, I became responsible for having some if-def code decide which way to do something based on the Guile version. Not a particularly difficult problem, but nevertheless a bug report + new release cycle problem. >> 3. I finally get around to removing GH stuff from my code > > Just to be clear: are you saying that you still need to do this? Once bitten, twice shy. I want to be as sure as I can that my "clients" are all up to 1.6 before dumping the last of 1.4 support. I am as retrograde as I can get away with. :) >> 4. a couple more years pass > > Why is this interval needed? We have two parallel development processes: Guile and AutoGen. They get picked up by clients at semi-random, un-coordinated points in time. My switch from GH must be after potential clients have pretty much all gotten recent enough Guile versions. Similarly, releasing a Guile without GH must happen long enough after your clients have switched that few such clients would get whacked. > I will make an announcement to the guile-users list; that should be > enough. (Anyone who is going to use or package a new Guile version > needs to be (at least vaguely) following guile-devel or guile-users.) That's probably my level of "following": vaguely. :) On a slightly unrelated question, are there any pending changes that would make the following code obsolete? I've hated using it ever since I wrote it, but I still do not know of any reasonable alternative. Thank you. Regards, Bruce SCM ag_scm_c_eval_string_from_file_line( char const * pzExpr, char const * pzFile, int line ) { SCM port; if (OPT_VALUE_TRACE >= TRACE_EVERYTHING) { fprintf( pfTrace, "eval from file %s line %d:\n%s\n", pzFile, line, pzExpr ); } #if GUILE_VERSION < 106000 { static char const zEx[] = "eval-string-from-file-line"; SCM expr = scm_makfrom0str( pzExpr ); port = scm_mkstrport( SCM_INUM0, expr, SCM_OPN | SCM_RDNG, zEx ); } #else port = scm_open_input_string( AG_SCM_STR02SCM( pzExpr )); #endif #if GUILE_VERSION < 107000 { static SCM file = SCM_UNDEFINED; static char* pzFl = NULL; scm_t_port* pt; if ( (pzFl == NULL) || (strcmp( AG_SCM_CHARS( file ), pzFile ) != 0) ) { if (pzFl != NULL) AGFREE(pzFl); AGDUPSTR(pzFl, pzFile, "eval file name"); file = AG_SCM_STR02SCM( pzFile ); } pt = SCM_PTAB_ENTRY(port); pt->line_number = line - 1; pt->file_name = file; } #else { static SCM file = SCM_UNDEFINED; static char* pzOldFile = NULL; if ((pzOldFile == NULL) || (strcmp( pzOldFile, pzFile ) != 0)) { if (pzOldFile != NULL) AGFREE( pzOldFile ); AGDUPSTR( pzOldFile, pzFile, "scheme file source" ); file = scm_from_locale_string( pzFile ); } scm_set_port_filename_x( port, file ); } { SCM ln = scm_from_int( line ); scm_set_port_line_x( port, ln ); } #endif { SCM ans = SCM_UNSPECIFIED; /* Read expressions from that port; ignore the values. */ for (;;) { SCM form = scm_read( port ); if (SCM_EOF_OBJECT_P( form )) break; ans = scm_primitive_eval_x( form ); } return ans; } }