From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Lars Brinkhoff Newsgroups: gmane.emacs.devel Subject: Re: User-defined record types, v2 Date: Sun, 19 Mar 2017 10:17:35 +0100 Organization: nocrew Message-ID: <86wpblsk0g.fsf@molnjunk.nocrew.org> References: <86y3w2tt2n.fsf@molnjunk.nocrew.org> <86tw6qtt01.fsf@molnjunk.nocrew.org> <86k27mtsnv.fsf@molnjunk.nocrew.org> <86fuiatsh3.fsf@molnjunk.nocrew.org> <86bmsyts9f.fsf@molnjunk.nocrew.org> <8337eaxzc3.fsf@gnu.org> <8637eatm6f.fsf@molnjunk.nocrew.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1489915081 16173 195.159.176.226 (19 Mar 2017 09:18:01 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 19 Mar 2017 09:18:01 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Mar 19 10:17:57 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cpWyL-0003ll-1R for ged-emacs-devel@m.gmane.org; Sun, 19 Mar 2017 10:17:57 +0100 Original-Received: from localhost ([::1]:56042 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpWyR-0006RZ-6M for ged-emacs-devel@m.gmane.org; Sun, 19 Mar 2017 05:18:03 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47840) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpWyF-0006RU-Kg for emacs-devel@gnu.org; Sun, 19 Mar 2017 05:17:52 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cpWyC-0005oa-Bd for emacs-devel@gnu.org; Sun, 19 Mar 2017 05:17:51 -0400 Original-Received: from [195.159.176.226] (port=39059 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cpWyC-0005nH-5J for emacs-devel@gnu.org; Sun, 19 Mar 2017 05:17:48 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1cpWy3-00028u-4o for emacs-devel@gnu.org; Sun, 19 Mar 2017 10:17:39 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 20 Original-X-Complaints-To: usenet@blaine.gmane.org Cancel-Lock: sha1:IgER8dIKG7RqYOIwRHmK43WSoH8= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.emacs.devel:213146 Archived-At: Stefan Monnier wrote: >> I initially added this function to check everywhere that the first >> slot is a valid defstruct type name. But then Stefan Monnier added >> support for EIEIO instances and made the first slot be a class >> object. > > But I'm not even sure we should enforce this in the `record` and > `make-record` primitives. After all, it's not needed for safety. And > since we allow (aset 0 ) we can circumvent this check > anyway. Not quite. `aset' does the check too. Also, I thought about disallowing the built-in types. I imagine some code would rightly get confused if it saw `integer' for anything else than integers. But then, so much else in Emacs depends on people doing sensible things, so maybe no check is needed at all. If we come up with a need for a check, we know where to add it. If not, I can just delete the unused code.