[Issue 16436] Implement pragma(switches, "")
https://issues.dlang.org/show_bug.cgi?id=16436 --- Comment #4 from Ketmar Dark--- so instead of windows users writing bugreports to their OS vendor, we should add completely useless code to the compiler. i somehow doesn't feel that this solution is actually solves anything. --
[Issue 16436] Implement pragma(switches, "")
https://issues.dlang.org/show_bug.cgi?id=16436 --- Comment #3 from b2.t...@gmx.com --- (In reply to Ketmar Dark from comment #2) > what is wrong with: > > #!rdmd -O -inline > import std.stdio; > void main () { writeln("hi!"); } > > ??? hint: it starts with a "Win" and ends with a "dows". --
[Issue 16436] Implement pragma(switches, "")
https://issues.dlang.org/show_bug.cgi?id=16436 Ketmar Darkchanged: What|Removed |Added CC||ket...@ketmar.no-ip.org --- Comment #2 from Ketmar Dark --- what is wrong with: #!rdmd -O -inline import std.stdio; void main () { writeln("hi!"); } ??? --
[Issue 13826] Move volatileLoad/Store to core.volatile when the volatile keyword is removed
https://issues.dlang.org/show_bug.cgi?id=13826 --- Comment #1 from Mike--- volatile keyword was removed in March 2016: https://github.com/dlang/dmd/pull/5556 --
[Issue 16363] Cannot construct a random access range using frontTransversal
https://issues.dlang.org/show_bug.cgi?id=16363 gruen_tob...@web.de changed: What|Removed |Added Assignee|nob...@puremagic.com|gruen_tob...@web.de --
[Issue 16363] Cannot construct a random access range using frontTransversal
https://issues.dlang.org/show_bug.cgi?id=16363 gruen_tob...@web.de changed: What|Removed |Added Assignee|gruen_tob...@web.de |nob...@puremagic.com --
[Issue 16363] Cannot construct a random access range using frontTransversal
https://issues.dlang.org/show_bug.cgi?id=16363 gruen_tob...@web.de changed: What|Removed |Added CC||gruen_tob...@web.de Assignee|nob...@puremagic.com|gruen_tob...@web.de --
[Issue 10276] Nested structs get a context pointer even if they don't need one
https://issues.dlang.org/show_bug.cgi?id=10276 Andrej Mitrovicchanged: What|Removed |Added Keywords||performance --- Comment #2 from Andrej Mitrovic --- I'm marking this as a performance issue. It should in theory be simple to implement this in the compiler: 1. Check if the struct definition compiles 2. Check if a `static` version of it compiles 3. If 2 fails make the struct nested --
[Issue 1223] .tupleof tries to access protected members
https://issues.dlang.org/show_bug.cgi?id=1223 Andrej Mitrovicchanged: What|Removed |Added Status|ASSIGNED|RESOLVED CC||andrej.mitrov...@gmail.com Resolution|--- |WONTFIX --- Comment #3 from Andrej Mitrovic --- (In reply to Andrei Alexandrescu from comment #1) > I think tupleof should actually access all nonstatic members, or that at > least there should be a way to access all members. It's essentially a way to > unencapsulate objects for e.g. serialization and introspection purposes. This is an ancient issue by now (D1), but I don't think we should change .tupleof in any case. Typically low-level code uses .tupleof, for example it might use it to send a data structure over the network and you wouldn't want to lose private members in the process. :) I think this is fair to close as wontfix. --
[Issue 10257] .tupleof loses protection information upon iteration
https://issues.dlang.org/show_bug.cgi?id=10257 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from Andrej Mitrovic --- Not really a bug per say, it's calling getProtection on a value in a tuple, it's bound to be public. The issue of whether it should have access to private symbols or not is part of https://issues.dlang.org/show_bug.cgi?id=1223. --
[Issue 9930] enum members should be hidden in an enum instance
https://issues.dlang.org/show_bug.cgi?id=9930 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #15 from Andrej Mitrovic --- Yeah I'm afraid I've seen so much code in the wild which depends on this feature, that it would make it very hard to change this without breaking everyone's code. The benefits of the breakage would be too small in this case. I'm closing this. --
[Issue 9867] Map opIndex is not usable with immutable types
https://issues.dlang.org/show_bug.cgi?id=9867 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #2 from Andrej Mitrovic --- Haha what?? I thought I could make a range immutable and consume it?! --
[Issue 9864] Allow instantiating eponymous inner template with a single parameter list
https://issues.dlang.org/show_bug.cgi?id=9864 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from Andrej Mitrovic --- Needs to be a DIP, but also this would be a big change in language semantics. I don't really need it as much as I thought I did. --
[Issue 9854] Cannot directly subtype a type tuple
https://issues.dlang.org/show_bug.cgi?id=9854 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from Andrej Mitrovic --- What was I thinking when I filed this. Multi-type subtyping doesn't work (yet), perhaps that was my end-goal. But that would require instances in any case. --
[Issue 9849] Introduce BaseElementType and BaseRangeType
https://issues.dlang.org/show_bug.cgi?id=9849 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #2 from Andrej Mitrovic --- The enhancement request lists no actual use-cases. If anything it would just be another extra function in Phobos with very little actual use or benefits. --
[Issue 9838] Allow calling aliased method on an object
https://issues.dlang.org/show_bug.cgi?id=9838 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from Andrej Mitrovic --- This is asking for too much magic. At best it should be a DIP, but I don't think we should go there. --
[Issue 9833] version(unittest) should be included in documented unittests
https://issues.dlang.org/show_bug.cgi?id=9833 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #1 from Andrej Mitrovic --- Seems to work now. --
[Issue 9828] Inconsistent lowering of 1-element tuple to its element
https://issues.dlang.org/show_bug.cgi?id=9828 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #3 from Andrej Mitrovic --- Indeed I came to the same conclusions. The tuple is only lowered on request, like for alias parameters. In the last code example `Foo[0]` should be used; --
[Issue 9827] Duplicate file on command-line issues a bad diagnostic
https://issues.dlang.org/show_bug.cgi?id=9827 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #2 from Andrej Mitrovic --- New diagnostic: Error: module test from file test.d is specified twice on the command line --
[Issue 9408] invariant should be non-const by default and settable to const
https://issues.dlang.org/show_bug.cgi?id=9408 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #5 from Andrej Mitrovic --- I'm closing this as invalid unless someone comes up with a DIP with all the pro's and con's. When looking at it from a safety point of view I'd rather not have someone accidentally modify a variable in an invariant of all places. Imagine a debug build where a variable was assigned to and made an app work fine, and then a -release build was deployed without the assignment and causing hard to track bugs. --
[Issue 9381] package access can be abused and worked around
https://issues.dlang.org/show_bug.cgi?id=9381 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #4 from Andrej Mitrovic --- Nah, we can't really do this as it might be possible that some projects use multiple package roots and multiple import paths. It's really a non-issue. --
[Issue 9324] Can't assign a type with a Tuple subtype to a Tuple
https://issues.dlang.org/show_bug.cgi?id=9324 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #1 from Andrej Mitrovic --- Works with latest DMD. --
[Issue 9380] deprecated statement string expression is too limited
https://issues.dlang.org/show_bug.cgi?id=9380 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #1 from Andrej Mitrovic --- Fixed in git-head recently. --
[Issue 8815] alias modification silently fails on nested fields
https://issues.dlang.org/show_bug.cgi?id=8815 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #3 from Andrej Mitrovic --- Can't pass instance fields as alias parameters, this is a known limitation and part of other enhancement requests. --
[Issue 8231] conv.to fails to convert string with trailing "u"
https://issues.dlang.org/show_bug.cgi?id=8231 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #5 from Andrej Mitrovic --- Yeah the suggestion was bad, if anything it might subtly allow buggy input. --
[Issue 8228] Mixin template can't add constructor to class
https://issues.dlang.org/show_bug.cgi?id=8228 --- Comment #3 from Andrej Mitrovic--- Indeed this is not technically a bug at all, for example: http://dlang.org/spec/template-mixin.html#mixin_scope *However*, we could make it a compiler error to define constructors in mixin templates as they can't really be used in any way. --
[Issue 8017] Shadowing declaration not detected in opApply
https://issues.dlang.org/show_bug.cgi?id=8017 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #2 from Andrej Mitrovic --- Hm well this is sort of by design, for example there are no errors here: - int[int] table; void main() { int foo; void test ( ) { string foo = ""; } } - A foreach is really an implicitly generated function just like 'test'. --
[Issue 7483] Can't recursively call function with auto return
https://issues.dlang.org/show_bug.cgi?id=7483 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #5 from Andrej Mitrovic --- The diagnostic is better these days and mentions the inferred return type. --
[Issue 7244] Access Violation with optimized build when using memory-mapped file
https://issues.dlang.org/show_bug.cgi?id=7244 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #3 from Andrej Mitrovic --- Works with latest DMD. --
[Issue 7191] ctor/opAssign doesn't play nice with field initialization
https://issues.dlang.org/show_bug.cgi?id=7191 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #4 from Andrej Mitrovic --- Yeah I fear this might have unexpected complications if the enhancement was implemented, and there wouldn't be that much benefit here. I'm closing this down. --
[Issue 7145] Implement initializedArray in std.array
https://issues.dlang.org/show_bug.cgi?id=7145 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #3 from Andrej Mitrovic --- Hmm.. I'm not sure about the use-case of this. It combines some stuff with an optional allocator but that should ideally be part of the new allocator stuff in the works by Andrei. The provided example implementation isn't very noteworthy though. Closing this. --
[Issue 6573] Add isOneOf to std.traits
https://issues.dlang.org/show_bug.cgi?id=6573 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #6 from Andrej Mitrovic --- We have anySatisfy for this now: - import std.meta; void main() { enum isInt ( T ) = is(T == int); static assert(anySatisfy!(isInt, float, char, int)); static assert(!anySatisfy!(isInt, float, char)); } - --
[Issue 16438] New: std.typelist still exists!
https://issues.dlang.org/show_bug.cgi?id=16438 Issue ID: 16438 Summary: std.typelist still exists! Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: major Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: andrej.mitrov...@gmail.com Deprecation: module std.typelist is deprecated - Please use std.typecons instead. This module will be removed in March 2015. Deprecation issue: https://issues.dlang.org/show_bug.cgi?id=7797 This module should have been removed over a year ago. --
[Issue 6349] HTOD needs -od or -of switch
https://issues.dlang.org/show_bug.cgi?id=6349 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #1 from Andrej Mitrovic --- dstep (https://github.com/jacob-carlborg/dstep) should be used instead, marking as wontfix. --
[Issue 6239] HTOD: Add support for converting opaque C types to D
https://issues.dlang.org/show_bug.cgi?id=6239 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #5 from Andrej Mitrovic --- dstep supports this feature (https://github.com/jacob-carlborg/dstep), marking as wontfix. --
[Issue 6125] to!string doesn't throw on invalid UTF sequence
https://issues.dlang.org/show_bug.cgi?id=6125 Andrej Mitrovicchanged: What|Removed |Added CC||and...@erdani.com --- Comment #1 from Andrej Mitrovic --- - import std.conv; import std.stdio; void main() { auto x = to!string(cast(char)255); writeln(x); } - Outputs: [Decode error - output not utf-8] I think the to!() routines should be UTF safe so the call to to!string above should throw an exception. Is this right Andrei? --
[Issue 6101] Documentation for dead modules still distributed with DMD
https://issues.dlang.org/show_bug.cgi?id=6101 Andrej Mitrovicchanged: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |WORKSFORME --- Comment #7 from Andrej Mitrovic --- I think this is largely resolved now, closing. --
[Issue 6022] auto return type inference could be improved
https://issues.dlang.org/show_bug.cgi?id=6022 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #2 from Andrej Mitrovic --- Hmm actually it's better if this is explicit. Otherwise the compiler may end up changing the return type if it finds a better type which all the return expressions implicitly convert to. For example: - auto foo() { if (0) { return [long.max]; } else { return [int.max + 1]; } } - Currently it's an error. In theory the compiler could decide to make the return type `long[]`, that would make the second array contain a positive long integer. *But*, if you remove the first expression the compiler will infer the return type as `int[]` and the second array will contain a negative number (due to signed int wraparound). I feel it would be a little dangerous to have such implicit type deduction matching in place. I'm marking my enhancement request as wontfix. --
[Issue 5862] case statement allows runtime values
https://issues.dlang.org/show_bug.cgi?id=5862 Andrej Mitrovicchanged: What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |INVALID --- Comment #7 from Andrej Mitrovic --- As mentioned in the pull request the proposal to disallow this was rejected. I would like to remind about this: - import std.stdio; void main() { int first = 1; int second = 1; switch (1) { case first: { writeln("first"); break; } case second: { writeln("second"); break; } default: } } - The lexically first matching case will match. That's ok, but it should probably be documented if it's not (this style of code should be rare in the wild in any case). --
[Issue 5806] std.concurrency : Need the count of a thread's message queue
https://issues.dlang.org/show_bug.cgi?id=5806 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #2 from Andrej Mitrovic --- This might make it a leaking API this way. `get` already returns false if the message queue is empty which IIRC resolves my initial problem. --
[Issue 4734] immutable return type specifier without parantheses confuses the compiler
https://issues.dlang.org/show_bug.cgi?id=4734 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #8 from Andrej Mitrovic --- (In reply to Andrej Mitrovic from comment #7) > (In reply to comment #6) > > (In reply to comment #5) > > > In any case, at minimum, the error message needs to be improved. > > > > How about we implement these error messages like this: > > > > Error: function test.Test.foo () const is not callable using (this) > > Error: function test.Test.foo () is not callable using const(this) > > > > It's a little bit more informative than just a lone set of parens. > > P.S. this is now: > Error: immutable method test.Test.foo is not callable using a mutable object > > I'm thinking of closing this, since the diagnostic is informative enough to > know what went wrong. Marking as resolved for this reason. --
[Issue 4595] [tdpl] Accessing non-static member of a null reference compiles
https://issues.dlang.org/show_bug.cgi?id=4595 Andrej Mitrovicchanged: What|Removed |Added OS|Windows |All --- Comment #17 from Andrej Mitrovic --- Well, six years after filing this I'm having second thoughts. Is anyone aware of competing language compilers which do this type of analysis at compile-time? I'm aware of static analysis tools (like pvs-studio), which make me think we should have something like that for D. A tool, rather than something built-in to the compiler. I can imagine having this in the compiler would be complicated to implement and have a lot of missed cases, or worse, false-positives. --
[Issue 10553] Access specifiers on anon enums have no effect
https://issues.dlang.org/show_bug.cgi?id=10553 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #2 from Andrej Mitrovic --- Issue was fixed at some point. --
[Issue 10552] Cannot apply access specifiers to individual anonymous enum members
https://issues.dlang.org/show_bug.cgi?id=10552 Andrej Mitrovicchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #7 from Andrej Mitrovic --- (In reply to Walter Bright from comment #6) > I don't see much value in this enhancement. That makes two of us. :) Closing. --
[Issue 15306] Delegates with shared context can have unshared aliasing
https://issues.dlang.org/show_bug.cgi?id=15306 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 15306] Delegates with shared context can have unshared aliasing
https://issues.dlang.org/show_bug.cgi?id=15306 --- Comment #4 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/96136d6e4b1330650ca1fbf5afa57c2758ee18d3 fix Issue 15306 - Delegates with shared context can have unshared aliasing https://github.com/dlang/dmd/commit/fa9cea7a43fe8ccdd483fac11c3c1a194aab1336 Merge pull request #6093 from WalterBright/fix15306 fix Issue 15306 - Delegates with shared context can have unshared ali… --
[Issue 15371] __traits(getMember) should bypass the protection
https://issues.dlang.org/show_bug.cgi?id=15371 --- Comment #7 from b2.t...@gmx.com --- related https://issues.dlang.org/show_bug.cgi?id=10267 --
[Issue 16437] New: Enum type inference
https://issues.dlang.org/show_bug.cgi?id=16437 Issue ID: 16437 Summary: Enum type inference Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: b2.t...@gmx.com inference of the enum type in function calls, allowing to type only the member Enum A{a0} void foo(A a); a0.foo; // OK void bar(T)(T t); a0.bar; // ERROR void baz(A[] a); [a0].baz; //OK void cli(A a)(); cli!a0; // OK This could be accepted as long as the parameter type is not inferred since the parameter type will have to be used to find a match in the enum. --
[Issue 16436] Implement pragma(switches, "")
https://issues.dlang.org/show_bug.cgi?id=16436 --- Comment #1 from b2.t...@gmx.com --- pragma(switches, "-inline -O"); --
[Issue 16436] New: Implement pragma(switches, "")
https://issues.dlang.org/show_bug.cgi?id=16436 Issue ID: 16436 Summary: Implement pragma(switches, "") Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: b2.t...@gmx.com Allowing to set the globals during compilations, useful for single file modules and short scripts example: pragma(switches, -inline -O) This would require to isolate argument parsing from mars.d in a templatized function so that it can be reused when the pragma is processed in attributes.d. Also some switches should not be accepted when passed through the pragma. --
[Issue 16338] sort variantArray bug
https://issues.dlang.org/show_bug.cgi?id=16338 b2.t...@gmx.com changed: What|Removed |Added Severity|enhancement |normal --
[Issue 16413] multiSort doesn't work with @system comparison function
https://issues.dlang.org/show_bug.cgi?id=16413 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 16413] multiSort doesn't work with @system comparison function
https://issues.dlang.org/show_bug.cgi?id=16413 --- Comment #1 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/7c7af21d48be942402008e879976f85093a33d37 add test for Issue 16413 https://github.com/dlang/phobos/commit/45eb00fb4d0d29f40aabd98d661120061746efb5 Merge pull request #4737 from John-Colvin/patch-17 Fix Issue 16413 - multiSort doesn't work with @system comparison function --
[Issue 7410] Wrong error message for selective import
https://issues.dlang.org/show_bug.cgi?id=7410 --- Comment #2 from John Colvin--- just seen that this was a d1 bug, Should I bump it to d2 seeing as there's still a problem, or open a new one? --
[Issue 7410] Wrong error message for selective import
https://issues.dlang.org/show_bug.cgi?id=7410 John Colvinchanged: What|Removed |Added Keywords||accepts-invalid CC||john.loughran.colvin@gmail. ||com Severity|normal |major --- Comment #1 from John Colvin --- This now compiles without an error, which definitely shouldn't happen! --
[Issue 16435] New: Wrong error message for bad selective import
https://issues.dlang.org/show_bug.cgi?id=16435 Issue ID: 16435 Summary: Wrong error message for bad selective import Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: john.loughran.col...@gmail.com % tree . └── a └── b ├── c.d └── f.d 2 directories, 2 files % cat a/b/c.d module a.b.c; import a.b.f : A; % cat a/b/f.d import a.b.c; % dmd a/b/c.d a/b/c.d(2): Deprecation: a.b.c.A is not visible from module c a/b/c.d(2): Deprecation: a.b.c.A is not visible from module c a/b/c.d(2): Error: alias a.b.c.A recursive alias declaration which really makes no sense... --
[Issue 16434] New: dmd assertion failure in declaration.d
https://issues.dlang.org/show_bug.cgi?id=16434 Issue ID: 16434 Summary: dmd assertion failure in declaration.d Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: regression Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: john.loughran.col...@gmail.com % tree :( . └── D └── E ├── F.d └── I.d 2 directories, 2 files % cat D/E/F.d module H; import D.E.I; struct K { L* M; } struct N { K O; P Q; } % cat D/E/I.d module D.E.I; alias P = long; % dmd D/E/I.d D/E/F.d D/E/F.d(6): Error: undefined identifier 'L' core.exception.AssertError@declaration.d(2061): Assertion failure 4 dmd 0x0001097b7854 _d_assert + 104 5 dmd 0x00010958c86a void ddmd.declaration.__assert(int) + 38 6 dmd 0x0001095c36e1 _ZN14VarDeclaration16isOverlappedWithEPS_ + 81 7 dmd 0x000109590c0c _ZN20AggregateDeclaration21checkOverlappedFieldsEv + 316 8 dmd 0x0001095ec1ca _ZN17StructDeclaration12finalizeSizeEv + 330 9 dmd 0x000109590a0d _ZN20AggregateDeclaration13determineSizeE3Loc + 221 10 dmd 0x0001095903e9 _ZN20AggregateDeclaration9semantic2EP5Scope + 89 11 dmd 0x0001095e1ab1 _ZN6Module9semantic2EP5Scope + 113 12 dmd 0x000109665d2c int ddmd.mars.tryMain(ulong, const(char)**) + 13348 13 dmd 0x00010958d8d2 _Dmain + 38 14 dmd 0x0001097c838b D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv + 39 15 dmd 0x0001097c82bf void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) + 35 16 dmd 0x0001097c8330 void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() + 44 17 dmd 0x0001097c82bf void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) + 35 18 dmd 0x0001097c8225 _d_run_main + 497 19 dmd 0x00010958d96b main + 15 20 dmd 0x00010958bf13 start + 51 21 ??? 0x0002 0x0 + 2 --
[Issue 16095] a delegate can mutate immutable data and break shared / non-shared enforcements
https://issues.dlang.org/show_bug.cgi?id=16095 --- Comment #3 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/3c53a0fd9ed1b40f8dbeb75b4dfa11f6df5b3062 fix Issue 16095 - a delegate can mutate immutable data and break shared / non-shared enforcements https://github.com/dlang/dmd/commit/d4f45f99eb250e17dc4bb189ae5440f134731c61 Merge pull request #6091 from WalterBright/fix16095 fix Issue 16095 - a delegate can mutate immutable data and break shar… --
[Issue 16095] a delegate can mutate immutable data and break shared / non-shared enforcements
https://issues.dlang.org/show_bug.cgi?id=16095 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 15306] Delegates with shared context can have unshared aliasing
https://issues.dlang.org/show_bug.cgi?id=15306 Walter Brightchanged: What|Removed |Added Keywords||pull CC||bugzi...@digitalmars.com --- Comment #3 from Walter Bright --- https://github.com/dlang/dmd/pull/6093 --
[Issue 14251] synchronized (mtx) doesn't check attributes (pure, const)
https://issues.dlang.org/show_bug.cgi?id=14251 --- Comment #12 from ZombineDev--- (In reply to Walter Bright from comment #8) > (In reply to ZombineDev from comment #7) > > The OP issue doesn't mention class monitors. The bug also affects raw sync > > primitives like core.sync.mutex and in general everything using > > Object.IMonitor. > > 'Klass' is a class, and so has a class monitor. No, by OP, I meant Martin's comment. E.g. https://github.com/dlang/druntime/blob/v2.071.2-b2/src/core/sync/mutex.d#L260 . --
[Issue 14251] synchronized (mtx) doesn't check attributes (pure, const)
https://issues.dlang.org/show_bug.cgi?id=14251 --- Comment #11 from ZombineDev--- A const reference to an object may actually refer to a immutable object. If such object sits in ROM than failure of the compiler to prevent such error (modification of the monitor) may have bad consequences (depending on the implementation). Also most of the time, an object is being synchronized to ensure exclusive write access to it. However there's no point in that if the object is not mutable. As for pure, personally I don't think that pure functions should be allowed to cause a deadlock (I consider it to be a global side effect). Furthermore, 99% of the time synchronized is used on shared objects, which pure functions have no business looking at. --
[Issue 14251] synchronized (mtx) doesn't check attributes (pure, const)
https://issues.dlang.org/show_bug.cgi?id=14251 --- Comment #10 from Walter Bright--- I have serious misgivings about this being even a bug. The monitor is outside of the type system, and should work regardless of the type of the class object. Also, I don't see a good reason why it shouldn't work for pure functions, too. So I may withdraw the PR to 'fix' it. --
[Issue 14251] synchronized (mtx) doesn't check attributes (pure, const)
https://issues.dlang.org/show_bug.cgi?id=14251 Walter Brightchanged: What|Removed |Added Keywords||pull --- Comment #9 from Walter Bright --- https://github.com/dlang/dmd/pull/6092 --
[Issue 15267] The installer should download Microsoft Build Tools 2015, instead of full VS
https://issues.dlang.org/show_bug.cgi?id=15267 Dave Akerschanged: What|Removed |Added CC||d...@dazoe.net --- Comment #2 from Dave Akers --- Just to clearify... Your talking about http://landinghub.visualstudio.com/visual-cpp-build-tools (Visual C++ Build Tools) and not https://www.microsoft.com/en-us/download/details.aspx?id=48159 (Microsoft Build Tools 2015) which is only msbuild. --