The "no gc" crowd
deadalnix
deadalnix at gmail.com
Wed Oct 9 09:21:05 PDT 2013
On Wednesday, 9 October 2013 at 15:48:58 UTC, Sean Kelly wrote:
> On Oct 9, 2013, at 7:35 AM, Jacob Carlborg <doob at me.com> wrote:
>
>> On 2013-10-09 15:51, Sean Kelly wrote:
>>
>>> Generally not, since even D's precise GC is partially
>>> conservative. It's also way more expensive than any cast
>>> should be. For better or worse, I think being able to cast
>>> data to shared means that we can't have thread-local pools.
>>> Unless a new attribute were introduced like "local" that
>>> couldn't ever be cast to shared, and that sounds like a
>>> disaster.
>>
>> Since casting breaks the type system to begin with and is an
>> advanced feature. How about providing a separate function that
>> moves the object? It will be up to the user to call the
>> function.
>
> Okay so following that… it might be reasonable if the location
> of data keyed off the attribute set at construction. So "new
> shared(X)" puts it in the shared pool. Strings are a bit
> trickier though, since there's no way to specify the locality
> of the result of a string operation:
>
> shared string x = a ~ b ~ c;
>
> And I'm inclined to think that solving the issue for strings
> actually gains us more than for classes in terms of performance.
The heap allocated part here is immutable. The slice itself is a
value type.
More information about the Digitalmars-d
mailing list