From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel Subject: Re: 01/02: Re-implement (ice-9 streams) in terms of (srfi srfi-41) Date: Wed, 11 Mar 2015 09:30:54 +0100 Message-ID: <87ioe8x7ep.fsf@pobox.com> References: <20150309125201.7033.46022@vcs.savannah.gnu.org> <8761a81brb.fsf@netris.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1426062676 29377 80.91.229.3 (11 Mar 2015 08:31:16 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 11 Mar 2015 08:31:16 +0000 (UTC) Cc: guile-devel@gnu.org To: Mark H Weaver Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Mar 11 09:31:07 2015 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YVc2l-0006Pr-FR for guile-devel@m.gmane.org; Wed, 11 Mar 2015 09:31:07 +0100 Original-Received: from localhost ([::1]:53182 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVc2k-0003Rf-T5 for guile-devel@m.gmane.org; Wed, 11 Mar 2015 04:31:06 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39223) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVc2g-0003RI-Bo for guile-devel@gnu.org; Wed, 11 Mar 2015 04:31:03 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YVc2d-0001oH-4C for guile-devel@gnu.org; Wed, 11 Mar 2015 04:31:02 -0400 Original-Received: from pb-sasl1.int.icgroup.com ([208.72.237.25]:51601 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVc2d-0001oA-0M for guile-devel@gnu.org; Wed, 11 Mar 2015 04:30:59 -0400 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id 6DB6A36E1C; Wed, 11 Mar 2015 04:30:58 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=ZyAPFeZmL9Lhayuxrubh1iIVptA=; b=kwfoT4 7afm4AalBNHz8jKg18a5MD9jAgNiyu12fjol2CwKl4nswR69zdKqXwTz4ey3y6Rr 2Cwp0VKls0pPGGXPHMtD6m40Y+/I5b0tXbGhgeFtRsSVQMwWQvxFq4uu6HO+dqTi oQcoZkDAEXSsf5ag7E4SKjvtefmoxQQ9IBj9E= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=YWlg4H3Zlq/Qp+qzH+a6AIvR5cTEHrPi WKnYvu2RiPmq2QO8NFthxYu5iCyFT/WO4F0ilI6d6kkntyT4eDpCq1X2CeGyUGjP a5AmAL1e73cLo7nLSDz18k9bnLhHL7fyq3kPGajBadO16GaZeIDnkTpTP6BPXfKZ Sk/MwJos3wU= Original-Received: from pb-sasl1.int.icgroup.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id 5F39936E1B; Wed, 11 Mar 2015 04:30:58 -0400 (EDT) Original-Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by pb-sasl1.pobox.com (Postfix) with ESMTPSA id 889E036E13; Wed, 11 Mar 2015 04:30:57 -0400 (EDT) In-Reply-To: <8761a81brb.fsf@netris.org> (Mark H. Weaver's message of "Tue, 10 Mar 2015 22:58:00 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) X-Pobox-Relay-ID: F0E52DD0-C7C8-11E4-97A8-96E29252DF99-02397024!pb-sasl1.pobox.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.72.237.25 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:17698 Archived-At: Hi! Sorry, I tried to grab you by chat but I think we missed each other. On Wed 11 Mar 2015 03:58, Mark H Weaver writes: >> commit aead655a45e689b332cfd148ecbb6d764e2c8eb8 >> Author: Andy Wingo >> Date: Thu Mar 5 09:44:53 2015 +0100 >> >> Re-implement (ice-9 streams) in terms of (srfi srfi-41) >> >> * module/ice-9/streams.scm: Re-implement in terms of SRFI-41. Passes >> tests. > > I think we can't do this because (ice-9 streams) are based on native > Guile promises which provide built-in thread synchronization, whereas > SRFI-41 streams are based on SRFI-45 promises which do not include > thread synchronization. Interesting, this isn't the objection I thought you might have :) The motivating case is GDB, that because it supports guile before 2.0.9 that we can't use the excellent SRFI-41 streams there. On the other hand that's terrible to add new users to ice-9 streams, and indeed terrible in Guile to have two disjoint lazy stream types. (Perhaps this is another problem that could be solved with polymorphism? Dunno.) Since GDB will expose streams in its interface, that means more and more users of ice-9 streams, yuck. `make-stream' is terrible. Anyway reimplementing ice-9 streams in terms of srfi-41 provides a migration path away from ice-9 streams, such that we can deprecate the module and hopefully remove it some time. I think you probably agree that would be nice to do if we can manage it. So, the question is -- is there a level of legacy fidelity of an ice-9-streams-on-top-of-srfi-41 that would allow us to make this change? Is it "identical" or is "pretty close" sufficient? I submit that "pretty close" is OK, for some definitions of pretty close, as long as the changes are documented in NEWS. So, what if we just document this change? We could roll it back of course but blah, srfi-41 is so much nicer. Andy -- http://wingolog.org/