We we want to call everything we've documented mandatory in v1.0 I'm OK with that. What I don't want is for us to say that and then as we approach end of year someone says "but I really can't do (formerly optional) feature X".
Quick poll: Are there any APIs currently marked optional that anyone does not plan to implement in their v1.0 release? On Tue, Nov 4, 2014 at 9:58 AM, Gilad Ben Yossef <gil...@ezchip.com> wrote: > > True, but maybe there is a middle way - > What if instead of a mad matrix of optional features we have 2 or 3 levels > of features? > Say: > ODP Basic support - all mandatory features are supported. > ODP Full support - mandatory + all what we now call optional features are > supported. > And maybe, if it makes sense - > ODP Intermediate support - mandatory + a certain pre-defined set of now > called optional features supported. > This let application writer to say: My application targets Basic, > Intermediate or Full support and the application writer knows exactly what > to expect. > The platform vendor can say: I support ODP Basic, Intermediate or Full. So > you know what you get. > > Gilad > > Gilad Ben-Yossef > Software Architect > EZchip Technologies Ltd. > 37 Israel Pollak Ave, Kiryat Gat 82025 ,Israel > Tel: +972-4-959-6666 ext. 576, Fax: +972-8-681-1483 > Mobile: +972-52-826-0388, US Mobile: +1-973-826-0388 > Email: gil...@ezchip.com, Web: http://www.ezchip.com > > "Ethernet always wins." > — Andy Bechtolsheim > > > -----Original Message----- > > From: lng-odp-boun...@lists.linaro.org [mailto:lng-odp- > > boun...@lists.linaro.org] On Behalf Of Victor Kamensky > > Sent: Tuesday, November 04, 2014 5:33 PM > > To: Bill Fischofer > > Cc: Savolainen, Petri (NSN - FI/Espoo); lng-odp@lists.linaro.org > > Subject: Re: [lng-odp] [Q] Memory allocation in ODP applications > > > > I did express the same in the past and agree with Petri > > '“optional” is next to non-existent'. It creates fragmentation > > that we don't need. When I need to figure out what optional > > pieces implemented by specific ODP implementation and > > how to match one that not implemented from that point > > it is not very far for me just to create my own wrappers/shims > > on top of specific SDKs. > > > > For optional APIs being present and return error in run-time > > even worse in my opinion. Build time link error would be much > > better. Because as usual run-time errors much harder to get > > compared to build time errors. Build errors I discover during > > single build, run-time errors I may need to create bunch of > > specific scenarios to get complete coverage for pieces that > > my app uses. > > > > Thanks, > > Victor > > > > > > On 4 November 2014 05:38, Bill Fischofer <bill.fischo...@linaro.org> > > wrote: > > > That's precisely why we've said that all implementations must provide > > at > > > least stubs for all of the ODP APIs (even those marked optional). Not > > every > > > ODP application will be able to run on every ODP implementation, but > > that's > > > OK. You don't need your home office router to have enterprise-level > > > features. Requiring every ODP implementation to provide identical > > > functionality will either force us to adopt a least-common-denominator > > > approach to what are acceptable APIs or else we'll severely limit the > > range > > > of platforms that can participate in the ecosystem. > > > > > > Do you have a specific list of APIs that are currently marked optional > > that > > > you'd like to see promoted to mandatory? > > > > > > > > > On Tue, Nov 4, 2014 at 7:26 AM, Savolainen, Petri (NSN - FI/Espoo) > > > <petri.savolai...@nsn.com> wrote: > > >> > > >> I’m concerned that the API gets too fragmented already in v1.0 and > > the > > >> ecosystem will be limited by that. For example, it’s hard to > > integrate 3rd > > >> party (or open source) SW into a system, if my app uses optional > > feature X, > > >> the 3rd party lib uses optional feature Y and the implementation > > provides > > >> only one of those, or neither. > > >> > > >> > > >> > > >> -Petri > > >> > > >> > > >> > > >> > > >> > > >> From: ext Bill Fischofer [mailto:bill.fischo...@linaro.org] > > >> Sent: Tuesday, November 04, 2014 3:16 PM > > >> To: Savolainen, Petri (NSN - FI/Espoo) > > >> Cc: Shmulik Ladkani; lng-odp@lists.linaro.org > > >> > > >> > > >> Subject: Re: [lng-odp] [Q] Memory allocation in ODP applications > > >> > > >> > > >> > > >> I think the criteria I outlined above for considering an API optional > > are > > >> reasonable. Recall that the reason certain APIs are designated as > > optional > > >> is because we received feedback that they were not feasible on > > specific > > >> platforms. It's RECOMMENDED that platforms provide all of these > > APIs, > > >> however I'm not eager to say platform X can't have a conforming ODP > > >> implementation if it's just not feasible to implement every ODP API > > or > > >> feature on that platform. > > >> > > >> > > >> > > >> Applications will be written to whatever APIs and features they need. > > Not > > >> every application needs every API and feature and if an application > > needs an > > >> optional API then when it chooses which platforms it wants to deploy > > on it > > >> will take whether that platform provides that API into account in > > making its > > >> decision. > > >> > > >> > > >> > > >> These are fundamentally product marketing issues, not technical > > issues. > > >> If we take a one-size-fits-all approach that will unnecessarily limit > > the > > >> ecosystem. > > >> > > >> > > >> > > >> On Tue, Nov 4, 2014 at 6:43 AM, Savolainen, Petri (NSN - FI/Espoo) > > >> <petri.savolai...@nsn.com> wrote: > > >> > > >> Hi, > > >> > > >> > > >> > > >> As noted many times before, “optional” is next to non-existent for > > >> application programmers – especially if it’s important to achieve > > >> application portability. I’d suggest that API v1.0 would not have > > anything > > >> labeled as optional. It’s simplifies the API for everybody > > >> (implementers/testers/users). Features labeled as optional should be > > either > > >> turned into mandatory or dropped out. > > >> > > >> > > >> > > >> -Petri > > >> > > >> > > >> > > >> > > >> > > >> From: lng-odp-boun...@lists.linaro.org > > >> [mailto:lng-odp-boun...@lists.linaro.org] On Behalf Of ext Bill > > Fischofer > > >> Sent: Monday, November 03, 2014 10:35 PM > > >> To: Shmulik Ladkani > > >> Cc: lng-odp@lists.linaro.org > > >> Subject: Re: [lng-odp] [Q] Memory allocation in ODP applications > > >> > > >> > > >> > > >> ODP APIs are divided into two classes: Mandatory, which all > > conforming ODP > > >> implementations are expected to provide, and Optional. The > > convention is > > >> that Optional APIs must be present but calling them may simply result > > in an > > >> ODP_FUNCTION_NOT_AVAILABLE return code. These are documented in the > > >> associated header files (currently under revision) and are part of > > the > > >> doxygen. Basically, unless an API calls itself out as OPTIONAL you > > should > > >> assume that all ODP implementations will provide functional > > implementations > > >> of it, though performance of individual APIs may vary between > > platforms and > > >> within platforms over time. > > >> > > >> > > >> > > >> It's expected that each platform will provide implementations of the > > ODP > > >> APIs that are optimized for that particular platform. ODP itself > > does not > > >> specify how implementations do that or how they might improve > > performance > > >> over time with subsequent releases of the implementation. This was > > the > > >> reason for decoupling the APIs from the implementations and > > supporting > > >> multiple repositories. It's expected that, over time, > > implementations will > > >> evolve and improve their performance as the implementations become > > better > > >> tuned to refinements in their underlying platform. > > >> > > >> > > >> > > >> Hope that helps. > > >> > > >> > > >> > > >> Bill > > >> > > >> > > >> > > >> > > >> > > >> On Mon, Nov 3, 2014 at 2:18 PM, Shmulik Ladkani > > >> <shmulik.ladk...@gmail.com> wrote: > > >> > > >> On Mon, 3 Nov 2014 12:11:26 -0600 Bill Fischofer > > >> <bill.fischo...@linaro.org> wrote: > > >> > ODP APIs are designed to be used *a la carte* by applications, as > > ODP is > > >> > a > > >> > framework, not a platform. So feel free to mix malloc() or your > > own > > >> > memory > > >> > management or other API calls in as needed. > > >> > > > >> > What ODP requires is the types specified in its APIs, so for > > example the > > >> > only way to get an odp_buffer_t is via the odp_buffer_alloc() call. > > >> > odp_buffer_alloc() in turn requires an odp_buffer_pool_t and that > > in > > >> > turn > > >> > requires an odp_buffer_pool_create() call. > > >> > > > >> > ODP_BUFFER_TYPE_RAW simply exposes the basic block manager > > functions of > > >> > the > > >> > ODP buffer APIs. Again, you're free to use them for whatever > > purpose > > >> > the > > >> > application wants. Obviously one reason for doing so is to gain > > >> > portability across potentially different memory management > > >> > implementations. > > >> > > >> Thanks Bill. > > >> > > >> This leads me to few additional questions: > > >> > > >> Are all memory-related ODP APIs mandatory (must be implemented by the > > >> platform)? > > >> > > >> Are they required to provide any other benefit over standard (or > > custom) > > >> allocation routines besides the portability guarantee? > > >> > > >> Regards, > > >> Shmulik > > >> > > >> > > >> > > >> > > > > > > > > > > > > _______________________________________________ > > > lng-odp mailing list > > > lng-odp@lists.linaro.org > > > http://lists.linaro.org/mailman/listinfo/lng-odp > > > > > > > _______________________________________________ > > lng-odp mailing list > > lng-odp@lists.linaro.org > > http://lists.linaro.org/mailman/listinfo/lng-odp >
_______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org http://lists.linaro.org/mailman/listinfo/lng-odp