February 18, 2010 [Issue 3811] New: Shared cannot be implemented properly in druntime's array functions (lifetime.d) | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=3811 Summary: Shared cannot be implemented properly in druntime's array functions (lifetime.d) Product: D Version: future Platform: All OS/Version: All Status: NEW Severity: major Priority: P2 Component: druntime AssignedTo: sean@invisibleduck.org ReportedBy: schveiguy@yahoo.com --- Comment #0 from Steven Schveighoffer <schveiguy@yahoo.com> 2010-02-18 06:46:20 PST --- There are several array functions which accept TypeInfo for the array type being operated on. However, the assumption is made that the type applies to all arguments. This is fine for non-shared arrays, but for shared arrays, reading data from that array must be done with proper synchronization. For example, it should be possible to concatenate both a shared and local array into a new array, or append the contents of a shared array to a non-shared array. Therefore, there needs to be typeinfo passed in for each argument to the array functions, and action should be taken appropriately. Alternatively, the compiler could call different versions of the function depending on the shared status of the arguments. This should be minimal, and might help performance since runtime checks would not be needed. Note also that two new functions in druntime do not pass in a TypeInfo reference because they are specific to wchar[] and char[]. Those functions need to undergo the same issue. Fixing this issue depends on the solidification and proper implementation of shared in the spec and compiler respectively. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation