ahgamut / superconfigure

wrap autotools configure scripts to build with Cosmopolitan Libc
The Unlicense
177 stars 24 forks source link

zsh modifications #9

Closed mrdomino closed 10 months ago

mrdomino commented 10 months ago

Configures zsh.com to read zshenv out of /zip/zshenv. The binary ships with a zshenv that simply contains source /etc/zshenv, preserving the default behavior with an extra layer of indirection. This lets users customize their zsh.com to behave any way they desire without having to recompile.

Also links in a couple commonly used modules: regex support and mathfuncs. More could be linked in as well, these just seemed like the essentials.

mrdomino commented 10 months ago

I see that you beat me to the punch with config_modules. Happy to switch to this approach or drop it at your preference.

mrdomino commented 10 months ago

It looks like you're actually maybe not using the custom config_modules anymore?

In that case maybe the only thing I'd change would be to drop /zip/zshrc - the point of zshenv is that it can reliably customize everything else about how zsh sources files (including loading zshrc out of /zip if the user wants that), so there is no need to have a second customization point.

ahgamut commented 10 months ago

So I found that config.modules is generated using the .mdd files in zsh-5.9/Src/Modules, and these .mdd files specify which modules should be disabled/statically built/dynamically built.

The .mdd files are very similar to Python's Modules/Setup (both are some kind of constrained shell scripts), so that makes it pretty convenient.

I think later today I will merge your PR, and use it as a starting point for figuring out the .mdd part. Thanks!