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: goops proposal: proper struct classes Date: Thu, 05 May 2011 22:39:06 +0200 Message-ID: References: <87fwot14wl.fsf@gnu.org> <8739ksnbnf.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1304627963 5072 80.91.229.12 (5 May 2011 20:39:23 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 5 May 2011 20:39:23 +0000 (UTC) Cc: guile-devel@gnu.org To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu May 05 22:39:19 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QI5KP-0001UY-Em for guile-devel@m.gmane.org; Thu, 05 May 2011 22:39:17 +0200 Original-Received: from localhost ([::1]:36038 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QI5KP-0006Uo-1d for guile-devel@m.gmane.org; Thu, 05 May 2011 16:39:17 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:40372) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QI5KM-0006Ui-OA for guile-devel@gnu.org; Thu, 05 May 2011 16:39:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QI5KL-00024E-E5 for guile-devel@gnu.org; Thu, 05 May 2011 16:39:14 -0400 Original-Received: from a-pb-sasl-sd.pobox.com ([64.74.157.62]:40307 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QI5KL-000249-6m; Thu, 05 May 2011 16:39:13 -0400 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 5CB1B4FDB; Thu, 5 May 2011 16:41:16 -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:content-transfer-encoding; s=sasl; bh=sj7WDhqLjJRF xtyTnAVTahZND5c=; b=HngVTZWVt/SqYc3oN5dqa63FXjbHxMjDQHW46kTmUe57 yy0Mu0/nwKpbfU+idhWX08PidIEEoqU2ynQLhxYZ2ylH+F00NaNSlj1AHbmqOmY6 FIZQyOodhF0SvMC1NthGfjvYkM4BbVYFujRTJGst/pZ5lJif4NZvqXj//Nv+PkQ= 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:content-transfer-encoding; q=dns; s=sasl; b=xGirtY g+kRN7XwK3bGOcxyyT4RI3D/y5Gqj0crxgVAFLofeNVXPeX2N9QggIQsByYKZ5cE DYvEbaJYs3w2pImc2vmAi0VFaqtF9KTurH7zTsy+4+DORMAtkW0WkkeJ3FC+CJqI eIEKAUgIMSjGO0GinQz09/XLAFs/PNc4rUz4M= Original-Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 493994FDA; Thu, 5 May 2011 16:41:15 -0400 (EDT) Original-Received: from unquote.localdomain (unknown [90.164.198.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id AA0BC4FD9; Thu, 5 May 2011 16:41:13 -0400 (EDT) In-Reply-To: <8739ksnbnf.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Thu, 05 May 2011 22:19:16 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) X-Pobox-Relay-ID: 0560D3D8-7758-11E0-8BB4-90BEB0B5FC3A-02397024!a-pb-sasl-sd.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-Received-From: 64.74.157.62 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:12439 Archived-At: On Thu 05 May 2011 22:19, ludo@gnu.org (Ludovic Court=C3=A8s) writes: >> Vtables *are* classes, on a fundamental level. Bare vtables are not as >> nice as , but they do describe instances. SCM_CLASS_OF() is >> SCM_STRUCT_VTABLE(). > > OK, it would be more elegant. > > Can it be achieved without GOOPsifying too much the rest of Guile? > I mean, creating and accessing raw structs should remain as lightweight as > currently, so that syntactic-only records =C3=A0 la SRFI-9 can be > implemented. GOOPS objects are currently heavyweight compared to raw > structs. Yes, I think it can. Actually the motivation was to remove the call to scm_i_define_class_for_vtable from structs, which will allow proper layering of goops and structs. (You are right to be concerned, I think; GOOPS is pretty neat to have, and appropriate to some domains, but has fundamental problems with modularity.) Cheers, Andy --=20 http://wingolog.org/