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

Reply via email to