Rebuilding Emacs from scratch. What would you do differently?

This page summarizes the projects mentioned and recommended in the original post on /r/emacs

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • I agree. I've been searching for solutions for a while. A few choices: - Common Lisp Coalton, very similar to Haskell. - Hackett, a Haskell-like DSL implemented in Racket. Licensing would be an issue, so it would have to be ported to Guile Scheme if you want to build an Emacs out of it. This is not easy since it takes advantage of several Racket-specific language features. - Shen, which can be built on top of Common Lisp, Scheme, Racket, or even Emacs Lisp. The drawback is that it is a fairly cryptic language, and extending foreign language bindings is not well documented. You would basically have to program the entirety of Emacs from scratch - PreScheme is a statically-typed (Hindley-Milner family) subset of Scheme that compiles to C. Originally written to build the Scheme-48 compiler, it is being ported to Guile. Not production read yet. - Zile is an editor engine built on Guile 2.0. But there is no static typing or algebraic data types, it is simply a replacement for Emacs written in Scheme from the ground-up. It needs to be ported to Guile 3.0. Guile 3 has an Emacs Lisp interpreter built-in, but it needs to be developed further before it could run more popular Emacs Lisp applications like Org-Mode or Magit.

  • hackett

    WIP implementation of a Haskell-like Lisp in Racket

  • I agree. I've been searching for solutions for a while. A few choices: - Common Lisp Coalton, very similar to Haskell. - Hackett, a Haskell-like DSL implemented in Racket. Licensing would be an issue, so it would have to be ported to Guile Scheme if you want to build an Emacs out of it. This is not easy since it takes advantage of several Racket-specific language features. - Shen, which can be built on top of Common Lisp, Scheme, Racket, or even Emacs Lisp. The drawback is that it is a fairly cryptic language, and extending foreign language bindings is not well documented. You would basically have to program the entirety of Emacs from scratch - PreScheme is a statically-typed (Hindley-Milner family) subset of Scheme that compiles to C. Originally written to build the Scheme-48 compiler, it is being ported to Guile. Not production read yet. - Zile is an editor engine built on Guile 2.0. But there is no static typing or algebraic data types, it is simply a replacement for Emacs written in Scheme from the ground-up. It needs to be ported to Guile 3.0. Guile 3 has an Emacs Lisp interpreter built-in, but it needs to be developed further before it could run more popular Emacs Lisp applications like Org-Mode or Magit.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • zile

    A build of Zile that uses Guile

  • Since it is perfectly possible to provide a Racket-like module system for Emacs that enables programmers to choose whichever Lisp dialect they want, regardless of the implementation language, why not use a smaller Lisp implementation like Scheme and implement an Emacs Lisp shim on top of that? This shim already exists in Guile Scheme, the only remaining task is to re-implement more of the C API in Scheme to make the shim useful in running existing Emacs Lisp packages. A lot of work toward completing that task has also been done in the form of the Zile editor engine.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts