On Thu, Aug 11, 2016 at 3:59 PM, Gustavo Sverzut Barbieri
<barbi...@gmail.com> wrote:
> Em quinta-feira, 11 de agosto de 2016, Felipe Magno de Almeida <
> felipe.m.alme...@gmail.com> escreveu:
>
>> On Thu, Aug 11, 2016 at 11:23 AM, Gustavo Sverzut Barbieri
>> <barbi...@gmail.com <javascript:;>> wrote:

[snip]

>> >>> is Eina_Error ok?
>> >>>
>> > will be kinda of a pain to map all possible errnos to enums, but i can
>> > do it. (the other approach was to register all errnos at load time and
>> > do a simple conversion as generic function eina_error_from_errno kinda
>> > of thing).
>>
>> No. Please make it an Eina_Error! It is the only way to sensibly  treat
>> errors in bindings in a automatic-way.
>
> Ok :-)
>
> Please come to an agreement soon!

@raster: We should use Eina_Errors for _everything_ in API. This allows
C++ to treat errors as exceptions if the user doesn't care to check it
itself (by using the overload with a std::error_code, which is, btw, already
integrated to C++ with Eina_Errors), and also allows JS to throw
exceptions, which is expected by users in these languages. I _may_
let it go with _some_(very few) functions that return bool (though I'd much
prefer a more descriptive type, even if it is equal to a bool). But even then
they should set a Eina_Error so users can really know what has gone
wrong.

If we start defining enums for each sub-library, because Eina_Errors
are TLS, no application is going to check errors correctly. We should
treat errors in consistent-way all over the API, so users are more
likely to actually handle them. Our implementation, right now, doesn't
set Eina_Error for most things, which is bad IMO. They just
return a default value, usually, and the user (application developer)
is left just wondering what is going on.

Though I dislike TLS, which I _really_ _do_. IMO, if TLS is necessary
for Eina_Error, then it is necessary. As we haven't yet fixed Eo ABI yet,
we could think of something to avoid TLS in most cases, but that would
likely really clutter the API. Still, Eina_Error is the way to go, even if
it should return a Eina_Error to avoid TLS.

>> [snip]
>>
>> Regards,
>> --
>> Felipe Magno de Almeida

Regards,
-- 
Felipe Magno de Almeida

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. http://sdm.link/zohodev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to