yi-editor / yi

The Haskell-Scriptable Editor
GNU General Public License v2.0
1.51k stars 201 forks source link

Smaller Debian/Ubuntu package? #1113

Open hyiltiz opened 4 years ago

hyiltiz commented 4 years ago

Not sure if package maintenance is also part of this project/issue tracker. If not, please feel free to close it so I'll get in touch with the Debian maintainer.

apt install yi in Debian testing tries to install over 146Mb worth of packages (even excluding suggested packages) in a system that already has ghc and stack and most common haskell libraries installed, while pandoc package is about less than 50Mb. Is it posisble to package yi to a respectable size as compared to, let's say, vim or neovim, less than about 30Mb? It would make more accessible for end-users to try it out; personally, I'd rather not install a 150Mb worth of "vim replacement".

noughtmare commented 4 years ago

I think the problem is that Yi also needs all the source code of dependencies, because configuring the editor requires recompiling it. I think Pandoc is only a binary and does not include any Haskell source code. So the main way for making Yi more accessible would be to implement a configuration file (or DSL) based configuration system that doesn't require recompilation.

hyiltiz commented 4 years ago

If the lack of such config file support implies it is not yet time to design one in Yi's current state, I'd guess the easiest way to solve this issue and provide a end-user friendly binary package would be to simply expose an internal data structure via Read and Show for the time being before v1.0 is released. It may not be as enpowering as recompiling the editor, but would surely make it much more portable at a small development cost.

noughtmare commented 4 years ago

I think the biggest problems are that the configuration is not stored in one place and that not all configuration is plain data, some parts of the configuration are functions or even IO actions, so it is not possible to simply use the Read and Show interface. Issue #1069 tracks configuration issues and goes into more detail about where each part of the configuration is stored.