On Mon, Apr 7, 2008 at 5:34 AM, Daniel Herring dherring@tentpost.com wrote:
In particular, trivial-features bothers me. Libraries probably shouldn't modify the features set by an implementation. I would feel much more comfortable if all names were prefixed to reduce conflict. e.g. set :tf-darwin and :tf-linux instead of :darwin and :linux
In principle, I agree with you and I considered that option you suggest. However, I hope that at some point, most of the files in src/tf-*.lisp become empty as implementations start to agree with each other.
Can you give me a particular example of a feature pushed by trivial-features that you don't like?
#+(and sbcl win32) (setq *features* (remove :unix *features*))
This one *I* was quite unconfortable with, but I sent a patch to SBCL getting rid of :UNIX on windows and it was accepted a few months ago.
Other thoughts: Babel is used for external string support, right? Does it slow down the base, untranslated case? Could it be optional/disabled for those of us who don't want translation?
According to my quick tests, it's faster and conses less, even when using the default external-format (UTF-8) instead of ISO-8859-1 (which is what CFFI had, in effect).
For small strings (<30 chars) I can see some very small speed overhead (probably because of the hashtable lookups and one or two extra function calls). This overhead can be shaved off with a compiler macro, if necessary.