[Issue 14246] RAII - proper destruction of partially constructed objects/structs
https://issues.dlang.org/show_bug.cgi?id=14246 --- Comment #8 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/1e755c648e5142719d50dcf984f10ace5b8f8357 fix Issue 14246 - RAII - proper destruction of partially constructed objects/structs https://github.com/dlang/dmd/commit/6b3d406be3670613d862ec6eda1bf3669443a926 Merge pull request #6816 from WalterBright/fix14246 fix Issue 14246 - RAII - proper destruction of partially constructed … merged-on-behalf-of: Andrei Alexandrescu--
[Issue 17489] ICE in ddmd/argtypes.d
https://issues.dlang.org/show_bug.cgi?id=17489 --- Comment #2 from greensunn...@gmail.com --- It seems that argtypemerge has troubles when confronted with an error: /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1046,60): Error: parameter index must be in range 0..3 not 3LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1047,25): Error: template instance std.traits.ParameterStorageClassTuple!(void function(FreeListRef!(shared(int), true), int delegate(int, int) pure nothrow @nogc @safe, int, int) nothrow @nogc @system).StorageClass!3LU error instantiating /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1047,25): instantiated from here: StorageClass!2LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1047,25): instantiated from here: StorageClass!1LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1052,44): instantiated from here: StorageClass!0LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/typecons.d(4273,22): ... (4 instantiations, -v to show) ... source/vibe/core/concurrency.d(1146,34):instantiated from here: toDelegate!(void function(FreeListRef!(shared(int), true), int delegate(int, int) pure nothrow @nogc @safe, int, int) nothrow @nogc @system) source/vibe/core/concurrency.d(1187,15):instantiated from here: async!(int delegate(int, int) pure nothrow @nogc @safe, int, int) /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/functional.d(1224,13): Error: CTFE failed because of previous errors in generateFunction argtypemerge(, _error_, 0) argtypemerge(_error_, void*, 0) core.exception.AssertError@ddmd/argtypes.d(201): Assertion failure --
[Issue 17489] ICE in ddmd/argtypes.d
https://issues.dlang.org/show_bug.cgi?id=17489 --- Comment #1 from greensunn...@gmail.com --- It seems that argtypemerge has troubles when confronted with an error: /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1046,60): Error: parameter index must be in range 0..3 not 3LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1047,25): Error: template instance std.traits.ParameterStorageClassTuple!(void function(FreeListRef!(shared(int), true), int delegate(int, int) pure nothrow @nogc @safe, int, int) nothrow @nogc @system).StorageClass!3LU error instantiating /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1047,25): instantiated from here: StorageClass!2LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1047,25): instantiated from here: StorageClass!1LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/traits.d(1052,44): instantiated from here: StorageClass!0LU /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/typecons.d(4273,22): ... (4 instantiations, -v to show) ... source/vibe/core/concurrency.d(1146,34):instantiated from here: toDelegate!(void function(FreeListRef!(shared(int), true), int delegate(int, int) pure nothrow @nogc @safe, int, int) nothrow @nogc @system) source/vibe/core/concurrency.d(1187,15):instantiated from here: async!(int delegate(int, int) pure nothrow @nogc @safe, int, int) /home/seb/dlang/dmd/generated/linux/debug/64/../../../../../phobos/std/functional.d(1224,13): Error: CTFE failed because of previous errors in generateFunction argtypemerge(, _error_, 0) argtypemerge(_error_, void*, 0) core.exception.AssertError@ddmd/argtypes.d(201): Assertion failure --
[Issue 17489] New: ICE in ddmd/argtypes.d
https://issues.dlang.org/show_bug.cgi?id=17489 Issue ID: 17489 Summary: ICE in ddmd/argtypes.d Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: greensunn...@gmail.com 0.7.31-rc.2 triggers an ICE in dmd when compiled as follows (i.e. as on Jenkins) > dub test --combined --compiler=$HOME/dlang/dmd/generated/linux/debug/64/dmd > --config=libevent /home/seb/dlang/dmd/generated/linux/debug/64/dmd -c -of.dub/build/vibe-d-test-libevent-unittest-linux.posix-x86_64-dmd_2075-719818DEDFB0B36C9A066E0B0EEC8BB5/vibe-d-test-libevent.o -debug -g -unittest -w -version=VibeCustomMain -version=VibeLibeventDriver -version=Have_vibe_d -version=Have_libevent -version=Have_openssl -version=Have_vibe_d_utils -version=Have_vibe_d_data -version=Have_vibe_d_core -version=Have_diet_ng -version=Have_vibe_d_http -version=Have_vibe_d_diet -version=Have_vibe_d_mail -version=Have_vibe_d_mongodb -version=Have_vibe_d_redis -version=Have_vibe_d_web -Isource/ -I../../../.dub/packages/libevent-2.0.2_2.0.16/libevent -I../../../.dub/packages/openssl-1.1.5_1.0.1g/openssl -I../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/ ../../../../../tmp/dub_test_root-fe45c364-3805-45d7-ab7a-3f1bd8a878b7.d source/vibe/d.d source/vibe/vibe.d source/vibe/core/args.d source/vibe/core/concurrency.d source/vibe/core/connectionpool.d source/vibe/core/core.d source/vibe/core/driver.d source/vibe/core/drivers/libasync.d source/vibe/core/drivers/libevent2.d source/vibe/core/drivers/libevent2_tcp.d source/vibe/core/drivers/native.d source/vibe/core/drivers/threadedfile.d source/vibe/core/drivers/timerqueue.d source/vibe/core/drivers/utils.d source/vibe/core/drivers/win32.d source/vibe/core/drivers/winrt.d source/vibe/core/file.d source/vibe/core/log.d source/vibe/core/net.d source/vibe/core/stream.d source/vibe/core/sync.d source/vibe/core/task.d source/vibe/crypto/cryptorand.d source/vibe/crypto/passwordhash.d source/vibe/inet/message.d source/vibe/inet/mimetypes.d source/vibe/inet/path.d source/vibe/inet/url.d source/vibe/inet/urltransfer.d source/vibe/inet/webform.d source/vibe/stream/base64.d source/vibe/stream/botan.d source/vibe/stream/counting.d source/vibe/stream/memory.d source/vibe/stream/multicast.d source/vibe/stream/openssl.d source/vibe/stream/operations.d source/vibe/stream/stdio.d source/vibe/stream/taskpipe.d source/vibe/stream/tls.d source/vibe/stream/wrapper.d source/vibe/stream/zlib.d source/vibe/textfilter/html.d source/vibe/textfilter/markdown.d source/vibe/textfilter/urlencode.d source/vibe/data/bson.d source/vibe/data/json.d source/vibe/data/serialization.d source/vibe/internal/meta/all.d source/vibe/internal/meta/codegen.d source/vibe/internal/meta/funcattr.d source/vibe/internal/meta/traits.d source/vibe/internal/meta/typetuple.d source/vibe/internal/meta/uda.d source/vibe/internal/rangeutil.d source/vibe/internal/win32.d source/vibe/utils/array.d source/vibe/utils/dictionarylist.d source/vibe/utils/hashmap.d source/vibe/utils/memory.d source/vibe/utils/string.d source/vibe/utils/validation.d source/vibe/templ/diet.d source/vibe/templ/parsertools.d source/vibe/templ/utils.d source/vibe/http/auth/basic_auth.d source/vibe/http/auth/digest_auth.d source/vibe/http/client.d source/vibe/http/common.d source/vibe/http/dist.d source/vibe/http/fileserver.d source/vibe/http/form.d source/vibe/http/log.d source/vibe/http/proxy.d source/vibe/http/router.d source/vibe/http/server.d source/vibe/http/session.d source/vibe/http/status.d source/vibe/http/websockets.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/defs.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/dom.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/html.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/input.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/internal/html.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/internal/string.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/parser.d ../../../.dub/packages/diet-ng-1.2.1/diet-ng/source/diet/traits.d source/vibe/mail/smtp.d source/vibe/db/mongo/client.d source/vibe/db/mongo/collection.d source/vibe/db/mongo/connection.d source/vibe/db/mongo/cursor.d source/vibe/db/mongo/database.d source/vibe/db/mongo/flags.d source/vibe/db/mongo/mongo.d source/vibe/db/mongo/settings.d source/vibe/db/redis/idioms.d source/vibe/db/redis/redis.d source/vibe/db/redis/sessionstore.d source/vibe/db/redis/types.d source/vibe/web/auth.d source/vibe/web/common.d source/vibe/web/i18n.d source/vibe/web/internal/rest/common.d source/vibe/web/internal/rest/jsclient.d source/vibe/web/rest.d source/vibe/web/validation.d source/vibe/web/web.d source/vibe/appmain.d -vcolumns source/vibe/http/server.d(286,33): Deprecation: alias diet.traits.FilterCallback is deprecated
[Issue 16108] `to!string` fails on struct with disabled postblit
https://issues.dlang.org/show_bug.cgi?id=16108 --- Comment #6 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/3d80936f0b1e56418d6826180a7a9dbb29e01b7f Fix Issue 16108: tostrings fails on struct with disabled postblit https://github.com/dlang/phobos/commit/4f2d89bc5721a2fbc75ca167b304c70fa8e81ba3 Merge pull request #5425 from JackStouffer/issue16108 Fix Issue 16108: to!string fails on struct with disabled postblit merged-on-behalf-of: Sebastian Wilzbach--
[Issue 17488] Platform-inconsistent behavior from getTempDir()
https://issues.dlang.org/show_bug.cgi?id=17488 Vladimir Panteleevchanged: What|Removed |Added CC||thecybersha...@gmail.com --- Comment #1 from Vladimir Panteleev --- (In reply to dlang from comment #0) > I can do the PR if I know the desired behaviour (add the slash to POSIX or > remove it from Windows). Definitely add it - double slashes will behave the same as a single slash, so adding a slash where existing code also added one will not result in change of behavior. Doing it the other way around is likely to break programs on Windows. --
[Issue 17399] [REG2.071] core.checkedint.addu cannot inline function
https://issues.dlang.org/show_bug.cgi?id=17399 Martin Krejcirikchanged: What|Removed |Added Summary|core.checkedint.addu cannot |[REG2.071] |inline function |core.checkedint.addu cannot ||inline function --
[Issue 16538] Parameter head-const-ness shouldn't matter but does
https://issues.dlang.org/show_bug.cgi?id=16538 --- Comment #2 from Walter Bright--- Fixed by https://github.com/dlang/dmd/pull/6731 --
[Issue 16600] Wrong error message for ambiguous mutable/immutable constructor
https://issues.dlang.org/show_bug.cgi?id=16600 Walter Brightchanged: What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED --- Comment #3 from Walter Bright --- Fixed by https://github.com/dlang/dmd/pull/6731 --
[Issue 16303] covariant delegates should implicitly convert
https://issues.dlang.org/show_bug.cgi?id=16303 Walter Brightchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #3 from Walter Bright --- Fixed by https://github.com/dlang/dmd/pull/6731 --
[Issue 17407] [REG2.067] __traits(compiles) triggers assertion failure
https://issues.dlang.org/show_bug.cgi?id=17407 Martin Krejcirikchanged: What|Removed |Added Summary|[REG] __traits(compiles)|[REG2.067] |triggers assertion failure |__traits(compiles) triggers ||assertion failure --
[Issue 17354] An overload in a final class can silently hide base methods
https://issues.dlang.org/show_bug.cgi?id=17354 b2.t...@gmx.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 17349] Covariant overrides should be allowed
https://issues.dlang.org/show_bug.cgi?id=17349 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 17349] Covariant overrides should be allowed
https://issues.dlang.org/show_bug.cgi?id=17349 --- Comment #2 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/832031adddadc3b9b8a3bca94bd30be1393b570a fix Issue 17349 - Covariant overrides should be allowed https://github.com/dlang/dmd/commit/e07c3de8d93dee095edfeb0322f408726dcfd5a0 Merge pull request #6731 from WalterBright/fix17349 fix Issue 17349 - Covariant overrides should be allowed merged-on-behalf-of: Andrei Alexandrescu--
[Issue 4559] Disallowing single semicolons
https://issues.dlang.org/show_bug.cgi?id=4559 Nemanja Boric <4bur...@gmail.com> changed: What|Removed |Added CC||4bur...@gmail.com --- Comment #7 from Nemanja Boric <4bur...@gmail.com> --- Not if you compile with `-w`: ``` C:\Users\Burgos>type test.d void main() { int x;; } C:\Users\Burgos>dmd -w test.d test.d(3): Warning: use '{ }' for an empty statement, not a ';' ``` --
[Issue 4559] Disallowing single semicolons
https://issues.dlang.org/show_bug.cgi?id=4559 Stefan Kochchanged: What|Removed |Added CC||uplink.co...@gmail.com --- Comment #6 from Stefan Koch --- (In reply to Andrei Alexandrescu from comment #5) > The warning has been in there for years. The basic idea is to convert > warnings to errors. I just tried : int i;; It compiles just fine without a warning. --
[Issue 4559] Disallowing single semicolons
https://issues.dlang.org/show_bug.cgi?id=4559 --- Comment #5 from Andrei Alexandrescu--- (In reply to uplink.coder from comment #4) > (In reply to Andrei Alexandrescu from comment #3) > > No need for a DIP, we should just convert this to an error. > > If we do this, then we have to special case for(;;). We're in good shape, the semicolons in for are part of the grammar. > Also it might break an unknown amount of code. > At the very least we should have a cost/benefit analysis. The warning has been in there for years. The basic idea is to convert warnings to errors. --
[Issue 17488] New: Platform-inconsistent behavior from getTempDir()
https://issues.dlang.org/show_bug.cgi?id=17488 Issue ID: 17488 Summary: Platform-inconsistent behavior from getTempDir() Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: dl...@ryanjframe.com On Windows, std.file's getTempDir() ends with a path separator, but on POSIX it does not. Consistent behaviour would allow cross-platform code to e.g., (if we add the slash to POSIX) simply do "getTempDir() ~ myname.tmp", rather than require checking for the platform. I can do the PR if I know the desired behaviour (add the slash to POSIX or remove it from Windows). --
[Issue 17474] non-property being treated as a property
https://issues.dlang.org/show_bug.cgi?id=17474 --- Comment #9 from Vladimir Panteleev--- (In reply to Eyal from comment #8) > I don't see how a=b invoking a(b) when a isn't a @property is justifiable. Yep, that `writeln = "Hello, world!";` works is an infamous weirdness about D properties. --
[Issue 4559] Disallowing single semicolons
https://issues.dlang.org/show_bug.cgi?id=4559 uplink.co...@googlemail.com changed: What|Removed |Added CC||uplink.co...@googlemail.com --- Comment #4 from uplink.co...@googlemail.com --- (In reply to Andrei Alexandrescu from comment #3) > No need for a DIP, we should just convert this to an error. If we do this, then we have to special case for(;;). Also it might break an unknown amount of code. At the very least we should have a cost/benefit analysis. --
[Issue 4559] Disallowing single semicolons
https://issues.dlang.org/show_bug.cgi?id=4559 --- Comment #3 from Andrei Alexandrescu--- No need for a DIP, we should just convert this to an error. --
[Issue 4559] Disallowing single semicolons
https://issues.dlang.org/show_bug.cgi?id=4559 dl...@ryanjframe.com changed: What|Removed |Added CC||dl...@ryanjframe.com --- Comment #2 from dl...@ryanjframe.com --- I had thought this was an error, but it's just a warning. --
[Issue 17485] bringToFront and/or upperBound slow
https://issues.dlang.org/show_bug.cgi?id=17485 --- Comment #3 from Steven Schveighoffer--- Indeed, memmove fixes the specific use case: https://forums.dlang.org/post/ohgjec$1aar$1...@digitalmars.com However, I think we should do a full examination of everything C++ does to optimize rotate and include it all at once, instead of waiting for people to find more cases where std::rotate outperforms D. --
[Issue 17384] LDC x64 linker error in VS2017
https://issues.dlang.org/show_bug.cgi?id=17384 --- Comment #3 from ki...@gmx.net --- > Visual D doesn't use LDC's automatic detection because it doesn't allow > using different versions of VS. It is possible - via env variable `LDC_VSDIR`. For LDC 1.0.0 compatibility, it'd have to end with a backslash, e.g., `LDC_VSDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\`. --
[Issue 4559] Disallowing single semicolons
https://issues.dlang.org/show_bug.cgi?id=4559 Infiltratorchanged: What|Removed |Added CC||and...@erdani.com, ||lt.infiltra...@gmail.com --- Comment #1 from Infiltrator --- Does this need a DIP? --
[Issue 4558] To spot a possible bug in code that doesn't change a value
https://issues.dlang.org/show_bug.cgi?id=4558 Infiltratorchanged: What|Removed |Added CC||lt.infiltra...@gmail.com --- Comment #1 from Infiltrator --- So, if I understand correctly, you want the compiler to statically calculate results where all the inputs are known at compile-time and detect when no change has occurred in a "&=" (and presumably in other operator-assignment operators?) In such cases, should the compiler raise a warning or an error? This all fits in nicely with CTFE. --
[Issue 17486] lazy parameters can be used to hijack the pure system
https://issues.dlang.org/show_bug.cgi?id=17486 --- Comment #4 from Eyal--- The solution, clearly is to treat "lazy" is mere syntactic sugar to passing delegates - thus adding syntactic support for @nogc/etc attribute annotation on "lazy" parameters - and specifying their attributes just like is done for delegates. The assumption that lazy parameters are all pure is wrong (thus this ticket). The assumption that lazy parameters are all gc/throw is wrong (thus the other ticket). It *cannot* be inferred unless lazy parameters make everything a template, which would be unfortunate. Just like delegate parameter attributes cannot be inferred - you have to manually specify them or templatize over the delegate type. --
[Issue 17474] non-property being treated as a property
https://issues.dlang.org/show_bug.cgi?id=17474 --- Comment #8 from Eyal--- Requiring @property on a for a=b to invoke a(b) sounds much more reasonable than the opposite. I don't see how a=b invoking a(b) when a isn't a @property is justifiable. --
[Issue 17474] non-property being treated as a property
https://issues.dlang.org/show_bug.cgi?id=17474 --- Comment #6 from Tomer Filiba (weka)--- (In reply to Walter Bright from comment #4) > But I can suggest avoiding using default function arguments. Default > arguments are a good solution for adding parameters without breaking > existing code, but are not a good practice otherwise. that's exactly what happened -- i added this default parameter to an existing function that did not have parameters, and it broke in a very peculiar way. i ended up using ref T _fiberLocal(T)(FiberLocalBlock* block) {...} ref T fiberLocal(T)() {_fiberLocal!T(_currentFiberLocalBlock);} again, i'm fine with this workaround, but unless our UTs caught that early on, debugging it on a live system would have been impossible. i agree with stefan that a function returning `ref` shouldn't be allowed in property-setter syntax. either it shouldn't be allowed at all, i.e., `foo = bar` won't compile if foo returns `ref` and takes an argument -- or only allow the lowering to `foo() = bar` --
[Issue 17474] non-property being treated as a property
https://issues.dlang.org/show_bug.cgi?id=17474 --- Comment #7 from Tomer Filiba (weka)--- (In reply to Stefan Koch from comment #5) > I am pretty sure the last thing you want is a function to be invoked as a > setter property if it returns an Lvalue. +1 --