digitalmars.D.bugs - [Issue 3089] New: Error: f.bar can only be called on a mutable object, not shared(foo)
- d-bugmail puremagic.com (24/24) Jun 23 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3089
- d-bugmail puremagic.com (18/18) Aug 07 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3089
- d-bugmail puremagic.com (7/7) Oct 28 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3089
- d-bugmail puremagic.com (8/8) Oct 28 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3089
- d-bugmail puremagic.com (7/10) Oct 28 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3089
- d-bugmail puremagic.com (12/12) Oct 28 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3089
http://d.puremagic.com/issues/show_bug.cgi?id=3089 Summary: Error: f.bar can only be called on a mutable object, not shared(foo) Product: D Version: 2.030 Platform: Other OS/Version: Linux Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: jason.james.house gmail.com Created an attachment (id=401) --> (http://d.puremagic.com/issues/attachment.cgi?id=401) Sample code demonstrating the issue The compiler seems to offer no way to call functions on shared structs/classes under certain scenarios. The attached code demonstrates the simplest case I could find. Changing the type of foo to class, or moving the shared keyword on the function bar has no effect. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jun 23 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3089 Rob Jacques <sandford jhu.edu> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sandford jhu.edu OS/Version|Linux |All I've found const functions are callable on shared objects: struct foo{ int bar() const { return 1; } } void main(){ shared foo f; auto x = f.bar; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 07 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3089 09:55:31 PDT --- That's because struct has no monitor member, so the callee can't lock it for exclusive access. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 28 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3089 To the best of my knowledge, currently, shared does not imply synchronized, though synchronized implies shared. Shared only provides the correct memory fences. Shared structs/arrays are important for lock-free algorithms. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 28 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3089 10:55:53 PDT ---To the best of my knowledge, currently, shared does not imply synchronized, though synchronized implies shared. Shared only provides the correct memory fences. Shared structs/arrays are important for lock-free algorithms.That's the exact use case I want to do! -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 28 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3089 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla digitalmars.com Resolution| |WORKSFORME 11:30:10 PDT --- Works in dmd 2.035. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 28 2009