summaryrefslogtreecommitdiffstats
path: root/2025/talks/schemacs.md
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2025-09-26 20:46:41 -0400
committerSacha Chua <sacha@sachachua.com>2025-09-26 20:46:41 -0400
commit808fff3b8e0a391b826b333c4771ad0aee058b5c (patch)
tree5c0fd3ebd751c16fbeaaddda2df35bda0b772ebf /2025/talks/schemacs.md
parent582777434d8b5562fee9ae5f0f047e0d30b8c847 (diff)
downloademacsconf-wiki-808fff3b8e0a391b826b333c4771ad0aee058b5c.tar.xz
emacsconf-wiki-808fff3b8e0a391b826b333c4771ad0aee058b5c.zip
added: blee-lcnt, bookclup-tapas, calc, modern, private-ai, schemacs, weights, zettelkasten
Diffstat (limited to '2025/talks/schemacs.md')
-rw-r--r--2025/talks/schemacs.md90
1 files changed, 90 insertions, 0 deletions
diff --git a/2025/talks/schemacs.md b/2025/talks/schemacs.md
new file mode 100644
index 00000000..62ca5321
--- /dev/null
+++ b/2025/talks/schemacs.md
@@ -0,0 +1,90 @@
+[[!meta title="One year progress update Schemacs (formerly Gypsum)"]]
+[[!meta copyright="Copyright &copy; 2025 Ramin Honary"]]
+[[!inline pages="internal(2025/info/schemacs-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# One year progress update Schemacs (formerly Gypsum)
+Ramin Honary (he/him) - Pronunciation: "Rah-mean" (hard-H) "Ho-na-ree", Mastodon (preferred): ; blog: <https://tilde.town/~ramin_hal9001>; Codeberg: <https://codeberg.org/ramin_hal9001/schemacs> - SourceHut: <https://sr.ht/~ramin_hal9001>
+
+
+
+[[!inline pages="internal(2025/info/schemacs-before)" raw="yes"]]
+
+During EmacsConf 2024 last year I presented my work on a
+clone of GNU Emacs written in Scheme which also clones the
+Emacs Lisp programming language. In this talk, I will
+briefly present an overview of the project similar to the
+talk I gave last year, and then discuss the progress that
+I have made on this project in the past year.
+
+To quote the description from the presentation I gave last
+year:
+
+> Unlike other editors which only clone the Emacs
+> keybindings (Edwin, Jed, jEdit, Jove, Lem, MG, Yi,
+> Zile), I hope my Emacs clone will also fully clone the
+> Emacs Lisp programming language well enough that many of
+> the packages in ELPA, Non-GNU ELPA, and perhaps even
+> MELPA, can be used in [Schemacs, formerly "Gypsum"]
+> without any modification. I would also like to talk a
+> little bit about how I am implementing it (the software
+> architecture), and invite others to contribute.
+>
+> I think my project is of interest to many Emacs users
+> because, firstly, I have personally spoken with a
+> relatively large number of people who have expressed
+> interest in making Emacs programmable in Scheme.
+> Secondly, there is a good amount of prior art for Scheme
+> implementations of Emacs. There are even builds of Emacs
+> that link to Guile which provides a "scheme-eval"
+> built-in function that translates between Elisp data
+> types and Scheme data types. The Guile compiler itself
+> ships with an Emacs Lisp compiler as well, although it
+> does not provide enough of Emacs's built-in functions to
+> be of much use.
+
+The progress I have made so far:
+
+- Ported all Guile-specific parts of the Emacs Lisp
+ interpreter to fully standards-compliant R7RS Scheme
+ code. The interpreter now runs on a few different
+ Scheme implementations, not just Guile. The GUI remains
+ Guile-only for now.
+
+- Implemented a new R7RS-compliant lexer and parser which
+ constructs an Abstract Syntax Tree (AST) data structure,
+ making it easier to find the source of errors and
+ produce informative back traces.
+
+- Implemented enough of the Emacs Lisp interpreter to be
+ able to load the "subr.el" source file, this defines
+ what you might call the "core" of the Emacs Lisp
+ language, including macros such as "defun" and "lambda."
+
+My primary goal continues to be to make it as easy as
+possible for other people to contribute to this
+project. Pretty soon it should be possible to run the
+Emacs Regression Test suite (ERT) in the cloned Emacs Lisp
+interpreter. Once this is done, we can run the same test
+code used during the building and testing GNU Emacs to
+test Schemacs. Hopefilly then, anyone will be able to
+select a failing test, write code to make the test pass,
+and submit a patch.
+
+About the speaker:
+
+I am Ramin Honary, I am have been professional software
+engineer for 17 years and I have always had a passion for
+functional programming languages, especially Haskell and
+the Lisp family of languages.
+
+
+
+[[!inline pages="internal(2025/info/schemacs-after)" raw="yes"]]
+
+[[!inline pages="internal(2025/info/schemacs-nav)" raw="yes"]]
+
+