all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ergus via "Emacs development discussions." <emacs-devel@gnu.org>
To: emacs-devel@gnu.org
Cc: bobnewell@bobnewell.net, noloader@gmail.com, monnier@iro.umontreal.ca
Subject: Re: Lightweight, C-only implementation of Emacs
Date: Sat, 21 Sep 2019 17:01:46 +0200	[thread overview]
Message-ID: <20190921150146.3qojnldxpkuwx666@Ergus> (raw)
In-Reply-To: <CAO2hHWaujFwoitiX1osDGE6nQNGii0_=Cw+0iwv++MptXjG8qA@mail.gmail.com>

Sorry for necrobumping this thread, but after some time I have
discovered Qemacs and tried for a while (a week).

https://savannah.nongnu.org/projects/qemacs

I need to say that it is a more functional C-only alternative to emacs
because unlike zile:

- Does not depend of gnulib, gc, or external non-standard libraries or
  emacs itself. (zile needs emacs to run the tests)
- Not even a complex autotools file is needed. (gnulib integration is
  very hard and for some reason they don't support anything else than
  autotools... which sometimes is too complex for small projects and
  limits integration with other tools like CMake and enforces the use
  and knowledge of autotools/autoconf and so on)
- It have syntax-highlight for some of the common languages like
  C/Rust/swift/perl and others.
- It has search candidates highlight.
- It seems to be very modular to implement modules and languages modes
  (In C of course).
- It has some simple support for org-mode
- Allows vertical splits not only horizontal.
- It has gui and tui interfaces (with -nw as usual, zile does not have
- gui version)
- Multiplatform support (win32 included, and specialization for some
  terminals like xterm and so on.)
- Provides and API to create plugins in C without recompiling the
  editor, as it loads .so files.
- No garbage collection is needed.
- Line numbers functionality supported.
- utf-8 support and bidirectional editing.

I should say that I added some primitive support for linum, colors, fill
 column-indicator and mouse interaction to zile in my personal fork on
 github... but couldn't ever commit it as I never got a reply to join to
 the project. So I freely added some non-gnu changes like migrate it to
 CMake But if anyone is interested:

https://github.com/Ergus/Zile

Limitations:

- No lisp machine at all (configuration is in a file with a C-like
  syntax) which from some points of view is not a limitation. (
  performance, no gc, no C-to-lisp code api needed, no
  byte-compiler/lisp interpreter to maintain)
- Extensibility is more complex as it requires compiling the plugin.
- Have had only 2 contributors in it's history, which is good because
  all the code is very organized and standard. So there is not community
  there. (but actually is the same with Zile)
- Still developed with CVS, I asket to move it to git... but who knows
  if I even get a reply.
- It is in savannah but it is a nongnu project.
- The documentation is very simple... maybe too short.

Hope this helps.

On Wed, Aug 21, 2019 at 03:58:27PM -0700, chad wrote:
>Linus Torvalds supposedly uses a version of mg (formerly Micro GNU Emacs)
>that is maintained along with the Linux kernel:
>
>  https://git.kernel.org/pub/scm/editors/uemacs/uemacs.git
>
>Hope that helps,
>~Chad
>
>On Sat, Aug 17, 2019 at 6:27 PM Jeffrey Walton <noloader@gmail.com> wrote:
>
>> Hi Everyone,
>>
>> I'm trying to find a lightweight C-only implementation of Emacs for
>> Linux. I need it for situations like this:
>> https://redmine.pfsense.org/issues/9682 .
>>
>> Searching is pretty much useless due to irrelevant results. I found
>> Zile at https://www.gnu.org/software/software.html#allgnupkgs , but it
>> fails to build (it configures OK).
>>
>> I understand I will probably loose some functionality due to decoupling
>> Lisp.
>>
>> Does anyone have a list of Emacs replacements?
>>
>> Thanks in advance.
>>
>> Jeff
>>
>>



      reply	other threads:[~2019-09-21 15:01 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-18  1:26 Lightweight, C-only implementation of Emacs Jeffrey Walton
2019-08-18  3:16 ` Bob Newell
2019-08-18  3:21 ` Noam Postavsky
2019-08-18  7:48 ` Stefan Monnier
2019-08-19  5:36 ` Ulrich Mueller
2020-08-03 18:38   ` Jeffrey Walton
2020-08-03 19:37     ` Ulrich Mueller
2020-08-03 19:42       ` Jeffrey Walton
2020-08-03 19:56         ` Ulrich Mueller
2020-08-03 19:58           ` Jeffrey Walton
2020-08-03 21:32             ` Stefan Monnier
2020-08-03 21:55               ` Gregory Heytings via Emacs development discussions.
2020-08-03 21:52             ` Amin Bandali
2020-08-03 22:31               ` Daniele Nicolodi
2020-08-03 23:56                 ` Amin Bandali
2020-08-04  1:24                   ` Daniele Nicolodi
2020-08-03 21:32           ` andres.ramirez
2020-08-07  8:38             ` Ergus
2019-08-21 22:58 ` chad
2019-09-21 15:01   ` Ergus via Emacs development discussions. [this message]

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=20190921150146.3qojnldxpkuwx666@Ergus \
    --to=emacs-devel@gnu.org \
    --cc=bobnewell@bobnewell.net \
    --cc=monnier@iro.umontreal.ca \
    --cc=noloader@gmail.com \
    --cc=spacibba@aol.com \
    /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.