help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A femtolisp based emacs clone


From: Rusi
Subject: Re: A femtolisp based emacs clone
Date: Sun, 21 Aug 2016 22:22:08 -0700 (PDT)
User-agent: G2/1.0

On Monday, August 22, 2016 at 1:45:05 AM UTC+5:30, address@hidden wrote:
> Dear Members of Gnu.Emacs.help,
> 
> A team of engineers, of which I am part, has decided to write a tiny version 
> of
>  Emacs. Well, there are many tiny versions of Emacs around: Microemacs, Zile, 
> jmacs to name a few. However, the idea is to be in keeping with the Emacs 
> Philosophy, and not only providing key-binding for Emacs compatibility. By 
> Emacs philosophy, I mean that the new editor must be customizable through a 
> Lisp dialect. The small group under the leadership of Hugh Barney has chosen 
> femtolisp for writing macros and extensions to the editor. As a proof of 
> concept, Hugh Barney designed the architecture of the editor and implemented 
> the main editing functions in 2000 lines of C. The idea is that one should 
> not need to program in C beyond these 2000 lines. Besides this, 2000 lines 
> divided between 12 small files is easy to understand and modify. I mean, even 
> if a developer wants to modify a C source file, s/he can do it easily. The C 
> source files are classified according to their functionality. For instance, 
> commandFemto.c contains the primitive commands; keyFemto.c contains 
> keybyndings. I intend to write a comprehensive documentation on how to modify 
> femto-Emacs C source files.
> 
> Initially, Hugh Barney named the new editor - atto. Then he changed the name 
> to femto in acknowledgement of femtolisp. This core femtoEmacs has the 
> following features:
> 
> 1 - Multiple windows that one can open with C-x 2.
> 
> 2 - C-x C-f to visit a new file. The arrows rotate the files in the directory.
> 
> 3 - Multiple buffers.
> 
> 4 - Utf8 for diacritics, etc.
> 
> 5 - File browsing through the arrow keys
> 
> In summary, femtoEmacs has the keybindings and basic functionality of 
> GNU-Emacs. Well, maybe not the whole functionality, but the authors are 
> pushing in that direction. 
> 
> Ed Costa designed the interface with femtolisp and proposed the functions for 
> the interaction between Lisp and femtoEmacs buffers and keybinding:
> 
> 1 - insert, backward, forward-char, backward-char, etc.
> 
> 2 - syntax highlighting
> 
> 3 - parentheses checking (it is not working very well)
> 
> The project members have chosen femtolisp because it is small and fast, 
> although they had flirted with TinyScheme. Femtolisp compiler takes less than 
> 100 k on a Macintosh. Besides this, femtolisp is about 4 times faster than 
> Python, slightly faster than Bigloo VM, has lexical scope, and can be made 
> compatible with the language used in the book - Structure and Interpretation 
> of Computer Programs.
> 
> By the way, femtolisp has lexical scope, backquote, vectors, IO and memory 
> strings, compacting GC, support for direct use of C data types à la Python, 
> proper tail recursion, printing and reading circular shared structures, 
> exceptions, macros, equal and ordered comparison predicates that work on 
> circular shared structures, etc.
> 
> Femto-Emacs is hosted on and can be cloned from github:
> 
> git clone https://github.com/FemtoEmacs/Femto-Emacs/
> 
> Our ultimate goal is to create a grass-root movement similar to neovim. This 
> way, users will have a tiny emacs that is easy to maintain, but has enough 
> functionality to be useful. We are needing collaboration for:
> 
> 1 -- Generate mingw binaries for Windows. In general, Windows users do not 
> know how to compile applications from source. Thus the need of binaries for 
> this particular platform.
> 
> 2 -- Improve the femtolisp interface. For the time being, the only 
> functionalities that the lisp interface has are:
> 
> 1 --  to move the cursor forward and backward
> 
> 2 -- to insert text 
> 
> 3 -- to receive text from selected regions 
> 
> 4 -- to insert text from the clipboard
> 
> 5 -- to move the cursor to the beginning of line and to the end of line
> 
> 6 -- to define keywords for a given language
> 
> Collaborators are welcome to provide at least the most basic emacs functions.

If you want to write code for the fun of it… Go for it!!
If however you want to improve on gnu-emacs it may be better to discuss what are
the significant problems as of this point
Best as I can see all your features are there or can be added with some elisp
into gnu-emacs quite easily


reply via email to

[Prev in Thread] Current Thread [Next in Thread]