From mboxrd@z Thu Jan 1 00:00:00 1970 Delivered-To: chneukirchen@gmail.com Received: by 10.86.99.8 with SMTP id w8cs95484fgb; Mon, 5 Oct 2009 19:52:47 -0700 (PDT) Received-SPF: pass (google.com: domain of grbounce-ceibQwUAAAB4YPBqaDIjI2bFOCxyyh3G=chneukirchen=gmail.com@googlegroups.com designates 10.115.66.13 as permitted sender) client-ip=10.115.66.13; Authentication-Results: mr.google.com; spf=pass (google.com: domain of grbounce-ceibQwUAAAB4YPBqaDIjI2bFOCxyyh3G=chneukirchen=gmail.com@googlegroups.com designates 10.115.66.13 as permitted sender) smtp.mail=grbounce-ceibQwUAAAB4YPBqaDIjI2bFOCxyyh3G=chneukirchen=gmail.com@googlegroups.com; dkim=pass header.i=grbounce-ceibQwUAAAB4YPBqaDIjI2bFOCxyyh3G=chneukirchen=gmail.com@googlegroups.com Received: from mr.google.com ([10.115.66.13]) by 10.115.66.13 with SMTP id t13mr1984582wak.18.1254797566796 (num_hops = 1); Mon, 05 Oct 2009 19:52:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=beta; h=domainkey-signature:received:received:x-sender:x-apparently-to :received:received:received:received-spf:received:date:from:to :subject:message-id:references:mime-version:content-type :content-disposition:in-reply-to:user-agent:reply-to:sender :precedence:x-google-loop:mailing-list:list-id:list-post:list-help :list-unsubscribe:x-beenthere-env:x-beenthere; bh=jiLeyq7EelWQ31XDzoQkVlQ2esmgeK7q9AWhfaX3LrE=; b=JCemi8k/q3UN1k5SV2WUXia+by3zJu/UQmaF8AaJzjvOw4yd+1tZwxYSpvWVMNeLVn GECjfQDx+QDhmXxvyPIk7h0rpjnVAShPCeW8Ts6QW60V2HDTfhod6HUj1FfKuxwscmuH 9eg3KpNAHDIQxcFCYQICLtHH1cwM8SDZdgfl0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlegroups.com; s=beta; h=x-sender:x-apparently-to:received-spf:authentication-results:date :from:to:subject:message-id:references:mime-version:content-type :content-disposition:in-reply-to:user-agent:reply-to:sender :precedence:x-google-loop:mailing-list:list-id:list-post:list-help :list-unsubscribe:x-beenthere-env:x-beenthere; b=3dasHEDnkzJnYtHSPx63RnxmDp9IH9a4C1eEzk7TshBcWJSPsCd1mGpP6NGLM/VNyX nuJjAuMTgCPuifykJoywUZqX9yjtvzZy42iP+xkG8LGyEPz6LIzHsMRLS3oQxUi6O+bn QScX9WGLqVWWq0rviNB54znVh7Uk1rg8jD6V4= Received: by 10.115.66.13 with SMTP id t13mr189359wak.18.1254797566734; Mon, 05 Oct 2009 19:52:46 -0700 (PDT) Received: by 10.106.139.12 with SMTP id m12gr1681prd.0; Mon, 05 Oct 2009 19:52:43 -0700 (PDT) X-Sender: normalperson@yhbt.net X-Apparently-To: rack-devel@googlegroups.com Received: by 10.115.84.39 with SMTP id m39mr1140308wal.26.1254797561974; Mon, 05 Oct 2009 19:52:41 -0700 (PDT) Received: by 10.115.84.39 with SMTP id m39mr1140306wal.26.1254797561943; Mon, 05 Oct 2009 19:52:41 -0700 (PDT) Return-Path: Received: from dcvr.yhbt.net (dcvr.yhbt.net [64.71.152.64]) by gmr-mx.google.com with ESMTP id 4si1008866pxi.10.2009.10.05.19.52.41; Mon, 05 Oct 2009 19:52:41 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of normalperson@yhbt.net designates 64.71.152.64 as permitted sender) client-ip=64.71.152.64; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of normalperson@yhbt.net designates 64.71.152.64 as permitted sender) smtp.mail=normalperson@yhbt.net Received: from localhost (dcvr.yhbt.net [127.0.0.1]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPSA id 7A52F1F791; Tue, 6 Oct 2009 02:52:41 +0000 (UTC) Date: Mon, 5 Oct 2009 19:52:40 -0700 From: Eric Wong To: rack-devel@googlegroups.com Subject: Re: Questions about the Prohibition of String Subclasses in responses Message-ID: <20091006025239.GB23138@dcvr.yhbt.net> References: <20091005230246.GA27564@dcvr.yhbt.net> <20091005232208.GB27564@dcvr.yhbt.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) Reply-To: rack-devel@googlegroups.com Sender: rack-devel@googlegroups.com Precedence: bulk X-Google-Loop: groups Mailing-List: list rack-devel@googlegroups.com; contact rack-devel+owner@googlegroups.com List-Id: List-Post: List-Help: List-Unsubscribe: , X-BeenThere-Env: rack-devel@googlegroups.com X-BeenThere: rack-devel@googlegroups.com Michael Koziarski wrote: > I guess fundamentally I'm still not seeing a reason for the current > restriction to no-child-classes beyond 'might break C-extensions'. > What kind of code is in those c extensions which might break? We could > verify our subclasses with that same kind of code and see what > happens. The whole purpose of inheritance is to ensure subtypes can > be used interchangably, we've put some effort into making sure we're > 'liskov-approved'[1] and I'd be surprised if anything breaks. Actually, I think the vast majority of subclasses are safe. Very contrived, but only(?) subclasses implemented in C that redefine their internal representation to something incompatible with their (expected) superclass would get broken (when accessed by other C extensions). Fortunately I don't know of any extensions that crazy as there's no point in subclassing at that point. And if there are, maybe people using them deserve to get their apps broken :> > Having said that, I've been surprised before Part of me wants to apply this change and stick it into a release just to see what (if anything it) breaks. Fortunately for the rest of you I'm not part of the Rack core team :) -- Eric Wong