[Proposal] Add module for C-strings support in Phobos
Rikki Cattermole
alphaglosined at gmail.com
Thu Mar 20 02:20:29 PDT 2014
On Thursday, 20 March 2014 at 08:24:30 UTC, Denis Shelomovskij
wrote:
> It's filed as enhancement 12418 [2]:
>
> C-strings processing is a special and common case so:
> 1. C-strings should be supported with both performance and
> usability.
> 2. There should be a dedicated module for C-strings (instead of
> adding such functions here and there in other modules).
>
> Current state: there is no good support for C-strings in
> Phobos, there is slow and broken `toStringz` (Issue 12417 [3]),
> and no standard way to make many common operations, like
> converting returned C-string to string and releasing its memory
> or creating a C-string from string using an allocation function.
>
> So I propose to add `unstd.c.string` [1] module to Phobos which
> include all use-cases I have seen implementing (correct and
> fast in contrast to existing ones like GtkD (yes, it's both
> incorrect and slow because of tons of GC allocations)) C
> library wrappers.
>
>
> [1] http://denis-sh.bitbucket.org/unstandard/unstd.c.string.html
> [2] https://d.puremagic.com/issues/show_bug.cgi?id=12418
> [3] https://d.puremagic.com/issues/show_bug.cgi?id=12417
Looks like it wouldn't be really useful with Windows API. Given
that wstrings are more common there.
Another thing that would be nice to have is a wrapper struct for
the pointer that allows accessing via e.g. opIndex and opSlice.
Ext.
Use case: Store the struct on D side to make sure GC doesn't
clean it up and still be able to access and modify it like a
normal string easily.
More information about the Digitalmars-d
mailing list