unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Davis Herring <herring@lanl.gov>
To: "Andreas Röhler" <andreas.roehler@online.de>
Cc: "Alan Mackenzie" <acm@muc.de>, "Eli Zaretskii" <eliz@gnu.org>,
	"Clément Pit--Claudel" <clement.pit@gmail.com>,
	emacs-devel@gnu.org
Subject: Re: C and Emacs Lisp code parts
Date: Tue, 5 Jul 2016 11:02:13 -0600	[thread overview]
Message-ID: <577BE815.9050805@lanl.gov> (raw)
In-Reply-To: <0606cae0-93b6-7e4a-c760-411326ac6970@online.de>

>> Git, like init (and /etc/init.d), Emacs, NumPy, and basically every
>> other non-trivial software system in existence, consists of a mix of
>> compiled and interpreted code according to the strengths and
>> weaknesses of each.  Everyone knows this.
>
> So why you tell that?
> [...]
> Still don't understand why qualifying git "C-based" should be wrong.

Because you drew attention to Git's C basis as (what appeared to be) an 
argument for moving Emacs in that direction, despite the fact that Emacs 
is already C-based in much the same fashion as Git (other than that 
there are many C functions which take Lisp_Object).

> My suggestion is about re-considerating, reversing a kind of dogmatic
> pro-elisp policy - as I felt it.
> While completely agree with Clément's posts here --stressing the
> benefits of Lisp debugging etc.--
> these strength is less important WRT lifetime of core functions.

The extent of that policy is "put in in Elisp unless there's a good 
reason not to", which is merely a question of burden of proof.  And that 
direction of burden makes sense: it is widely accepted that C 
programming takes longer, so why pay for it in the case where no one can 
point out a reason one way or the other?

> The idea is about reflecting the reasons which part to keep in C, which
> in Lisp. Don't have a quick answer for that. Roughly would favor to look
> what belongs to user-space, what not. Also stuff which is used seldom
> probably doesn't deserve C, etc.

No disagreement here -- but the utility of this conversation is quite 
limited until you have such an answer (quick or otherwise).  Merely 
suggesting that people (who, say, are implementing a new feature and 
need to decide what language to use) consider carefully which language 
to use is not usefully distinct from the current "policy".

> Amdahl is about processing power raised by number of kernels, no idea
> what the example should contribute here.

Amdahl's law is not so limited: see more precisely 
<https://en.wikipedia.org/wiki/Amdahl%27s_law#Speedup_in_a_serial_program>.

Spelled out explicitly: if, in some context, we spend only (say) 20% of 
our time running Lisp code (vs., say, redisplay), then we can improve 
the speed of that context by no more than 25% by rewriting that Lisp in 
any fashion whatsoever (including C).

Davis

-- 
This product is sold by volume, not by mass.  If it appears too dense or 
too sparse, it is because mass-energy conversion has occurred during 
shipping.



  parent reply	other threads:[~2016-07-05 17:02 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-01  8:03 C and Emacs Lisp code parts Andreas Röhler
2016-07-01  8:13 ` Eli Zaretskii
2016-07-01  8:39   ` Andreas Röhler
2016-07-01  9:16     ` Alan Mackenzie
2016-07-01 12:07       ` Andreas Röhler
2016-07-01 13:04         ` Eli Zaretskii
2016-07-05 22:48           ` John Wiegley
2016-07-06  7:25             ` Andreas Röhler
2016-07-06  7:31               ` Andreas Röhler
2016-07-06 15:27               ` Phillip Lord
2016-07-01  9:17     ` John Wiegley
2016-07-01 13:26       ` Andreas Röhler
2016-07-01  9:25     ` Eli Zaretskii
2016-07-01 12:25       ` Andreas Röhler
2016-07-01 13:01         ` Eli Zaretskii
2016-07-01 13:05         ` Andy Moreton
2016-07-01 15:14           ` Karl Fogel
2016-07-01 16:52             ` Andreas Röhler
2016-07-01 17:13               ` Eli Zaretskii
2016-07-01 17:36                 ` Andreas Röhler
2016-07-01 17:38                   ` Eli Zaretskii
2016-07-02 16:41                     ` Fabrice Popineau
2016-07-02 17:16                       ` Eli Zaretskii
2016-07-01 17:55                   ` Alan Mackenzie
2016-07-01 18:31                     ` Andreas Röhler
2016-07-01 18:57                       ` Alan Mackenzie
2016-07-01 20:04                         ` Andreas Röhler
2016-07-01 20:31                           ` Davis Herring
2016-07-02  6:34                             ` Andreas Röhler
2016-07-02 11:29                               ` Paul Eggert
2016-07-05 17:02                               ` Davis Herring [this message]
2016-07-05 19:35                                 ` Andreas Röhler
2016-07-02  6:32                           ` Eli Zaretskii
2016-07-02  7:01                             ` Andreas Röhler
2016-07-02  8:15                               ` Eli Zaretskii
2016-07-02  3:32 ` Tom Tromey
2016-07-02  3:42   ` Clément Pit--Claudel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=577BE815.9050805@lanl.gov \
    --to=herring@lanl.gov \
    --cc=acm@muc.de \
    --cc=andreas.roehler@online.de \
    --cc=clement.pit@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).