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