From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Oddities with dynamic modules Date: Thu, 21 Mar 2019 22:25:28 +0200 Message-ID: <83h8bwt1on.fsf@gnu.org> References: <83y3b4wdw9.fsf@gnu.org> <83tvhal45r.fsf@gnu.org> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="47943"; mail-complaints-to="usenet@blaine.gmane.org" Cc: emacs-devel@gnu.org To: Philipp Stephani Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Mar 21 21:34:44 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.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h74Oh-000CMY-QE for ged-emacs-devel@m.gmane.org; Thu, 21 Mar 2019 21:34:43 +0100 Original-Received: from localhost ([127.0.0.1]:46428 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h74Og-0006fT-MP for ged-emacs-devel@m.gmane.org; Thu, 21 Mar 2019 16:34:42 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:42375) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h74Ml-00063Y-UC for emacs-devel@gnu.org; Thu, 21 Mar 2019 16:32:44 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:49685) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h74Fn-0006OF-JK; Thu, 21 Mar 2019 16:25:31 -0400 Original-Received: from [176.228.60.248] (port=2242 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1h74Fk-0002uF-6p; Thu, 21 Mar 2019 16:25:30 -0400 In-reply-to: (message from Philipp Stephani on Thu, 21 Mar 2019 21:12:05 +0100) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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:234481 Archived-At: > From: Philipp Stephani > Date: Thu, 21 Mar 2019 21:12:05 +0100 > Cc: Emacs developers > > > How is that relevant? Equality predicates are used very frequently > > when dealing with Lisp objects; 'eq' is not different from others in > > that respect. > > I don't recollect the reasoning, but Daniel stated that "eq" is > strictly necessary, so you might want to ask him. > [...] > > > It is *mostly* minimal. A *completely* minimal API would not even have > > > integer and floating-point conversion functions, as those can be > > > written using the string functions. But that would be far less simple > > > and robust. > > > "eq" and "is_not_nil" are special in that they implement access to > > > fundamental object properties and can't fail, so they are fundamental > > > enough to deserve an entry in the module table. > > > > I cannot follow this reasoning, sorry. It sounds like you are saying > > that the decision what to implement and what not justifies itself > > because it's there. All I can say is that as someone who wrote a > > couple of lines of code in Emacs, the stuff that is in the API and the > > omissions look quite arbitrary to me. > > Please see Daniel's original reasoning for the design. I asked the questions after reading that, so please believe me that I didn't find answers to my questions there. > Mostly the first sentence "We want an ABI powerful enough to let C > modules interact with Emacs, but decoupled enough to let the Emacs > core evolve independently." That means a judgment call, and I was questioning the judgment. Saying that someone made a call doesn't explain why the decision was what it was.