3 ms·
No. It is a C compiler compiled to Vim script. So it is actually a C compiler written in Vim script.
by rhysd 2y ago
No. It is a C compiler compiled to Vim script. So it is actually a C compiler written in Vim script.
- flohofwoe 2y agoI wonder how much faster a manually written C compiler in Vim script would be. The current code is essentially assembly instructions running as Vim script, this gotta be incredibly slow, probably not much faster than an x86 emulator written in Vim script: https://raw.githubusercontent.com/rhysd/8cc.vim/master/autoload/eightcc/backend.vim https://raw.githubusercontent.com/rhysd/8cc.vim/master/autol...
- svlasov 2y agoI wonder how much faster it would be if it was written in Vim9 script.
- aghastnj 2y agoThere's only one way to find out, bubba! You're gonna have to write an x86 emulator in vimscript for us, and tell us how it compares...
- actionfromafar 2y agoTime for JIT-compiled vimscript, I guess? Why should Javascript have all the fun.
- augusto-moura 2y agoFunny because neovim supports LuaJIT for it's lua init files by default. I wonder if there would be a way to compile vimscript to lua and have it everything inside the lua IR. Probably very hard, given the DSL nature of vimscript
- setopt 2y agoVim9script is already compiled (which is why it’s much faster), so there’s no need to go via Lua if you’re on ”normal” Vim :)
- aktau 2y agoThis was tried by ZyX-I when the Neovim project was started. AFAIK they managed to create an alternative parser for Vimscript, but the transpiler was never finished (or productionized?), I think due to incompatibilities that are hard to avoid. Some relevant issues: - https://github.com/neovim/neovim/issues/170 https://github.com/neovim/neovim/issues/170 - https://github.com/neovim/neovim/issues/387 https://github.com/neovim/neovim/issues/387 - https://github.com/neovim/neovim/issues/392 https://github.com/neovim/neovim/issues/392 - https://github.com/neovim/neovim/issues/801 https://github.com/neovim/neovim/issues/801
- munificent 2y agoI think a more accurate way to describe it is that it's a C compiler written in C and then automatically transpiled to VimScript. No human hand-authored this giant pile of VimScript: https://raw.githubusercontent.com/rhysd/8cc.vim/master/autoload/eightcc/frontend.vim https://raw.githubusercontent.com/rhysd/8cc.vim/master/autol...
- rhysd 2y agoYes. It is compiled to Vim script using ELVM[1]. Though the author of Vim script backend of ELVM is me :) [1]: https://github.com/shinh/elvm https://github.com/shinh/elvm
- nequo 2y agoThat is very cool! So with ELVM one could put together a C compiler in TeX too? Or transpile Vim into Vim script to self-host it?
- krick 2y agoCool. Why, though? I mean, it's not like this project has any practical value anyway, but wouldn't it be actually easier and more efficient to actually implement a C compiler in VimScript? Or is the vimscript ELVM backend the actual end-goal here, and C-compiler at question is basically just a proof that it works?
- metadat 2y agoThanks, at first I thought someone had written it in vim script, then I inspected the README in detail and learned it's only transpiled from C to vim script, which is not particularly exciting or impressive compared to a human wielding such a degree of vim script fu.
- gsuuon 2y agoAh - my impression went from 'this is pure masochism' to just 'this is slightly insane'.