all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Andreas Röhler" <andreas.roehler@online.de>
To: Davis Herring <herring@lanl.gov>
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: Sat, 2 Jul 2016 08:34:43 +0200	[thread overview]
Message-ID: <0606cae0-93b6-7e4a-c760-411326ac6970@online.de> (raw)
In-Reply-To: <5776D31A.6050700@lanl.gov>



On 01.07.2016 22:31, Davis Herring wrote:
>> BTW think at the fate of bazaar. Here Python was at stake and for a time
>> it growed quickly. Assume the easiness of Python as a factor of success.
>> But finally a C-based tool won the race, while bazaar went into bigger
>> and bigger issues. Why? :-)
>
> This has officially gotten ridiculous beyond the reach of emoticons.
>
> $ cd /usr/libexec/git-core
> $ file * | grep text
> git-add--interactive:    a /usr/bin/perl -w script text executable
> git-am:                  POSIX shell script text executable
> git-bisect:              POSIX shell script text executable
> git-difftool:            a /usr/bin/perl script text executable
> git-difftool--helper:    POSIX shell script text executable
> git-filter-branch:       POSIX shell script text executable
> git-instaweb:            POSIX shell script text executable
> git-lost-found:          POSIX shell script text executable
> git-merge-octopus:       POSIX shell script text executable
> git-merge-one-file:      POSIX shell script text executable
> git-merge-resolve:       POSIX shell script text executable
> git-mergetool:           POSIX shell script text executable
> git-mergetool--lib:      POSIX shell script text executable
> git-parse-remote:        POSIX shell script text executable
> git-pull:                POSIX shell script text executable
> git-quiltimport:         POSIX shell script text executable
> git-rebase:              POSIX shell script text executable
> git-rebase--interactive: POSIX shell script text executable
> git-relink:              a /usr/bin/perl script text executable
> git-repack:              POSIX shell script text executable
> git-request-pull:        POSIX shell script text executable
> git-sh-setup:            POSIX shell script text executable
> git-stash:               POSIX shell script text executable
> git-submodule:           POSIX shell script text executable
> git-web--browse:         POSIX shell script text executable
>
> 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?

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 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.


>
> Everyone also knows that no practical benefit is to be had from the 
> (substantial!) effort of rewriting all the high-level code in C (or 
> why not hand-tuned assembler?) because of 
> <https://en.wikipedia.org/wiki/Amdahl's_law>.  The numbers that govern 
> your life in that law are the ones that, erm, everyone has told you 
> need to be measured in order to make any kind of useful decisions.

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


>
> Git is widely celebrated for its efficiency.  Much of that comes from 
> the design of its (on-disk) data structures; minimizing the cost of 
> disk access is rather more important than the language that is used to 
> search them.
>
> Davis
>

Still don't understand why qualifying git "C-based" should be wrong.

$ cd git
$ ls

