From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Lisp object that refers to a C struct Date: Mon, 15 Oct 2012 21:07:21 -0400 Message-ID: References: <83ehkz4edw.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1350349652 26718 80.91.229.3 (16 Oct 2012 01:07:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 16 Oct 2012 01:07:32 +0000 (UTC) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 16 03:07:40 2012 Return-path: Envelope-to: ged-emacs-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 1TNvd9-0008DP-5g for ged-emacs-devel@m.gmane.org; Tue, 16 Oct 2012 03:07:35 +0200 Original-Received: from localhost ([::1]:40167 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TNvd2-00076i-2H for ged-emacs-devel@m.gmane.org; Mon, 15 Oct 2012 21:07:28 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:37965) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TNvcz-00076S-Bw for emacs-devel@gnu.org; Mon, 15 Oct 2012 21:07:26 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TNvcx-0002d1-Rw for emacs-devel@gnu.org; Mon, 15 Oct 2012 21:07:25 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.182]:27978) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TNvcw-0002cc-7c; Mon, 15 Oct 2012 21:07:22 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAG6Zu09MCoeh/2dsb2JhbABEtBGBCIIVAQEEAVYjBQsLNBIUGA0kiBwFugmQRAOjM4FYgwU X-IronPort-AV: E=Sophos;i="4.75,637,1330923600"; d="scan'208";a="201691749" Original-Received: from 76-10-135-161.dsl.teksavvy.com (HELO fmsmemgm.homelinux.net) ([76.10.135.161]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 15 Oct 2012 21:07:21 -0400 Original-Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id 5257BAE192; Mon, 15 Oct 2012 21:07:21 -0400 (EDT) In-Reply-To: <83ehkz4edw.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 15 Oct 2012 23:24:59 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 206.248.154.182 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:154365 Archived-At: > It seems like a pseudo-vector is used for this, but in my case it > looks like an overkill: my struct has no Lisp members. You can use either a pseudo-vector, or s Lisp_Misc. > There's Lisp_Save_Value, which looks very promising, Lisp_Save_Value is a Lisp_Misc. > but why does its documentation say it's for record_unwind_protect? > Is there anything in it which would preclude its use > outside unwinding? It doesn't look very pretty when printed, so it's generally better not to expose it to users too much. If your value will usually not be visible to Elisp code, then Lisp_Save_Value is perfectly fine. Otherwise, better define your own type so that its printed representation can be more helpful, indicating what it's used for (I presume it's for a file-watch-descriptor). Stefan