[Issue 17638] A pragma inside a function body is seen as a statement
https://issues.dlang.org/show_bug.cgi?id=17638 --- Comment #3 from Nicholas Wilson --- void main(){ pragma(mangle, "aaa") __gshared int a = 1; // Is a declaration, incorrectly marked as a pragma statement. } see issue 19149. --
[Issue 17638] A pragma inside a function body is seen as a statement
https://issues.dlang.org/show_bug.cgi?id=17638 Nicholas Wilson changed: What|Removed |Added CC||iamthewilsona...@hotmail.co ||m --- Comment #2 from Nicholas Wilson --- *** Issue 19149 has been marked as a duplicate of this issue. *** --
[Issue 19149] pragma(mangle, "...") does not work for function local __gshared variables
https://issues.dlang.org/show_bug.cgi?id=19149 Nicholas Wilson changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #2 from Nicholas Wilson --- *** This issue has been marked as a duplicate of issue 17638 *** --
[Issue 19149] pragma(mangle, "...") does not work for function local __gshared variables
https://issues.dlang.org/show_bug.cgi?id=19149 --- Comment #1 from Nicholas Wilson --- duplicate of https://issues.dlang.org/show_bug.cgi?id=17638 --
[Issue 19192] DMD generates invalid code for covariants for some interface <- abstract class <- class hierarchies
https://issues.dlang.org/show_bug.cgi?id=19192 Puneet Goel changed: What|Removed |Added Summary|DMD generates invalid code |DMD generates invalid code |for covariants involving|for covariants for some |template classes|interface <- abstract class ||<- class hierarchies --
[Issue 19192] DMD generates invalid code for covariants involving template classes
https://issues.dlang.org/show_bug.cgi?id=19192 ag0aep6g changed: What|Removed |Added Keywords||wrong-code CC||ag0ae...@gmail.com --- Comment #1 from ag0aep6g --- Reduced: interface Foo { Foo troll(); } abstract class Barbee : Foo {} class Bar : Barbee { Bar troll() { return this; } } void main() { Foo foo = new Bar; assert(foo is foo.troll); /* Fails. Should pass. */ } --
[Issue 1197] "static if" + enum.max/enum.min doesn't compile (D1 only)
https://issues.dlang.org/show_bug.cgi?id=1197 ag0aep6g changed: What|Removed |Added Status|RESOLVED|REOPENED CC||ag0ae...@gmail.com Resolution|FIXED |--- --- Comment #7 from ag0aep6g --- (In reply to Stefan Koch from comment #6) > Compiles since as of 2.068 ... maybe even sooner You seem to have missed the "(D1 only)" part. Reopening. (It may be time to just close all D1 bugs as WONTFIX, though.) --
[Issue 340] [Tracker] Forward reference bugs and other order-of-declaration issues
https://issues.dlang.org/show_bug.cgi?id=340 Issue 340 depends on issue 1197, which changed state. Issue 1197 Summary: "static if" + enum.max/enum.min doesn't compile (D1 only) https://issues.dlang.org/show_bug.cgi?id=1197 What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- --
[Issue 19199] Use core.bitops intrinsics during CTFE
https://issues.dlang.org/show_bug.cgi?id=19199 --- Comment #1 from Nathan S. --- Pull request: https://github.com/dlang/dmd/pull/8627 --
[Issue 19199] New: Use core.bitops intrinsics during CTFE
https://issues.dlang.org/show_bug.cgi?id=19199 Issue ID: 19199 Summary: Use core.bitops intrinsics during CTFE Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: n8sh.second...@hotmail.com Currently in `dmd.builtin` there are software implementations of `core.bitop` functions within `eval_bsf`, `eval_bsr`, `eval_bswap`, and `eval_popcnt`. With DMD written in D this is unnecessary: they can use `core.bitop`. --
[Issue 19198] Transfer the entire development DMD to LLVM: WebAssembly, dynamic scripting..
https://issues.dlang.org/show_bug.cgi?id=19198 anonymous4 changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #2 from anonymous4 --- DMD frontend with LLVM backend is released as LDC compiler: https://github.com/ldc-developers/ldc/releases/tag/v1.11.0 --
[Issue 1197] "static if" + enum.max/enum.min doesn't compile (D1 only)
https://issues.dlang.org/show_bug.cgi?id=1197 Stefan Koch changed: What|Removed |Added Status|NEW |RESOLVED CC||uplink.co...@gmail.com Resolution|--- |FIXED --- Comment #6 from Stefan Koch --- Compiles since as of 2.068 ... maybe even sooner --
[Issue 340] [Tracker] Forward reference bugs and other order-of-declaration issues
https://issues.dlang.org/show_bug.cgi?id=340 Issue 340 depends on issue 1197, which changed state. Issue 1197 Summary: "static if" + enum.max/enum.min doesn't compile (D1 only) https://issues.dlang.org/show_bug.cgi?id=1197 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 19198] Transfer the entire development DMD to LLVM: WebAssembly, dynamic scripting..
https://issues.dlang.org/show_bug.cgi?id=19198 --- Comment #1 from OlegZ --- SPIR-V (bytecode of Vulkan API and OpenCL) can be translated to LLVM and back https://github.com/KhronosGroup/SPIRV-LLVM LLVM can generate code for AMD/NVIDIA extension cards (graphics, math..) --
[Issue 19198] New: Transfer the entire development DMD to LLVM: WebAssembly, dynamic scripting..
https://issues.dlang.org/show_bug.cgi?id=19198 Issue ID: 19198 Summary: Transfer the entire development DMD to LLVM: WebAssembly, dynamic scripting.. Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: blac...@bk.ru I am noob of LLVM. 1) LLVM allow use any subset of Analytic and Transfer Passes https://releases.llvm.org/6.0.0/docs/Passes.html GCC(DMD backend?) is blackbox, LLVM - white box where u can insert/delete/update any Passes for any hardware. 2) LLVM can generate WebAssembly code - big frontend area, probably server too. translation LLVM-IR to WASM can be used from any opensource team: LLVM, Rust, Go... U don't need waste time for it. 3) LDC already supports dynamic compilation for some functions. Team can add runtime scripts do D in future. see Terra language with Lua integration. yep, Lua is scripting and Terra is script inside Lua. Lua has one runtime(LUA), Terra has another runtime(LLVM) - they should cooperate and this step adds more complications inside RT. D-LLVM-scripts can work in one runtime and GC. at this PDF author of Terra says about lang and optimizations https://cs.stanford.edu/~zdevito/zdevito_thesis.pdf. Look at chapter 5 where 50 lines of Terra code can compared by speed with thousands LOC of BLAS and MKL - libs that solve linear system of equations. Such simplicity would not be available without LLVM. Runtime scripts are needed in many areas - games, graphic editors (shaders), REPL/shell, finance (trading/backtesting).. Even Qt/QML has no good interop between itself. C#/Java has good scripting interop and probably that all. 4) I can't imagine how many bonuses can be with using LLVM. search ideas at internet/blogs and known persons from any lang-teams that use LLVM. union of LLVM and D can add features to both areas: D-team can improve LLVM passes/code/lib and people that worked LLVM can add incredible possibilities to D-lang/runtime --
[Issue 19175] @safe code can escape local array references
https://issues.dlang.org/show_bug.cgi?id=19175 ag0aep6g changed: What|Removed |Added CC||ag0ae...@gmail.com --- Comment #7 from ag0aep6g --- (In reply to anonymous4 from comment #6) > Same for pointers: [...] Resolving the templates shows that this is related to `pure`: @safe: struct A { int* r; this(int* q) pure { r = q; } } int* escape(int* r) pure { return A(r).r; } int* f() { int x; return escape(&x); } --
[Issue 19175] @safe code can escape local array references
https://issues.dlang.org/show_bug.cgi?id=19175 --- Comment #6 from anonymous4 --- Same for pointers: @safe: struct A(T) { int* r; this(int* q){r=q;} } int* escape(T)(int* r) { return A!int(r).r; } int* f() { int x; return escape!int(&x); } --
[Issue 19194] version for `-mscrtlib` specification
https://issues.dlang.org/show_bug.cgi?id=19194 --- Comment #2 from Manu --- I have work-arounds in place. Work-arounds aren't confidence inspiring. Shit needs to just-work right ;) I figure settings a version for the selected crtlib offers the most information, and guarantees that we won't need any other distinction material at any later time. --