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: [PATCH] Add internal-only port structure; move iconv descriptors there Date: Mon, 01 Apr 2013 22:54:43 +0200 Message-ID: <87a9pic6p8.fsf@pobox.com> References: <87vc9ij5z0.fsf@pobox.com> <87fw0l2yyk.fsf@gnu.org> <877gltxgrg.fsf_-_@tines.lan> <87y5e8stst.fsf@pobox.com> <87d2vdekws.fsf@tines.lan> <87d2uk62a0.fsf_-_@tines.lan> <87a9poin2d.fsf@pobox.com> <87zjxk57l6.fsf_-_@tines.lan> <87fvzadqpv.fsf@pobox.com> <87vc8610jb.fsf@tines.lan> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1364849690 23743 80.91.229.3 (1 Apr 2013 20:54:50 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 1 Apr 2013 20:54:50 +0000 (UTC) Cc: Ludovic =?utf-8?Q?Court=C3=A8s?= , guile-devel@gnu.org To: Mark H Weaver Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Apr 01 22:55:17 2013 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 1UMll6-0003BQ-DD for guile-devel@m.gmane.org; Mon, 01 Apr 2013 22:55:16 +0200 Original-Received: from localhost ([::1]:54457 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UMlkh-0005Nt-Un for guile-devel@m.gmane.org; Mon, 01 Apr 2013 16:54:51 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:49775) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UMlke-0005NU-Ay for guile-devel@gnu.org; Mon, 01 Apr 2013 16:54:50 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UMlkd-0004Nc-5d for guile-devel@gnu.org; Mon, 01 Apr 2013 16:54:48 -0400 Original-Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:52125 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UMlkd-0004NW-1k; Mon, 01 Apr 2013 16:54:47 -0400 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 66BD7BB90; Mon, 1 Apr 2013 16:54:46 -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=5sudwpx8BKdc/FwLbLMFghqdTTc=; b=Z82C7a Ir4jpWjkjzzEUVaw9ycFBMx8VCIlAILvry9AK+CkyTRdBTZn2yo3sITBl5B0w+ED k1qEQEL4++7uJC8JDOtOs/rP3lawoXE80gv3xJxRDnJsAutshL+6Gg64pwbI1X0U ofHxTgQsMrGExApC29UbnS03i+7ucKqivjycE= 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=tRkKqr8QBR2KjznxUuD2MGjI+3fjS75u 25tZIEZGn2enn/u7V6w0OX6bXModwPCLDBtbHS6nSPve9s9n2UJz5t5JmJ/dJq4k qydxEO/7S2yTetDQRG8MpksIa4kJTYvhBdgzgnvJ5fkjogNVgNYR+ZdgTV6AqK7s YiwcFACGwi4= Original-Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 5ED0BBB8F; Mon, 1 Apr 2013 16:54:46 -0400 (EDT) Original-Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id D5B2BBB8E; Mon, 1 Apr 2013 16:54:45 -0400 (EDT) In-Reply-To: <87vc8610jb.fsf@tines.lan> (Mark H. Weaver's message of "Mon, 01 Apr 2013 16:03:20 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) X-Pobox-Relay-ID: 62907014-9B0E-11E2-8D32-D36F0E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 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:16100 Archived-At: On Mon 01 Apr 2013 22:03, Mark H Weaver writes: >>> SCM z = scm_cons (SCM_EOL, SCM_EOL); >>> - scm_t_port *entry = (scm_t_port *) scm_gc_calloc (sizeof (scm_t_port), "port"); >>> + scm_t_port *entry = scm_gc_typed_calloc (scm_t_port); >>> + scm_t_port_internal *pti = scm_gc_typed_calloc (scm_t_port_internal); >>> const char *enc; >> >> How about allocating a struct { scm_t_port a; scm_t_port_internal b; } >> and get the pointers from there? > > I was hoping to do something like this in master, but having thought > about it some more, I don't see how to do this without running afoul of > the strict aliasing rules. Though we already violate them in innumerable ways in Guile, this is not one of those cases: struct foo { a a; b b; } *foo; foo = malloc (sizeof (*foo)); a* a = &bar.a; b* b = &bar.b; Andy -- http://wingolog.org/