On C/C++ undefined behaviours

Nick Sabalausky a at a.a
Fri Aug 20 22:37:32 PDT 2010


"Walter Bright" <newshound2 at digitalmars.com> wrote in message 
news:i4nn6k$sos$2 at digitalmars.com...
> SK wrote:
>> Do you mean to say:
>> Instead of shipping the intermediate code, always ship source code.
>
> Yes.
>
>> -or-
>> Instead of caching the binary, just cache the source code.
>>
>> Neither of those guesses make general sense so I'm afraid I miss your 
>> point.
>
> Why doesn't it make sense?

The only possible complaints I can think of are:

1. Redoing the parsing and semantic analysis.
2. Being uncomfortable about releasing source.

I'm curious what you have to say about #1. But I consider #2 to be a very 
poor reason because:

- There's always reverse engineering.
- There's always obfuscation.
- IL may even provide better reverse-engineering results than machine code, 
depending on the IL.
- All the companies sinking time and money into JS and PHP middleware don't 
seem to have a problem with handing out their source.
- If someone's gonna steal a product and rebrand it as their own, they don't 
usually need the source, and having it would probably only be of fairly 
small help, if any.
- As a customer, the idea of spending money on a product that I can't 
service myself if/when the company goes under or loses interest makes me 
nervous. Providing their source would given them a competetive advantage.
- Even though providing source gets in the way of effective DRM (as if there 
even were such a thing), DRM itself gets in the way of sales.
- Distributing in source form makes certain things possible that wouldn't 
otherwise be, like virtual template functions (in theory, even if not in 
actual D practice).




More information about the Digitalmars-d mailing list