[Issue 14470] New: Reuse of object memory: new emplace overload
https://issues.dlang.org/show_bug.cgi?id=14470 Issue ID: 14470 Summary: Reuse of object memory: new emplace overload Product: D Version: unspecified Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: Phobos Assignee: nob...@puremagic.com Reporter: rswhi...@gmail.com As mentioned here: http://forum.dlang.org/thread/wucqfklowovtyhpaf...@forum.dlang.org#post-ydiprvqyjrqgeahqdbwl:40forum.dlang.org it would be nice if I could reuse object memory easily. Therefore std.conv should add an emplace overload which takes an object: T emplace(T, Args...)(ref T obj, auto ref Args args) if (is(T == class)) { if (obj is null) return null; enum size_t ClassSize = __traits(classInstanceSize, T); void[] buf = (cast(void*) obj)[0 .. ClassSize]; import std.conv : emplace; return emplace!(T)(buf, args); } It would be also nice, if D could add placement-new like C++: Foo f = new Foo(42); new (f) Foo(23); It looks way more cleaner and since D is aiming to be a system language, reusing memory is a naturally behaviour. --
[Issue 14471] New: std.socket: add method for detach socket handle
https://issues.dlang.org/show_bug.cgi?id=14471 Issue ID: 14471 Summary: std.socket: add method for detach socket handle Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: Phobos Assignee: nob...@puremagic.com Reporter: kozz...@gmail.com Current Socket implementation has method handle which return underlying socket and this can be use to recreate Socket with this(socket_t sock, AddressFamily af) constructor. This is quiet usefull when you need accept connection in one thread and process(send data) in another. However there is a problem with GC, which close the underlying socket. while(true) { if(Socket.select(...) { auto oClientSocket = oSocket.accept(); ... auto tid = spawn(&processData, oClientSocket.handle()); send(tid, ...); } } ... } void processData(socket_t handle) { auto oSocket = new Socket(handle, AddressFamily.INET); /// processing some data oSocket.send(aMsg); // this sometimes does not work, becase socket is close from main thread } One workaround is put oClientSocket to some array, or disable GC. But this will lead to bigger memory consumption. Another way is extend Socket class and override close method to do nothing (this is what I use now). But it would be fine if there will be some detach method on std.socket.Socket, which will return underlying socket (same as handle method) and unset socket hande in Socket object, so collection will not close original socket handle. --
[Issue 14456] dmd doesn't call C functions with large structures correctly
https://issues.dlang.org/show_bug.cgi?id=14456 --- Comment #3 from Andrew Stevenson --- v1.077.s12 --
[Issue 14456] (D1 only) dmd doesn't call C functions with large structures correctly
https://issues.dlang.org/show_bug.cgi?id=14456 yebblies changed: What|Removed |Added Severity|normal |critical --
[Issue 14456] (D1 only) dmd doesn't call C functions with large structures correctly
https://issues.dlang.org/show_bug.cgi?id=14456 yebblies changed: What|Removed |Added Summary|dmd doesn't call C |(D1 only) dmd doesn't call |functions with large|C functions with large |structures correctly|structures correctly --- Comment #4 from yebblies --- That makes more sense. --
[Issue 14452] [REG2.067] Floating point invalid operation when returning a structure containing a float field
https://issues.dlang.org/show_bug.cgi?id=14452 ref2401 changed: What|Removed |Added CC||refacto...@gmail.com --
[Issue 14467] arr.capacity sometimes erroneously returns 0
https://issues.dlang.org/show_bug.cgi?id=14467 --- Comment #5 from Steven Schveighoffer --- Thank you, that is indeed the root cause. I have to investigate why that change was made, as most of the lifetime.d assumes GC.query will get the correct block info. Doing a double-lookup does not sound appealing to me as a fix, we need a function that finds the block info even for interior pointers. At this point, the array runtime is going to be severely broken performance-wise. --
[Issue 14399] std.json cannot parse its own output for nan
https://issues.dlang.org/show_bug.cgi?id=14399 bb.t...@gmx.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 14467] arr.capacity sometimes erroneously returns 0
https://issues.dlang.org/show_bug.cgi?id=14467 --- Comment #6 from Steven Schveighoffer --- PR: https://github.com/D-Programming-Language/druntime/pull/1226 Note, the issue is strictly with the bits retrieved. The other aspects of the info block are correct, just the bits retrieved was not correct. Thanks, Ketmar for finding the root cause, it would have been much more difficult to find without that legwork! --
[Issue 14418] D-style Variadic Function example does not compile
https://issues.dlang.org/show_bug.cgi?id=14418 Gary Willoughby changed: What|Removed |Added Keywords||pull CC||d...@nomad.so --- Comment #1 from Gary Willoughby --- https://github.com/D-Programming-Language/dlang.org/pull/969 --
[Issue 14432] move construction for RefCounted
https://issues.dlang.org/show_bug.cgi?id=14432 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 14432] move construction for RefCounted
https://issues.dlang.org/show_bug.cgi?id=14432 --- Comment #1 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/a6a6870beb69537f2ccd3d50289594ebae30ad15 fix Issue 14432 - move construction for RefCounted - add RefCounted!T.this(T) which takes an RValue or a copy and use move to initialized the refcounted store - add refCounted to infer T from the argument and disable RefCounted's autoInit, also move initializes the store https://github.com/D-Programming-Language/phobos/commit/f7498ad8ec147114b1bcbc61d0e4db3e033417f5 Merge pull request #3171 from MartinNowak/refCounted fix Issue 14432 - move construction for RefCounted --
[Issue 14472] New: add separate noptr data section
https://issues.dlang.org/show_bug.cgi?id=14472 Issue ID: 14472 Summary: add separate noptr data section Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: c...@dawg.eu We should emit mutable data that can't alias GC memory to a separate .noptr section, so that it can be excluded when scanning GC roots. --
[Issue 14465] CTFE exception stacktrace shows location of Exception constructor
https://issues.dlang.org/show_bug.cgi?id=14465 --- Comment #2 from github-bugzi...@puremagic.com --- Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/312a931d03d119fa6e6af4099b5fb1beb0d71ebc Merge pull request #4599 from rainers/fix14465 fix Issue 14465 - CTFE exception stacktrace shows location of Exception constructor --
[Issue 14467] arr.capacity sometimes erroneously returns 0
https://issues.dlang.org/show_bug.cgi?id=14467 --- Comment #7 from github-bugzi...@puremagic.com --- Commits pushed to stable at https://github.com/D-Programming-Language/druntime https://github.com/D-Programming-Language/druntime/commit/0a740491d19a92cd12667ed2f3007ed23936f0e4 Fix issue 14467. When using GC.query, bits retrieved should be for base address, not interior pointer bitset. https://github.com/D-Programming-Language/druntime/commit/eeb01a68b992af0e87cbcf884a5aaf7a2035d2d6 Merge pull request #1227 from schveiguy/fixgcquery Fix issue 14467 - arr.capacity sometimes erroneously returns 0 --
[Issue 13527] ddoc website documentation does not match the current built-in symbols
https://issues.dlang.org/show_bug.cgi?id=13527 Gary Willoughby changed: What|Removed |Added Keywords||pull --- Comment #1 from Gary Willoughby --- https://github.com/D-Programming-Language/dlang.org/pull/970 --
[Issue 14467] arr.capacity sometimes erroneously returns 0
https://issues.dlang.org/show_bug.cgi?id=14467 --- Comment #8 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/D-Programming-Language/druntime https://github.com/D-Programming-Language/druntime/commit/0a740491d19a92cd12667ed2f3007ed23936f0e4 Fix issue 14467. When using GC.query, bits retrieved should be for base address, not interior pointer bitset. https://github.com/D-Programming-Language/druntime/commit/eeb01a68b992af0e87cbcf884a5aaf7a2035d2d6 Merge pull request #1227 from schveiguy/fixgcquery --
[Issue 14431] [REG 2.067.0] huge slowdown of compilation speed
https://issues.dlang.org/show_bug.cgi?id=14431 Iain Buclaw changed: What|Removed |Added CC||ibuc...@gdcproject.org --- Comment #8 from Iain Buclaw --- (In reply to Martin Nowak from comment #5) > (In reply to Martin Krejcirik from comment #4) > > I'm not sure how relevant this is to the general compilation speed, but > > anyway: > > > > import std.regex; > > > > auto RE_VARSET = regex(r"(? > \t]*`,"i"); > > auto RE_CMD= regex(r"!([A-Z_]+)\(([A-Za-z0-9_ .:;!,@{}/*-]*)\)"); > > This spends most of it's time in CTFE interpretation. > I get a 5-10% speedup when compiling v2.067.0 on my machine vs. using the > released binary, most likely because of a newer gcc 4.9.2 vs. gcc 4.7.2 on > the debian build image. Maybe the speculative devirtualization in gcc-4.9 is in some part responsible for that. Just thinking out loud... --
[Issue 14396] [REG2.066] compile error std.conv.parse!int with input range
https://issues.dlang.org/show_bug.cgi?id=14396 --- Comment #3 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/99da04d9af3a4e44d8576445c06d701fe6fdada4 fix Issue 14396 - compile error std.conv.parse!int with input range (dmd2.067) https://github.com/D-Programming-Language/phobos/commit/99956f90609d1d23c5612ba6d4f58b8f951e914d Merge pull request #3183 from aG0aep6G/14396-stable --
[Issue 14457] Algebraic does not allow assignment from subset type
https://issues.dlang.org/show_bug.cgi?id=14457 Justin Whear changed: What|Removed |Added Keywords||pull Status|NEW |ASSIGNED URL||https://github.com/D-Progra ||mming-Language/phobos/pull/ ||3209 --
[Issue 14219] missing documentation std.traits
https://issues.dlang.org/show_bug.cgi?id=14219 Gary Willoughby changed: What|Removed |Added CC||d...@nomad.so --- Comment #1 from Gary Willoughby --- Can anyone shed any more light on this please? What is meant by _IsSomething_ and _xxx_ anchors? --
[Issue 14085] Broken links on dlang.org
https://issues.dlang.org/show_bug.cgi?id=14085 Gary Willoughby changed: What|Removed |Added CC||d...@nomad.so --- Comment #1 from Gary Willoughby --- A lot of this is related to this issue: https://issues.dlang.org/show_bug.cgi?id=14216 --
[Issue 14085] Broken links on dlang.org
https://issues.dlang.org/show_bug.cgi?id=14085 --- Comment #2 from Gary Willoughby --- Ignore that last posted related issue, it was a duplicate. Here is the original: https://issues.dlang.org/show_bug.cgi?id=13516 --
[Issue 13516] std.windows.charset documentation missing from dlang.org
https://issues.dlang.org/show_bug.cgi?id=13516 Stewart Gordon changed: What|Removed |Added Blocks||14085 --
[Issue 14085] Broken links on dlang.org
https://issues.dlang.org/show_bug.cgi?id=14085 Stewart Gordon changed: What|Removed |Added Depends on||13516 --- Comment #3 from Stewart Gordon --- Indeed, issue 13516 is the root cause of the majority of these. (Note the much more elegant way of linking to issues within Bugzilla.) --
[Issue 14219] missing documentation std.traits
https://issues.dlang.org/show_bug.cgi?id=14219 Felix Hufnagel changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Felix Hufnagel --- seems to work again. --
[Issue 13527] ddoc website documentation does not match the current built-in symbols
https://issues.dlang.org/show_bug.cgi?id=13527 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 13527] ddoc website documentation does not match the current built-in symbols
https://issues.dlang.org/show_bug.cgi?id=13527 --- Comment #2 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/D-Programming-Language/dlang.org https://github.com/D-Programming-Language/dlang.org/commit/c79b179cc0bf1128916521db70bba9d08e3dffd3 Fix issue 13527 https://github.com/D-Programming-Language/dlang.org/commit/1199a105394671ddf2ec6b380999864d9d7bf8a7 Merge pull request #970 from nomad-software/issue_13527 Issue 13527 - ddoc website documentation does not match the current built-in symbols --
[Issue 14473] New: Remove deprecated HTML tags from ddoc output
https://issues.dlang.org/show_bug.cgi?id=14473 Issue ID: 14473 Summary: Remove deprecated HTML tags from ddoc output Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: enhancement Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: d...@nomad.so Remove usage of outdated HTML tags from ddoc. For example, when using the $(RED) symbol in ddoc an outdated tag is generated. This has been deprecated in HTML for a long time and now considered a non-conforming feature. In this case a tag should be used with an inline color style. https://github.com/D-Programming-Language/dmd/blob/312a931d03d119fa6e6af4099b5fb1beb0d71ebc/src/doc.c#L177-L182 All current tags should be reviewed and updated if needed. http://www.w3.org/TR/html5/obsolete.html#non-conforming-features --
[Issue 14473] Remove deprecated HTML tags from ddoc output
https://issues.dlang.org/show_bug.cgi?id=14473 Gary Willoughby changed: What|Removed |Added Hardware|x86_64 |All OS|Linux |All --
[Issue 14474] New: Use UTF-8 encoding for @cmdfile
https://issues.dlang.org/show_bug.cgi?id=14474 Issue ID: 14474 Summary: Use UTF-8 encoding for @cmdfile Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: normal Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: davis...@gmail.com Currently `dmd @cmdfile` will read file as simple char string. But when DUB is compiling and creating this file it always saves it in UTF-8. This makes a problem when cmdfile contains paths (source files) with non-ASCII paths/names and thus DMD interprets them incorrectly (it always uses WinAPI ANSI functions which expects them to be encoded in Windows default ANSI code page) Such cmdfile file with non-ASCII paths encoded as UTF-8 will produce "Error: cannot read file" One solution could be to change DUB to save it in Windows default ANSI code page, but I think that's a very bad idea because then that file won't be portable. So best would be to enforce it being in UTF-8 encoding and then decode in DMD for respective code page which is used for WinAPI calls. --
[Issue 14468] [Reg 2.068.0-devel] overload mismatch for template instance with typesafe variadic parameter
https://issues.dlang.org/show_bug.cgi?id=14468 Martin Nowak changed: What|Removed |Added CC||r.sagita...@gmx.de --- Comment #1 from Martin Nowak --- *** Issue 14462 has been marked as a duplicate of this issue. *** --
[Issue 14462] cannot instantiate redBlackTree!int(); anymore
https://issues.dlang.org/show_bug.cgi?id=14462 Martin Nowak changed: What|Removed |Added Status|NEW |RESOLVED CC||c...@dawg.eu Resolution|--- |DUPLICATE --- Comment #1 from Martin Nowak --- *** This issue has been marked as a duplicate of issue 14468 *** --
[Issue 14431] [REG 2.067.0] huge slowdown of compilation speed
https://issues.dlang.org/show_bug.cgi?id=14431 --- Comment #9 from Martin Nowak --- (In reply to Iain Buclaw from comment #8) > Maybe the speculative devirtualization in gcc-4.9 is in some part > responsible for that. Just thinking out loud... We should probably update the compilers across the bank to build releases. Especially replacing DMC with VS would result in a huge speedup. --
[Issue 14474] Use UTF-8 encoding for @cmdfile
https://issues.dlang.org/show_bug.cgi?id=14474 --- Comment #1 from Dāvis --- Created a quick PR https://github.com/D-Programming-Language/dmd/pull/4602 --
[Issue 14468] [Reg 2.068.0-devel] overload mismatch for template instance with typesafe variadic parameter
https://issues.dlang.org/show_bug.cgi?id=14468 --- Comment #2 from Martin Nowak --- Temporary workaround is to explicitly pass null as typesafe variadic argument. --
[Issue 14463] [REG2.067] DMD crashes compiling module level immutable struct that takes an array in ctor
https://issues.dlang.org/show_bug.cgi?id=14463 Martin Krejcirik changed: What|Removed |Added CC||m...@krej.cz Hardware|x86 |All Summary|DMD crashes compiling |[REG2.067] DMD crashes |module level immutable |compiling module level |struct that takes an array |immutable struct that takes |in ctor |an array in ctor OS|Windows |All Severity|minor |regression --
[Issue 13972] Make scoped, Unique, and RefCounted @nogc
https://issues.dlang.org/show_bug.cgi?id=13972 --- Comment #6 from weaselcat --- RefCounted almost done. https://github.com/D-Programming-Language/phobos/pull/3171 made it possible to make @nogc refcounted types, but destroy still doesn't infer attributes as per https://github.com/D-Programming-Language/druntime/pull/1181 --
[Issue 14475] New: man page is outdated
https://issues.dlang.org/show_bug.cgi?id=14475 Issue ID: 14475 Summary: man page is outdated Product: D Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: trivial Priority: P1 Component: DMD Assignee: nob...@puremagic.com Reporter: r9shacklef...@gmail.com dmd --help details options not discussed on neither the man pages nor http://dlang.org/dmd-linux.html examples: -allinst -dip25 -gx etc --
[Issue 14461] Header generation fails for definitions of string,wstring and dstring
https://issues.dlang.org/show_bug.cgi?id=14461 --- Comment #2 from github-bugzi...@puremagic.com --- Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/be8f360dce82e5619625296183d74bb7d0e69892 Merge pull request #4594 from rainers/hdrgen_string Issue 14461 - Header generation fails for definitions of string,wstring and dstring --
[Issue 14476] New: core.thread unit tests failing on FreeBSD 9+
https://issues.dlang.org/show_bug.cgi?id=14476 Issue ID: 14476 Summary: core.thread unit tests failing on FreeBSD 9+ Product: D Version: unspecified Hardware: All OS: FreeBSD Status: NEW Severity: major Priority: P1 Component: druntime Assignee: nob...@puremagic.com Reporter: issues.dl...@jmdavisprog.com I am consistently seeing this when I try and run druntime's unit tests on FreeBSD for either 2.067 or master (2.068 alpha): 0.000s PASS release64 object 0.000s PASS release64 core.atomic 0.008s PASS release64 core.bitop 0.000s PASS release64 core.checkedint 0.000s PASS release64 core.demangle 0.000s PASS release64 core.exception 0.000s PASS release64 core.math 0.000s PASS release64 core.memory posix.mak:230: recipe for target 'obj/64/core/thread' failed gmake: *** [obj/64/core/thread] Illegal instruction gmake: *** Deleting file 'obj/64/core/thread' The druntime unit tests for 2.066 run just fine, so whatever the problem is was either introduced in 2.067, or a new test that triggers it was introduced. I'm running the latest PC-BSD on x86_64 (so FreeBSD 10.1), and someone else in the newsgroup sees the same thing on their 9.1 i386 machine: http://forum.dlang.org/post/koxlbjptuyccdygvk...@forum.dlang.org The autotester is not hitting this problem, so clearly, it doesn't exist on all FreeBSD systems However, apparently, the autotester is currently running FreeBSD 8.4, so that would imply that the problem only exists in FreeBSD 9+. I narrowed it down to the last test in core.thread: unittest { auto thr = new Thread(function{}, 10).start(); thr.join(); } And if I remove the ", 10" from the constructor call, then it works - but then the druntime unit test build fails later: Testing link Testing load Testing linkD Testing linkDR Testing loadDR Testing host Testing finalize Testing link_linkdep Makefile:28: recipe for target 'obj/freebsd/64/link_linkdep.done' failed gmake[1]: *** [obj/freebsd/64/link_linkdep.done] Segmentation fault gmake[1]: Leaving directory '/usr/home/jmdavis/Programming/github/druntime/test/shared' posix.mak:242: recipe for target 'test/shared/.run' failed gmake: *** [test/shared/.run] Error 2 I have no idea if it's a related problem or not, but if it isn't, then another problem was introduced in 2.067 which only exists on FreeBSD 9+. But regardless, something about setting the stack size for threads isn't working properly on FreeBSD 9+. --