[Issue 15710] New: Replacement for std.utf.validate which does not throw
https://issues.dlang.org/show_bug.cgi?id=15710 Issue ID: 15710 Summary: Replacement for std.utf.validate which does not throw Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: issues.dl...@jmdavisprog.com For whatever reason, std.utf.validate throws when a string is invalid Unicode rather than returning true or false (probably because it was easier at the time it was implemented, since the only wwy to validate Unicode other than reimplementing decode would have been to catch the exception it threw on failure). It also only works on strings and not arbitrary ranges of characters. So, we need a new function (e.g. isValidUnicode) which validates a range of characters and returns whether it's valid Unicode rather than throwing. Then we can deprecate validate and get that much closer to getting rid of UTFException and all of the extraneous Unicode validation that we have right now. --
[Issue 15709] New: [Downloads] cannot install dmd using curl script
https://issues.dlang.org/show_bug.cgi?id=15709 Issue ID: 15709 Summary: [Downloads] cannot install dmd using curl script Product: D Version: D2 Hardware: x86_64 URL: http://dlang.org/ OS: Linux Status: NEW Severity: blocker Priority: P3 Component: installer Assignee: nob...@puremagic.com Reporter: xemail...@yahoo.co.uk When I run the command given in https://dlang.org/download.html#dmd: - curl -fsS https://dlang.org/install.sh | bash -s dmd I receive this output: Downloading and unpacking http://downloads.dlang.org/releases/2.x/2.070.0/dmd.2.070.0.linux.tar.xz 100% Invalid signature http://downloads.dlang.org/releases/2.x/2.070.0/dmd.2.070.0.linux.tar.xz.sig --
[Issue 1180] the GC failes to handle large allocation requests propperly
https://issues.dlang.org/show_bug.cgi?id=1180 Sobirari Muhomorichanged: What|Removed |Added Severity|normal |regression --
[Issue 1180] the GC failes to handle large allocation requests propperly
https://issues.dlang.org/show_bug.cgi?id=1180 Sobirari Muhomorichanged: What|Removed |Added Status|RESOLVED|REOPENED Version|D1 (retired)|D2 Component|phobos |druntime Hardware|x86 |x86_64 Assignee|bugzi...@digitalmars.com|nob...@puremagic.com Resolution|FIXED |--- Severity|blocker |normal OS|All |Linux --- Comment #2 from Sobirari Muhomori --- int main() { size_t len = size_t.max-100; ubyte[] arr = new ubyte[len]; return 0; } Return code: 11 (Segmentation fault) Tried only on dpaste. --
[Issue 7349] assert(0) in class destructor - bad (or incorrect) error
https://issues.dlang.org/show_bug.cgi?id=7349 Sobirari Muhomorichanged: What|Removed |Added CC||matt.elk...@gmail.com --- Comment #5 from Sobirari Muhomori --- *** Issue 15705 has been marked as a duplicate of this issue. *** --
[Issue 15705] Invalid memory operation during array growth (@safe code)
https://issues.dlang.org/show_bug.cgi?id=15705 Sobirari Muhomorichanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Sobirari Muhomori --- *** This issue has been marked as a duplicate of issue 7349 *** --
[Issue 2830] private attribute doesn't work for structs/unions/classes
https://issues.dlang.org/show_bug.cgi?id=2830 Issue 2830 depends on issue 313, which changed state. Issue 313 Summary: [module] Fully qualified names bypass private imports https://issues.dlang.org/show_bug.cgi?id=313 What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED --
[Issue 313] [module] Fully qualified names bypass private imports
https://issues.dlang.org/show_bug.cgi?id=313 github-bugzi...@puremagic.com changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED --
[Issue 3108] [meta] Protection
https://issues.dlang.org/show_bug.cgi?id=3108 Issue 3108 depends on issue 313, which changed state. Issue 313 Summary: [module] Fully qualified names bypass private imports https://issues.dlang.org/show_bug.cgi?id=313 What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED --
[Issue 314] [module] Static, renamed, and selective imports are always public
https://issues.dlang.org/show_bug.cgi?id=314 Issue 314 depends on issue 313, which changed state. Issue 313 Summary: [module] Fully qualified names bypass private imports https://issues.dlang.org/show_bug.cgi?id=313 What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED --
[Issue 313] [module] Fully qualified names bypass private imports
https://issues.dlang.org/show_bug.cgi?id=313 --- Comment #20 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/ea25aad26d11951ccbcd2a57f8c3add968f32434 fix Issue 313 - Fully qualified names bypass private imports - b/c we're using a global package tree, imported modules were accessible in other scopes using fully qualified names - maintain a whitelist of imported modules in the current scope https://github.com/D-Programming-Language/dmd/commit/eb8c2c7a48404495d3a62ee5bd58e28a654e99d5 Merge pull request #5426 from MartinNowak/fix313 fix Issue 313 - Fully qualified names bypass private imports --
[Issue 15708] New: std.range.choose assumes hasElaborateCopyConstructor means "has __postblit"
https://issues.dlang.org/show_bug.cgi?id=15708 Issue ID: 15708 Summary: std.range.choose assumes hasElaborateCopyConstructor means "has __postblit" Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: acehr...@yahoo.com The following program fails compilation: import std.stdio : stdin; import std.range: choose; void main() { ubyte[1][] secondRange; choose(true, stdin.byChunk(1), secondRange); } /usr/include/dmd/phobos/std/range/package.d(1296): Error: no property '__postblit' for type 'ByChunk', did you mean '__xpostblit'? Forum thread: http://forum.dlang.org/thread/ylcpaldlbbsmbceeo...@forum.dlang.org The reason is, std.range.choose has the following post-blit: static if (hasElaborateCopyConstructor!R1 || hasElaborateCopyConstructor!R2) this(this) { if (condition) { static if (hasElaborateCopyConstructor!R1) r1.__postblit(); } else { static if (hasElaborateCopyConstructor!R2) r2.__postblit(); } } However, hasElaborateCopyConstructor may be true even if there is no __postblit: template hasElaborateCopyConstructor(S) { static if(isStaticArray!S && S.length) { enum bool hasElaborateCopyConstructor = hasElaborateCopyConstructor!(typeof(S.init[0])); } else static if(is(S == struct)) { enum hasElaborateCopyConstructor = hasMember!(S, "__postblit") || anySatisfy!(.hasElaborateCopyConstructor, FieldTypeTuple!S); } else { enum bool hasElaborateCopyConstructor = false; } } Ali --
[Issue 15707] New: Extend aggregate TypeInfo with information about `alias this`
https://issues.dlang.org/show_bug.cgi?id=15707 Issue ID: 15707 Summary: Extend aggregate TypeInfo with information about `alias this` Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: druntime Assignee: nob...@puremagic.com Reporter: pub...@dicebot.lv Proposal: enhance TypeInfo so that for a struct like this: struct S { byte[8] x; int y; alias y this; } .. the following code will be valid: auto ti = typeid(S.init); assert (ti.aliasthis.offset == 8); assert (ti.aliasthis.next == typeid(int.init)); Use case: RTTI based formatting/logging, most importantly in cases where `alias this` struct is used as a replacement for typedef. --