On Wed, May 25, 2016, Tom Hacohen wrote:
> On 25/05/16 12:01, Daniel Kolesa wrote:
> > Hello,
> >
> > I've started removal of support for pointers in Eolian in order to
> > bring the language one level up and make it easier to do bindings.
> > This has already been done for class handles and for complex types
> > like array, hash, iterator etc. but currently one big obstacle in the
> > way is strings. I have a pretty clear idea in my head but it's
> > possible I might have missed something so I'm asking here if anyone
> > has any feedback or ideas or whatever that I could have missed before
> > implementing it.
> >
> > Basically my idea currently is to introduce a new "string" builtin,
> > which ALWAYS represents const char *. Mutable char pointers will not
> > be possible with this system - I believe we don't want these either,
> > because they're low level and represent something that you can change
> > but not resize, plus it doesn't map well to various languages,
> > especially scripting ones. I did some analysis on our API and it seems
> > we actually have very few uses for mutable char pointers - there is
> > currently only a handful of cases across the EFL, as opposed to
> > countless const ones. APIs that currently use mutable char pointers
> > would be dealt with on per-case basis and redesigned, probably to use
> > something like Eina_Strbuf (in most cases; strbuf will get another
> > builtin eolian type) with wrappers for legacy.
> 
> evas_image_pixels_get returns a const char * that's not a string iirc. 
> Or heck, maybe char *. It's a good idea to also have a buffer type for 
> just dumping of raw data. This is useful for image pixel manipulation 
> and etc.

So... "opaque"? And that should apply to void* too. It just means that
you get some chunk of data that you might need to pass to something else
but you cannot make any assumption about it.

-- 
Adrien Nader

------------------------------------------------------------------------------
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. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to