From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] Add prettify symbols to python-mode Date: Wed, 23 Sep 2015 21:39:45 +0200 Message-ID: <87fv249b7i.fsf@fencepost.gnu.org> References: <1442777283-27514-1-git-send-email-mvoteiza@udel.edu> <20150921005306.GA29147@holos> <87h9mlwt6l.fsf@Rainer.invalid> <83bnctliay.fsf@gnu.org> <83oagtjemn.fsf@gnu.org> <87oagt84e7.fsf@fencepost.gnu.org> <83mvwdjc5v.fsf@gnu.org> <87k2rh81c5.fsf@fencepost.gnu.org> <83io71j5wt.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1443037210 9124 80.91.229.3 (23 Sep 2015 19:40:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 23 Sep 2015 19:40:10 +0000 (UTC) Cc: xfq.free@gmail.com, Stromeko@nexgo.de, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Sep 23 21:40:05 2015 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 1Zeptd-0007UU-BY for ged-emacs-devel@m.gmane.org; Wed, 23 Sep 2015 21:40:05 +0200 Original-Received: from localhost ([::1]:50284 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zeptc-00081v-QG for ged-emacs-devel@m.gmane.org; Wed, 23 Sep 2015 15:40:04 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:56468) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZeptV-0007yH-Lf for emacs-devel@gnu.org; Wed, 23 Sep 2015 15:39:58 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZeptU-0008W0-Ji for emacs-devel@gnu.org; Wed, 23 Sep 2015 15:39:57 -0400 Original-Received: from fencepost.gnu.org ([208.118.235.10]:39388) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZeptK-0008LH-Mq; Wed, 23 Sep 2015 15:39:47 -0400 Original-Received: from localhost ([127.0.0.1]:52423 helo=lola) by fencepost.gnu.org with esmtp (Exim 4.82) (envelope-from ) id 1ZeptJ-0005tN-SC; Wed, 23 Sep 2015 15:39:46 -0400 Original-Received: by lola (Postfix, from userid 1000) id 3EB98E0F08; Wed, 23 Sep 2015 21:39:45 +0200 (CEST) In-Reply-To: <83io71j5wt.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 23 Sep 2015 22:24:02 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.10 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:190306 Archived-At: Eli Zaretskii writes: >> From: David Kastrup >> Cc: xfq.free@gmail.com, Stromeko@nexgo.de, emacs-devel@gnu.org >> Date: Wed, 23 Sep 2015 19:58:18 +0200 >> >> Eli Zaretskii writes: >> >> >> From: David Kastrup >> >> Date: Wed, 23 Sep 2015 18:52:16 +0200 >> >> Cc: Xue Fuqiao , Stromeko@nexgo.de, emacs-devel@gnu.org >> >> >> >> C may not be a complicated language but it offers no significant >> >> in-language features for integrating data structures and their >> >> manipulators. As a consequence, working with Elisp data in C does not >> >> resemble either working with C or with Lisp. >> > >> > We have a small set of macros that make this a non-issue. >> >> Lisp_Object x[2]; >> x[0] = a; >> x[1] = b; >> return Fplus (2, x); >> >> does not resemble either a+b or (+ a b). A non-issue is something else. > > Where's "Elisp data" in this example? > > I thought by "working with Elisp data in C" you meant using Lisp data > structures passed to C functions, in which case the following is what > I had in mind (where 'value' is some Lisp data type): > > if (EQ (value, Qunspecified) || (EQ (value, QCignore_defface))) > return Qt; > else if (EQ (attribute, QCheight)) > return INTEGERP (value) ? Qnil : Qt; > else if (CONSP (value) && EQ (XCAR (value), QCwhatever)) > return XCDR (value); > else > return Qnil; Which is supposed to resemble perfectly ordinary C code or perfectly ordinary Lisp code? You can call it a "non-issue" all you like, but it is limiting the number of people comfortable working with the Emacs C core. As long as Emacs is expressive enough outside of the core, that's not really limiting its usefulness all that much, but for things like new window systems, one clearly cannot get around investing into C. -- David Kastrup