On Sun, 30 Dec 2012 14:19:01 -0200 Lucas De Marchi <lucas.demar...@profusion.mobi> said:
> On Sun, Dec 30, 2012 at 12:51 PM, Carsten Haitzler <ras...@rasterman.com> > wrote: > > > i shall start with a single one: 'Subject: [E-devel] Eobj - Request for > > review/comments' in april 2012. > > indeed I missed that. But don't be that silly. Let me explain: wait. you challenge me to provie even 1 example (there's more) and now you dismiss it by saying "don't be silly"? this line of logic i fail to follow. > I just added a project under PROTO/ named ldm with features X, Y and > Z. Will you review it? probably not. if you said "we want to make this the future of all oo infra in efl" and asked for input, i would. > 5 month later later I come back and replace all your Eo structs > underneath you with my ldm structs, because this is the way I think is > the right way. Will you complain? Of course you will. that is nothing like what happened. not even close. you have many opportunities to have input, comment etc. > To worse, it was added together with the move of the tree to efl/. And > I *DID* complain saying there was no reason to rush eobj in. Of > course you didn't hear because a patch like eobj would be impossible > to maintain out of tree. indeed it would be impossible - saying i didn't listen is just your way of saying "you disagreed therefore i will say you didn't listen". you even provide a justification for disagreing here, and yet... you decide it's "not listening". what i see here is "there is a change, and i don't like change. i hate change. change means i have to adapt and i hate doing that". i suggest we roll back the async rendering code in evas. it's change. it creates problems. it hasn't solved anything. oh - and edbus. it's change. it's created leaks and crashes and soaked up my time during my vacation. let's roll it back. i hate change. don't be silly. this is EXACTLY what you sound like. you'd now just pulling justifications out of the air to back a desire for "no change". > And as others pointed out, saying "this has been discussed on IRC and > mailing list" and interpreting that like "it has been decided to do > this way" is just silly. there were 2 main lines of how to solve our "oo stuff". gustavo's which was "just use smart objects" which i said wouldn't fly because we can't make lower level objects use this (timers etc). they are also too heavy-weight for such uses even if we twisted the world. evas canvases then can't ve objects either. they also do not support multiple inheritance (or multiple interfaces) which i listed as a requirement because elm was literally creating objects that did this (scrolled entry for example). i had requirements that went roughly like this: 1. support normal single inheritance 2. multiple inheritance must work sensibly 3. we have to be able to go down to ecore and make timers etc. into objects 4. we have to be able to attach objects to eachother weakly or tightly (weak refs or strong refs) 5. we need to clean up our callback prototype mess and unify 6. we need to make object ptr (handle) access much safer in the event of freed objects or errant (garbage) pointers as well as typechecks 7. since #6 probably is going to raise object access overhead, some way of alleviating this would be really nice 8. we have to be able to slide it under our current api/abi so "stuff keeps working as it used to" but in future we can migrate to it once slide underneath everywhere 9. support runtime method overriding etc. 10. unify the data attaching we have (evas_object_data_set/get/del) 11. allow for memory compaction/gc to alleviate fragmentation i think i had a few more. some were more important that others, but multiple-inheritance was a big one as it was problematic with just stuffing struct in struct methods of single inheritance gobject did. eo wasn't even created yet. there were toy attempts/exampels in different forms etc. to explore ideas and see what would work or not but nothing concrete. this was the time to have a say. even with the first iterations of eo - it was the time to have a say. eo solves the bove, OR lays the groundwork to be able to solve the above transparently under the hood in future. now you claim eo adds all sorts of problems. the eo_do() is impractical. i just don't get that. it's just as practical as now. obj = evas_object_image_add(evas); evas_object_image_filled_set(obj, EINA_TRUE); evas_object_file_set(obj, "blah.jpg", NULL); evas_object_move(obj, 0, 100); evas_object_resize(obj, 200, 100); evas_object_show(obj); very common thing in code. with eo obj = eo_add(evas_object_image_class_get(), evas, evas_obj_image_filled_set(EINA_TRUE), evas_obj_image_file_set("blah.jpg", NULL), evas_obj_position_set(0, 100), evas_obj_size_set(200, 100), evas_obj_visibility_set(EINA_TRUE)); how is that impractical to use? how is it ugly? i've already said that eo_do is not ioctl() - it's vastly different since it doesnt rely on passing in magic struct ptrs filled in from prior call code and is NOT 1 eo_do == 1 operation. backrace - yes. that's what happens if you slide in a layer. if you slide in any layer no mater what it is it'll add to the bt. arguing against this is arguing against any chnage at all to code that may possibly add another call. that means you argue for no change every - no unification. no shared common layer OR no compatibility. that's a bogus argument. yes - it adds 2 layers. this can be alleviated inside eo. just make it macros or diectly copy & paste the code. the perfromance argument was one that went around a lot and we investigated and looked into and he whole varags thing was a way of addressing it. eo to some very minor extent does kind of "invent a new lang" within c. i mulled the idea of an added pre-processor at compile time to be able to add things like namespacing and cutting down typing fluff but others rejected the idea. it didn't happen - ok. fair enough. it'd be c PLUS some efl speciic "language extensions" in a preprocessor much "smarter" than cpp. c++ would entail a massive change much more invasive than eo and it'd come with other side-effects too like the complaints of build times and memory needed just to build efl from eveyr dev. your complaints herew oudl jsut morph into other peoples complaints about this. the smart object thing i've already addressed. you have a very narow veiw if all u think is smart objects. this had to solve more than evas, thus its not viable for the loglevles - agreed here isnt a need for eo to be so noisy log-wise. this is at least useful and constructive feedback and something easily addressed. and we've had our disgreement on if its api or abi breakage. we could solve this with ifdef CPLUSPLUS stuff... but then it wouldn't get access to any of the eo infra in parallel - it'd have to stick to the old api and types only. at this stage it hasn't ben done - i'd like to hear from andreas about this since he was he one affected. i am thinking we possibly should split the headers anyway right now - "old efl" stuff and the new eo stuff. #include them from the master "Evas.h" etc. etc. -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ 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