On Fri, Nov 27, 2009 at 10:21:06AM -0800, Nathan Kurz wrote: > More generally, it might be nice to make such goals explicit somewhere.
Yes, for example as Parrot has done with "Target Platforms" at. <http://www.parrotcode.org/docs/pdd/pdd01_overview.html>. > Optimized for: 64-bit systems using GCC and supporting mmap would > probably be my vote. +1. > Making MSVC a first class citizen would be fine if you think the return is > there. No, as far as I'm concerned MSVC is a compatibility target. I think it's important for our users to provide wide portability, and that means supporting MSVC. E.g. I want somebody's platform-portable wiki project or MVC framework to be able to integrate Lucy without hesitation. However, Microsoft needs to work a lot harder to make my life easier as an open source C developer if they want first-class status. > Supported on: Any modern system with a C99 compiler? Is there any > real reason to maintain C89 compatibility? MSVC has a couple important C89 limitations: it can't handle declaration-after-statement, and it can't handle variadic macros. Pure C89 is impossible anyway, because we need directory manipulation and c89 doesn't specify that. > Consciously unsupported: Vax, etc. * Any system without IEEE 754 floating point numbers. > Requiring C99 might create a natural boundary between legacy and 'modern'. Except that nobody actually implements all of C99, so we'd have a nice bright dividing line with everybody on one side. :) GCC is close, but even it's not there yet. http://gcc.gnu.org/c99status.html So we're stuck either drawing up an arbitrary feature list, or using time-based boundaries a la Parrot. Marvin Humphrey
