From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Yuan Fu Newsgroups: gmane.emacs.devel Subject: How to add pseudo vector types Date: Wed, 14 Jul 2021 13:37:47 -0400 Message-ID: <84B70E9B-E1E5-40D3-AFBE-033CACF15914@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22368"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Jul 14 19:39:34 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m3ir7-0005a4-IH for ged-emacs-devel@m.gmane-mx.org; Wed, 14 Jul 2021 19:39:33 +0200 Original-Received: from localhost ([::1]:42464 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m3ir6-0006E1-A8 for ged-emacs-devel@m.gmane-mx.org; Wed, 14 Jul 2021 13:39:32 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54818) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m3ipU-0004tk-F0 for emacs-devel@gnu.org; Wed, 14 Jul 2021 13:37:52 -0400 Original-Received: from mail-qk1-x72f.google.com ([2607:f8b0:4864:20::72f]:46784) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m3ipT-0005pv-1J for emacs-devel@gnu.org; Wed, 14 Jul 2021 13:37:52 -0400 Original-Received: by mail-qk1-x72f.google.com with SMTP id 201so2369819qkj.13 for ; Wed, 14 Jul 2021 10:37:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:content-transfer-encoding:mime-version:subject:message-id:date :to; bh=FjNKYOTAwkmzd8nTwvDxZakFKVjtiILXrf2AAz4+q6s=; b=GKkzqIFH7NOr99jTD2le72fT2yrOkhFKWfoX1h1clKSvXuXcNNhqjZYfLVUyInKWrG 3ELR17ZA5l6upKJWLPIDKCh6UbNT15yH+fYRD89k0DpxEWEtbBJzyMkicm1FRd4FbIum S9btky7RrDiwtoyX3Rhc8j1KWpo/2s7VmRAyOJVIva+bi9z5vcW1y5MQ+YDkHgcWYVLI y3oVVxBn3awGVA5llDnv4b1EKEotCUwLn07aUx3y6BArL5anhq4Di6ccHSKKJIj4iYU4 Va2AqwguM6vGZatO/YnWPoB/FNwRue2fvJN4/ZqMaZPOkWmtQNVAVZyZbr6GJ/S1tfd+ YWCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:content-transfer-encoding:mime-version :subject:message-id:date:to; bh=FjNKYOTAwkmzd8nTwvDxZakFKVjtiILXrf2AAz4+q6s=; b=TsIgGHYSUmlEm2mwye76ZTIutcMN5+eCovYYd4Cz/B8bPqaaDWEGHgIR784ldGjWzv n0smgx2TBcDSDnyuG+02sN+8CSvkl5o+mRr7SoVcZWF7GkEEQW73/0yMlXWRBBdZ7Jxh /71N4yJMOXfWlrdIxk4TREEvQpApRn6SnsTVscz8WFRiHfNRK3C2wVFEkPNp6HTd8UVq a/sqZSpa9mStW2m2QgTw23EhirOKDWzEuF6TcdYulgz8WsObYrbjrEaM28dOYbCbM3Lu r4xqEIcrGUBjmGKkLn95kOU9OKlFqnpPJpF/djpHQ6JXcJZL1Gf1x8e2v+DUuFo25g5S HSAA== X-Gm-Message-State: AOAM530++Q72SSasy9GNf8DKut3A01imWXS6ASBc4d+8Mr1bUj3vijqv QnJcDfiuJIep8npBdkY4cvoALbb8i/zcag== X-Google-Smtp-Source: ABdhPJxDMokbr/4QfcH79ux/YOBBfCg8F27ZdqdoqRtAeO4CrMT83ezIHgn2d3fjzV3d5BxiOsa5Gg== X-Received: by 2002:a37:27c7:: with SMTP id n190mr11196031qkn.466.1626284269370; Wed, 14 Jul 2021 10:37:49 -0700 (PDT) Original-Received: from ?IPv6:2601:98a:4200:9210:99a7:da52:237a:8f12? ([2601:98a:4200:9210:99a7:da52:237a:8f12]) by smtp.gmail.com with ESMTPSA id n20sm1362835qkk.102.2021.07.14.10.37.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jul 2021 10:37:49 -0700 (PDT) X-Mailer: Apple Mail (2.3654.60.0.2.21) Received-SPF: pass client-ip=2607:f8b0:4864:20::72f; envelope-from=casouri@gmail.com; helo=mail-qk1-x72f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:271221 Archived-At: Say I want to expose tree-sitter=E2=80=99s parser to lisp, and I define = it as a new pseudo vector. struct Lisp_TS_Parser { union vectorlike_header header; Lisp_Object buffer; TSParser *parser; TSTree *tree; TSInput input; }; Now if I want to return a Lisp_Object, do I initialize this struct and = cast it into a Lisp_Object and return it? Like: Lisp_TS_parser lisp_parser; ... return (Lisp_Object)lisp_parser; And how do I use a USER_PTR? Do I cast it into (struct Lisp_User_Ptr) = and use it normally, or is there some helper function that I should use? Are there examples of using pseudo vectors? Thanks Yuan=