Hi List,
recently I found out about Femto, a minimal Emacs implementation in less
than 2k lines of C (including ncurses, though):

| git clone https://github.com/hughbarney/femto.git

| Femto is an extended version of Atto Emacs.
| In Defining Atto as the lowest functional Emacs I have had to
| consider the essential feature set that makes Emacs, 'Emacs'. [...]

|  Goals of Femto Emacs
|   * To extend Atto Emacs with filename completion, dired, buffer
|     menu and the ability to run a shell command.
|   * Provide a rich level of functionality in the smallest amount of
|     code
|   * Femto Emacs will eventually have it own lisp extension
|     languauge.
|   * Be easy to understand without extensive study (to encourage
|     further experimentation).

There is already a project underway using FemTo-Lisp as extension

| git clone https://github.com/FemtoEmacs/Femto-Emacs.git

but I thought this would be a perfect use case for an 'AW-style' FFI
library making use of 'native'. Then, PicoLisp could have its own
(Window/Buffer)-Editor, not just the LineEditor, with all the core
Editor-Functions just wrappers around Femto's C-functions.

But lacking C skills have me stuck in the very beginning: how to turn
this C application into a shared library for 'native', does it even
make sense?

I guess I should:

 1. create a shared library for all .c files in the repo except main.c
 2. create the application (main.o) linking the shared library? 

But then, the shared library by itself does not make much sense, it
would need the running C Application to do some useful work (?) 

So the queston seems rather how to embed PicoLisp in this C Application,
and make Femto extensible in PicoLisp (like Emacs is extensible in Emacs
Lisp) by having FFI wrappers for all core editor functions?


| /home/tj/gitclone/Femto-Emacs/femtolisp

subdirectory makes the general "Lisp integration task" look rather
complicated, but maybe there is (like so often) a really simple solution
with PicoLisp?


UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to