IMHO, Our prefect Vim is somethings like that: it has a strong and fast script system used to process the logical of editor (handle the advance functions), and fast algorithm to implement efficiency- sensitive part. all version of script code are have a same version of binary implement (or we made a bytecode-to-nativecode compiler, or we compile script into C code), and can dynamic linked into main program.
first, we have a static small Vim, it fastest and smallest. it doesn't contain a middle-level script system. all of function are implement by C code. and no need high-level function, our purpose is this version is just smaller and faster than old-Vim. the main resolve method is use consistency code and volatile data to decrease the complexity of code (e.g. use arugment struct to replace global variables, use function-array to replace switch-block). that maybe a little slow than old-vim, but we can use new fast algorithm to balance (e.g. use block memory manage to replace memory line, use copy- on-write and ref-count to prevent copy, etc. -- especially in undo module, my concept will make undo system more easy). this version of Vim can use FEAT_TINY to compile. the only way to *add* features is add dynamic library (so if it has enough librarys, it will change to full feature version). then, the normal version contain a new script-system and a parser. they are used to support syntax collect & highlight. we can add scripts instead of librarys to *change* its feature instead of add feature. the huge version contains other locale or seldom features, e.g. right to left edit, multibyte handle (new Vim use utf-8 for inner encoding, this is just a built-in iconv library and add change encoding support), etc. the different of version is the function is hard-compile into binary program or must use dynamic library or script to plug-in. just choose functions in configure file. I will have a lot of things to do, but the direction is clear. --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---
