On 12/31/2012 06:15 AM, Cedric BAIL wrote:
> On Mon, Dec 31, 2012 at 12:24 PM, Henrique Dante <hda...@profusion.mobi> 
> wrote:
>> On Sun, Dec 30, 2012 at 9:28 PM, Cedric BAIL <cedric.b...@free.fr> wrote:
>>> On Sun, Dec 30, 2012 at 12:06 AM, Henrique Dante <hda...@profusion.mobi> 
>>> wrote:
>>>>   While developing with Eo I also noticed that it breaks cscope usage.
>>>> Whenever I wanted to jump to the definition of some method call, I
>>>> reached a macro in the include file instead. Then I had to use the
>>>> method ID to do a new search, this time not by definition, but by
>>>> usage in class definitions.
>>> It took me time to understand what you mean by definition. My
>>   A definition is a declaration that includes the element's content.
> Your definition is still vague when speaking about macro, prototype
> and implementation.
>
>>> understanding of your complaint is that you don't like virtual. cscope
>>   The way you are saying suggests that I don't like some part of object
>> orientation, which is false. I was strictly referring to the
>> implementation of Eo and its influence on development.
>>
>>> will never be able to find the implementation (for me definition is
>>   Method calls that were not polymorphic, from concrete classes, were
>> made polymorphic with Eo. And in this case, polymorphic means
>> explicitly referenced by an ID. That's the virtual I didn't like. But
>> even if I liked it, it would have broken "jump-to-definition" the same
>> way.
> Jump to declaration is not broken and provide documentation, prototype
> for said call. That what developer using EFL are looking for.
>
>>   The problem you mentioned was restricted to a (small ?) subset of
>> methods, the ones derived from base classes. Now the whole libraries
>> have this problem.
>>
>>> the prototype, that's why I was confused) at compile time, because it
>>   That's a declaration.
>>
>>> is determined at runtime. The same problem exist with C++ and people
>>   No idea how that's done in C++. I think cscope works with C++ by
>> luck. However in an OO language, a method call bound to a concrete,
>> "bottom-of-hierarchy", instanced object should be enough to jump to
>> its definition, at compile time, even if the method is virtual (this
>> should only be harder if it's necessary to walk through the object
>> hierarchy). Anyway, jumping to definition of a virtual method with
>> cscope on a C++ project can be done with 1 search, not 2.
> So now, I don't follow you anymore. Jumping to the prototype of a
> virtual in C++ work exactly the same way it work in C. At least from
> an user of the API. I think I now do understand what you mean. You are
> doing development inside EFL and try to find the macro that correspond
> to a function implementation, right ?
>
> As a matter of fixing that issue, couldn't you not instruct csope to
> do the double jump for you ? It doesn't sounds like the problem is
> more a limitation in your tool than a real issue.
>
>>> think that virtual is useful somehow.
>>   Not sure why you're talking about the concept of virtual. My comment
>> was about noticing that developers might avoid EFL because Eo (not OO)
>> has negative effects on development.
> Maybe because your explanation is confusing. I was supposing you were
> writing application with EFL and did use the EO API and where
> complaining about that. Now I think you are trying to work inside EFL
> with EO API and are complaining about some limitation of your tool.
>
>>> In fact we need virtual today in EFL for at least to case, for at
>>> least to case that I know of. First geometry get on Evas_Object_Text
>>> and second for all the *_file_set that lurk around, have the same
>>> prototype and do the almost the same think, but just exist to confuse
>>> the developer.
>>   That looks like there are too few cases to consider it as a benefit.
> That's just the two first example that came to me without having the
> need to search for anything. I am sure there is more. Making a non
> virtual and virtual function call would have added a layer of
> complexity and risk for API/ABI break later. It's a trade-of .
>
>>   Repeating again, I sent the comment to sugest that Eo could have a
>> negative acceptance by developers.
> It was difficult to understand the context of your remark. Now, I
> think you are trying to get used to EFL source code and Eo is another
> bit of complexity in that picture. I guess you never looked at GObject
> :-) In all object model implemented in C, there is some boiler plate
> like that. Eo come with its own.
>
>>>> The other way doesn't work well either:
>>>> single stepping in gdb to find out the code path or looking at a
>>>> backtrace are both polluted with Eo calls. In general single stepping
>>>> on an efl method call should take 5 seconds, but with Eo it may take 5
>>>> minutes. Main negative conclusion about this is that there's no
>>>> trivial way to find out what an Eo call does, and this will discourage
>>>> new developers from reading code.
>>> Did you try Daniel's gdb script for that task ?
>>   No idea what it is.
> efl/data/eo/eo_step.py.
eo_step has been committed in revision 80760. Check the log to 
understand how it works.
>
>>> --
>>> Cedric BAIL
>>>
>>> ------------------------------------------------------------------------------
>>> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
>>> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
>>> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
>>   There's a Microsoft ad in your e-mail.
> Oh, look below, there is one also for your message ! You are pretty
> new here, right ? :-)
>
>>> MVPs and experts. ON SALE this month only -- learn more at:
>>> http://p.sf.net/sfu/learnmore_123012
>>> _______________________________________________
>>> enlightenment-devel mailing list
>>> enlightenment-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> ------------------------------------------------------------------------------
>> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
>> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
>> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
>> MVPs and experts. SALE $99.99 this month only -- learn more at:
>> http://p.sf.net/sfu/learnmore_122412
>> _______________________________________________
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> --
> Cedric BAIL
>
> ------------------------------------------------------------------------------
> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
> MVPs and experts. SALE $99.99 this month only -- learn more at:
> http://p.sf.net/sfu/learnmore_122412
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>


------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122412
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to