From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: list of elisp primitives ? Date: Thu, 26 Dec 2019 10:09:36 -0800 (PST) Message-ID: <153c262b-d4f6-4fc4-9fc2-57c58312ae1f@default> References: <627F3815-987E-4E82-8118-EE559CA7721F@traduction-libre.org> <5E53A27C-7C86-4275-AC12-9799C3CB1956@traduction-libre.org> <701C773A-96C5-47FD-B75F-92947976E57B@traduction-libre.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="19563"; mail-complaints-to="usenet@blaine.gmane.org" To: Jean-Christophe Helary , Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Dec 26 19:09:59 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1ikXaA-0004uK-RD for ged-emacs-devel@m.gmane.org; Thu, 26 Dec 2019 19:09:58 +0100 Original-Received: from localhost ([::1]:55686 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ikXa9-0002b6-N2 for ged-emacs-devel@m.gmane.org; Thu, 26 Dec 2019 13:09:57 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35888) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ikXa2-0002b0-Vk for emacs-devel@gnu.org; Thu, 26 Dec 2019 13:09:52 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ikXa1-0001pX-HE for emacs-devel@gnu.org; Thu, 26 Dec 2019 13:09:50 -0500 Original-Received: from userp2120.oracle.com ([156.151.31.85]:59440) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ikXa1-0001om-8U for emacs-devel@gnu.org; Thu, 26 Dec 2019 13:09:49 -0500 Original-Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id xBQHxLJH004173; Thu, 26 Dec 2019 18:09:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : subject : references : in-reply-to : content-type : content-transfer-encoding; s=corp-2019-08-05; bh=CAMgIZInN3XkPB6CAZfmrpGD9mpBYIVeri/DXaLtdkY=; b=HX/4tBPWa8qxAJGt+Iaye77zQBkfABDyFfoVi0zl+ixeYi+U1txuBj2nmTkF4hFMjLdL 5gnYvpO99kwQ6AeprlNodBX9I9HrAOcSbk7g1oj6bkSVk6mNBSVVuG3uhPtfusqmzmc+ VmQvHVvYqw2DkO+1f9A9cbMMm7CkDbqjYXUquLH0QiXdetTKnSGTOEDmNb2tsEK/PZnD Z3pe0xLTQB3I/4iWwORdNBR5CQlK070sWfE/jGh6x5vmcX6q8O0WrxGBzAYzaKAI+paH ClAawf4PC9anYw9nMy596GplxHToxz8sys2dEHIZS794FYwOAsaNfF5ci8dUzc5Hs8m2 Vg== Original-Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2120.oracle.com with ESMTP id 2x1c1r2swx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 26 Dec 2019 18:09:45 +0000 Original-Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.27/8.16.0.27) with SMTP id xBQHxKig185945; Thu, 26 Dec 2019 18:09:45 GMT Original-Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userp3020.oracle.com with ESMTP id 2x3nn7n1uq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 26 Dec 2019 18:09:45 +0000 Original-Received: from abhmp0008.oracle.com (abhmp0008.oracle.com [141.146.116.14]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id xBQI9bJH025442; Thu, 26 Dec 2019 18:09:37 GMT In-Reply-To: <701C773A-96C5-47FD-B75F-92947976E57B@traduction-libre.org> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.4939.0 (x86)] X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9482 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=558 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1911140001 definitions=main-1912260164 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9482 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=617 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1911140001 definitions=main-1912260164 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.85 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:243666 Archived-At: > I'm not suggesting that implementing lisp functions > in C is related to ease of learning or anything. >=20 > My idea, which may be wrong, is that lisp code uses > building blocks to provide more advanced functions > and that the most basic blocks are lisp functions > implemented in C. Don't confuse building blocks for implementing Lisp in C with building blocks for defining Lisp in Lisp, which I suspect is really what you're after: a set of primitive Lisp constructs that can be used to define the rest of the language. > Hence, knowing the building blocks (or a few dozen > useful ones) can give a clearer idea of what to do > with elisp in general. There are various alternative subsets of Lisp constructs that can be used to do this. If `cond' is a primitive then you can implement `if', and vice versa, for example. A Lisp definition of `eval' might get you started: https://igor.io/2013/04/03/sexpr-meta-eval.html As Marcin pointed out, the search term you want, when looking for info about this, is "metacircular interpreter".