First Item: What do we need to do to make elisp/emacslisp a more complete language? It doesn't have to be super fancy, but I think we could improve it. We'll have to compile in a few new primitives, but I don't think it would take much. If we even just compiled in a syscall primitive it would go a long way.
Second Item: What can we do to get eshell to be a more fully functioning shell? The first thing that comes to find is a pipe. When a pipe is present, stdout will be directed to stdin instead of an emacs buffer. I admit I'm not an elisp guru, but I'm pretty sure this will take another primitive.
What other things should be added?
Somewhat related video: youtube.com/watch?v=MLIP0ZtoiO4
A lot of features of Common Lisp are provided through the cl-lib library that ships with Emacs.
It already supports piping, although somewhat badly since it's fully implemented in elisp.
Jack Sanders
I guess I'm just a retard. How do I pipe in eshell?
Colton Peterson
In what ways is Elisp incomplete as it stands? Most of it's problems are vestiges of its age and heritage, simply being lexicaly bound and adding namespaces would go a long way to making it more maintainable. However that's not necessarily 'more complete'.
Carter Long
The normal way. Same syntax as a typical Unix shell.
Chase Hill
Yeah it seems to work unless I try to pipe to more, and which case it just opens a buffer with more's man page
Charles Miller
That's because eshell doesn't use a real pipe (created using the pipe system call, it's quite low-level), like shells usually do. Notice that in a regular shell just running "more" without arguments and without redirected command output also gives the help text, even though it could have received input from you typing. It can tell the difference. It can't in eshell.
Why would you use more in eshell, though? Emacs is a great pager all by itself.
Leo Reed
I never remember the key combinations for paging
Aaron Bennett
C-v scrolls forward, M-v scrolls backward. You can also use PgDown and PgUp, or the scroll wheel, or the scroll bar, or the arrow keys.
Sebastian Rogers
The emacs team his replacing it with guile. Case closed.
Joshua Fisher
Is there something like exec in elisp? I.e. stop emacs and replace it with whatever process I called?
Isn't Guile backwards compatible with elisp?
Adrian Moore
Why would you want that?
Guile is mainly an implementation of Scheme, but the same engine can run other languages with some interoperability between the languages. It has a full elisp implementation. Guile Emacs can run elisp code but it can also run Scheme code, and it can call functions defined in one language from the other language. They are separate languages.
Isaiah Russell
trying to see if I can replace some bash init scripts with elisp scripts.
Nathaniel Gomez
Consider looking at the GUIXSD. You can configure your whole system with Guile.
Isaac Kelly
Yeah. Guix seems cool and Sepherd seems nifty. I just like doing weird shit the hard way. So is there an exec type function, or will I have to roll my own?
Aiden Campbell
Wouldn't it be more sensible to launch them as processes all controlled by a single Emacs instance instead of running a whole Emacs for every script?
Michael Peterson
Yeah. I thought about that. I'm actually going to try that sometime this week. I'm going to compile a super minimal LFS Then compile a specific copy of emacs to use at the init, and then use elisp to start running daemons. I have a feeling it will work horribly, but its just for shits and giggles.
Juan Moore
Eshell does not support POSIX piping, which is probably what OP means. The language of implementation is irrelevant.
Eshell supports input redirection, but it uses shared handler for each standard stream, which renders it useless for any scripting. Just use shell-mode, it's much better.
Elisp is pure shit compared to any modern Lisp dialect. They say (since 2000) they would switch to Guile at some point, but likely never. Guile is somewhat better, but slow and awkward. Also it suffers from Scheme legacy, such as SFRIs and ICE-9.
There's no exec in Elisp Guile (as a compiler) can compile Elisp. There's no compatibility between two languages.
Nothing. We need to abandon it, and write a need one, stealing ideas from Haskell, Clojure and rc. Nothing. It's useless shit. It would be nice thought to have a shell with API for target language. Nothing. We need to abandon it, and write a need one, stealing ideas from Plan 9, Urbit and TempleOS.
Jayden Foster
I find github.com/deech/shen-elisp is a language more to my taste when programming Emacs. But as someone else mentioned, Emacs is probably moving to Guile "real soon now".
Aiden Davis
There is a working guile port. It needs more work before it performs well enough - I think it doesn't compile the elisp ahead of time or something.
Connor Jones
Guile Emacs is just Emacs linked against libguile and having some low-level stuff replaced with it. As the result it's very slow. Also >git.hcoop.net/?p=bpt/emacs.git Emacs with Guile Scheme as the primary language environment is a vaporware. And Elisp is far from being the only thing that is wrong with Emacs.
Poo in loo.
Tyler Martinez
I wonder if it is possible to replace eshell with elisp bindings to busybox (or some tool like that), so we'd have POSIX shell accessible from elisp.