abspath.c                   mailinfo.h
aclocal.m4                  mailmap.c
advice.c                    mailmap.h
advice.h                    Makefile
alias.c                     match-trees.c
alloc.c                     merge-blobs.c
archive.c                   merge-blobs.h
archive.h                   merge.c
archive-tar.c               merge-recursive.c
archive-zip.c               merge-recursive.h
argv-array.c                mergesort.c
argv-array.h                mergesort.h
attr.c                      mergetools
attr.h                      name-hash.c
base85.c                    notes.c
bisect.c                    notes-cache.c
bisect.h                    notes-cache.h
blob.c                      notes.h
blob.h                      notes-merge.c
block-sha1                  notes-merge.h
branch.c                    notes-utils.c
branch.h                    notes-utils.h
builtin                     object.c
builtin.h                   object.h
bulk-checkin.c              pack-bitmap.c
bulk-checkin.h              pack-bitmap.h
bundle.c                    pack-bitmap-write.c
bundle.h                    pack-check.c
cache.h                     pack.h
cache-tree.c                pack-objects.c
cache-tree.h                pack-objects.h
check_bindir                pack-revindex.c
check-builtins.sh           pack-revindex.h
check-racy.c                pack-write.c
ci                          pager.c
color.c                     parse-options.c
color.h                     parse-options-cb.c
column.c                    parse-options.h
column.h                    patch-delta.c
combine-diff.c              patch-ids.c
command-list.txt            patch-ids.h
commit.c                    path.c
commit.h                    pathspec.c
commit-slab.h               pathspec.h
compat                      perl
config.c                    pkt-line.c
config.mak.in               pkt-line.h
config.mak.uname            po
configure.ac                ppc
connect.c                   preload-index.c
connected.c                 pretty.c
connected.h                 prio-queue.c
connect.h                   prio-queue.h
contrib                     progress.c
convert.c                   progress.h
convert.h                   prompt.c
copy.c                      prompt.h
COPYING                     quote.c
credential.c                quote.h
credential-cache.c          reachable.c
credential-cache--daemon.c  reachable.h
credential.h                read-cache.c
credential-store.c          README.md
csum-file.c                 ref-filter.c
csum-file.h                 ref-filter.h
ctype.c                     reflog-walk.c
daemon.c                    reflog-walk.h
date.c                      refs
decorate.c                  refs.c
decorate.h                  refs.h
delta.h                     RelNotes
diff.c                      remote.c
diffcore-break.c            remote-curl.c
diffcore-delta.c            remote.h
diffcore.h                  remote-testsvn.c
diffcore-order.c            replace_object.c
diffcore-pickaxe.c          rerere.c
diffcore-rename.c           rerere.h
diff-delta.c                resolve-undo.c
diff.h                      resolve-undo.h
diff-lib.c                  revision.c
diff-no-index.c             revision.h
dir.c                       run-command.c
dir.h                       run-command.h
Documentation               send-pack.c
editor.c                    send-pack.h
entry.c                     sequencer.c
environment.c               sequencer.h
ewah                        server-info.c
exec_cmd.c                  setup.c
exec_cmd.h                  sha1-array.c
fast-import.c               sha1-array.h
fetch-pack.c                sha1_file.c
fetch-pack.h                sha1-lookup.c
fmt-merge-msg.h             sha1-lookup.h
fsck.c                      sha1_name.c
fsck.h                      shallow.c
generate-cmdlist.sh         shell.c
gettext.c                   sh-i18n--envsubst.c
gettext.h                   shortlog.h
git-add--interactive.perl   show-index.c
git-archimport.perl         sideband.c
git-bisect.sh               sideband.h
git.c                       sigchain.c
git-compat-util.h           sigchain.h
git-cvsexportcommit.perl    split-index.c
git-cvsimport.perl          split-index.h
git-cvsserver.perl          strbuf.c
git-difftool--helper.sh     strbuf.h
git-difftool.perl           streaming.c
git-filter-branch.sh        streaming.h
git-gui                     string-list.c
git-instaweb.sh             string-list.h
gitk-git                    submodule.c
git-merge-octopus.sh        submodule-config.c
git-merge-one-file.sh       submodule-config.h
git-merge-resolve.sh        submodule.h
git-mergetool--lib.sh       symlinks.c
git-mergetool.sh            t
git-p4.py                   tag.c
git-parse-remote.sh         tag.h
git-quiltimport.sh          tar.h
git.rc                      tempfile.c
git-rebase--am.sh           tempfile.h
git-rebase--interactive.sh  templates
git-rebase--merge.sh        thread-utils.c
git-rebase.sh               thread-utils.h
git-relink.perl             trace.c
git-remote-testgit.sh       trace.h
git-request-pull.sh         trailer.c
git-send-email.perl         trailer.h
git-sh-i18n.sh              transport.c
git-sh-setup.sh             transport.h
git-stash.sh                transport-helper.c
git-submodule.sh            tree.c
git-svn.perl                tree-diff.c
GIT-VERSION-GEN             tree.h
gitweb                      tree-walk.c
git-web--browse.sh          tree-walk.h
gpg-interface.c             unicode_width.h
gpg-interface.h             unimplemented.sh
graph.c                     unix-socket.c
graph.h                     unix-socket.h
grep.c                      unpack-trees.c
grep.h                      unpack-trees.h
hashmap.c                   update_unicode.sh
hashmap.h                   upload-pack.c
help.c                      url.c
help.h                      url.h
hex.c                       urlmatch.c
http-backend.c              urlmatch.h
http.c                      usage.c
http-fetch.c                userdiff.c
http.h                      userdiff.h
http-push.c                 utf8.c
http-walker.c               utf8.h
ident.c                     varint.c
imap-send.c                 varint.h
INSTALL                     vcs-svn
khash.h                     version.c
kwset.c                     versioncmp.c
kwset.h                     version.h
levenshtein.c               walker.c
levenshtein.h               walker.h
LGPL-2.1                    wildmatch.c
line-log.c                  wildmatch.h
line-log.h                  worktree.c
line-range.c                worktree.h
line-range.h                wrap-for-bin.sh
list-objects.c              wrapper.c
list-objects.h              write_or_die.c
ll-merge.c                  ws.c
ll-merge.h                  wt-status.c
lockfile.c                  wt-status.h
lockfile.h                  xdiff
log-tree.c                  xdiff-interface.c
log-tree.h                  xdiff-interface.h
mailinfo.c                  zlib.c
$



  reply	other threads:[~2016-07-02  6:34 UTC|newest]

Thread overview: 63+ 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 14:01               ` bug#14518: " Noam Postavsky
2016-07-06 14:52               ` Eli Zaretskii
2013-05-31  9:30                 ` bug#14518: abbrev edits - delay when saving Andreas Röhler
2013-06-01  3:01                   ` Leo Liu
2013-06-01  5:52                     ` Andreas Röhler
2013-06-05 10:11                     ` Andreas Röhler
2013-06-05 13:12                       ` Stefan Monnier
2013-06-05 17:02                         ` Glenn Morris
2013-06-05 17:20                           ` Andreas Röhler
2013-06-07  1:43                           ` Glenn Morris
2013-06-07  5:38                             ` Andreas Röhler
2013-06-07  7:13                               ` Glenn Morris
2013-06-07  7:41                                 ` Andreas Röhler
2016-07-06 15:44                   ` bug#14518: C and Emacs Lisp code parts Glenn Morris
2016-07-06 16:15                     ` Eli Zaretskii
2016-07-06 22:36                       ` John Wiegley
2016-07-07  7:33                         ` Andreas Röhler
2016-07-07 15:16                           ` Eli Zaretskii
2016-07-06 16:21                     ` Andreas Röhler
2016-07-06 16:37                       ` Eli Zaretskii
2016-07-06 17:27                         ` Andreas Röhler
2016-07-06 17:35                           ` Eli Zaretskii
2016-08-05 23:38                   ` bug#14518: Status: abbrev edits - delay when saving npostavs
2016-12-07 19:56                     ` Glenn Morris
2016-07-06 15:27               ` C and Emacs Lisp code parts Phillip Lord
2016-07-06 15:27               ` bug#14518: " Phillip Lord
2016-07-06  7:25             ` Andreas Röhler
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 [this message]
2016-07-02 11:29                               ` Paul Eggert
2016-07-05 17:02                               ` Davis Herring
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

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

  git send-email \
    --in-reply-to=0606cae0-93b6-7e4a-c760-411326ac6970@online.de \
    --to=andreas.roehler@online.de \
    --cc=acm@muc.de \
    --cc=clement.pit@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=herring@lanl.gov \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.