Thorsten Jolitz <tjol...@gmail.com>
[funny enough, in GNUS Ricks posts to this thread don't show up for me,
while I can see them in the www.mail-archive.com, so I follow up to my
own post instead of his.]
My original idea was to compile Femto as shared library, create FFI
wrapper libraries for PicoLisp, and have buffers instead of only a
single line to edit and evaluate PicoLisp code. A bit naive probably.
Replacing Femto-lisp with PicoLisp as extension language seems to be the
way to go, but is over my head I'm afraid. I thought, with the core
editor functions already defined in C (using the gap buffer concept), it
would be just about wrapping these basic functions (and data structures)
in PicoLisp and one could start to write cool interactive editor
features based on this Core libraries, just like in Emacs (Lisp).
But solving the fundamental communication problem between the two
systems is something else ...
Thanks for the anwsers, Rick.
> 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?