I think there's an assumption here that requires/provides would be  
added on the class (or trait) tag level. My understanding/assumption  
has been that requires/provides would be on the library (or module)  
level -- perhaps a separate tag that would be valid only within  
library (or module) declarations:

<library>
        <requires tag="swf8"/>
        <provides tag="SWFVisualEffects"/>

        ...
</library>

This, in combination with the <switch> tag that Henry recently  
resurrected would give us sufficient flexibility to handle runtime- 
specific features, I think.

jim

On May 5, 2006, at 4:24 PM, Max Carlson wrote:

> There has been a lot of discussion around adding requires/provides to
> the platform to ease development around runtime-specific features.
> Classes would be able to say they provide certain feature(s).  Other
> classes could require those features, and the compiler would warn if a
> required feature was not available.
>
> One issue with the existing proposal is it doesn't make adding
> runtime-specific features to existing base classes, (like view) easy.
> At first blush this doesn't seem so bad.
>
> Imagine adding Flash 8 visual effects.  With the proposed mechanism
> developers create a subclass of view that provides a feature, say
> 'SWFVisualEffects' which in turn requires 'swf8.'  The fact
> 'SWFVisualEffects' can only be added to a subclass of view has all  
> sorts
> of ramifications to component hierarchies and the like, because
> components that want to take advantage of new features now.have to
> extend the new class instead just extending view (like they do  
> already).
>
> Ideally we provide a mechanism that allows developers to mix features
> into existing base classes while still providing warnings where  
> they're
> unsupported.  This could be accomplished by using a variant of traits
> that supports requires/provides.  Right now, adding SWFVisualEffects
> would require hacking the swf kernel directly and adding the feature
> into view.  This is fine, but it also requires manually adding with
> warnings for unsupported (non-swf) runtimes.
>
> Because of this, I don't think class-based requires/provides gets us a
> lot of mileage unless it somehow supports mixing into existing base
> classes (while still providing warnings for non-supported runtimes).
>
> For now, we already have conditional compilation for the kernel  
> with 'if
> ($runtime)' conditionals.  Adding requires/provides into traits could
> provide a much safer (and much more useful) way for developers to add
> runtime-specific features to the various kernels.  This would  
> provide a
> mechanism that automatically warns when a developer requires features
> that aren't provided/available, while saving developers from manually
> writing warnings for other runtimes.
>
> What are your thoughts?
>
> -- 
> Regards,
> Max Carlson
> OpenLaszlo.org
> _______________________________________________
> Laszlo-dev mailing list
> [email protected]
> http://www.openlaszlo.org/mailman/listinfo/laszlo-dev

_______________________________________________
Laszlo-dev mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-dev

Reply via email to