[Issue 15910] Prevent mismatch of VERSION information in dmd releases

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15910

Martin Nowak  changed:

   What|Removed |Added

 CC||c...@dawg.eu

--- Comment #1 from Martin Nowak  ---
> For the second release in a row (2.070.0 followed by 2.071.0), dmd has been 
> released with the VERSION file not updated to match the release version

That's not entirely correct b/c the downloadable packages contain the correct
VERSION file, it's only that the tagged git commits have an incorrect VERSION
file.
Now we could validate that the VERSION file contains the to be build tag, but
this will be a constant nuisance, e.g. deleting already created tags, changing
the VERSION from 2.071.0-b1 to 2.071.0-b2, retag, and build.
I'd instead suggest that any build script using the git repo or tags, should
get the VERSION from git or write the VERSION file when downloading a tar
bundle from github.
VERSION can also be set through make -f posix.mak VERSION=2.071.0.

--


[Issue 11356] isASCII for strings

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=11356

Walter Bright  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution|--- |WONTFIX

--- Comment #5 from Walter Bright  ---
See https://github.com/D-Programming-Language/phobos/pull/4153

--


[Issue 13392] class + alias this + cast(void*) == overzealous cast

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13392

ag0ae...@gmail.com changed:

   What|Removed |Added

   Keywords||wrong-code
 CC||ag0ae...@gmail.com

--


[Issue 15912] Anonymous class with missing method results in linker error

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15912

ag0ae...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ag0ae...@gmail.com
 Resolution|--- |INVALID

--- Comment #1 from ag0ae...@gmail.com ---
(In reply to andy.pj.hanson from comment #0)
> This code successfully compiles, but fails to link:
> 
>   abstract class A {
>   void x();
>   }
> 
>   void main() {
>   new class A {};
>   }

The same happens with a named class (undefined reference to A.x):

abstract class A {void x();}
class B : A {}
void main() {new B;}


This is expected. x is not abstract here. It's supposed to be implemented
externally.

To make it a compile error, make x abstract:

abstract class A {
abstract void x();
}

void main() {
new class A {}; /* Error: cannot create instance of abstract class
__anonclass1 */
}


Closing as invalid. Feel free to reopen if you think I'm missing something.

--


[Issue 15912] New: Anonymous class with missing method results in linker error

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15912

  Issue ID: 15912
   Summary: Anonymous class with missing method results in linker
error
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: andy.pj.han...@gmail.com

This code successfully compiles, but fails to link:

abstract class A {
void x();
}

void main() {
new class A {};
}

The error is:

app.o:(.data._D3app4mainFZ13__anonclass516__vtblZ+0x28): undefined
reference to `_D3app1A1xMFZv'

The error message doesn't mention what causes the error, so it would be nice to
detect these problems at compile-time.

This might be related to issue 13438.

--


[Issue 15735] std.algorithm.iteration.splitter returns empty range

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15735

Jon Degenhardt  changed:

   What|Removed |Added

 CC||jrdemail2000-dl...@yahoo.co
   ||m

--


[Issue 14816] improve dt_t data type for faster appending (tail list or array)

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14816

Walter Bright  changed:

   What|Removed |Added

 CC||bugzi...@digitalmars.com

--- Comment #3 from Walter Bright  ---
This is largely resolved by the DtBuilder changes.

--


[Issue 15864] chmgen triggers exception in std.regex

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15864

--- Comment #5 from Dmitry Olshansky  ---
https://github.com/D-Programming-Language/phobos/pull/4180

--


[Issue 15402] allow private access to package symbols

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15402

--- Comment #4 from github-bugzi...@puremagic.com ---
Commits pushed to stable at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/c424690156a6f2b4f402415c45e780833f2f2df2
fix Issue 15402 - allow private access to package symbols

https://github.com/D-Programming-Language/dmd/commit/e36364035fb1cd689df86f599f8473e1bef10ab5
Merge pull request #5642 from D-Programming-Language/fix15402

fix Issue 15402 - allow private access to package symbols

--


[Issue 15864] chmgen triggers exception in std.regex

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15864

Dmitry Olshansky  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #4 from Dmitry Olshansky  ---
https://github.com/D-Programming-Language/phobos/pull/4181

--


[Issue 12100] __GENTYPE to generate ever different types

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=12100

--- Comment #14 from Simen Kjaeraas  ---
A bit of reasoning behind the choices made in the PR above:

(In reply to bearophile_hugs from comment #12)
> VC++ and GCC have "__COUNTER__"

__COUNTER__ breaks when used with separate compilation, as discussed above.
Also:

(In reply to bearophile_hugs from comment #6)
> I am asking for a integer that is incremented every time by 1, and that
> is exported as a range by every pre-compiled module to avoid duplications.

So... how do the other modules know about this range? One'd have to include the
other compiled modules on the command line when compiling one module, from what
I can see. If not, the compiler won't know of the used values, and chaos would
ensue.

For my PR, __GENSYM__ returns a string with a 'G' prefix*, followed by the
mangled name of the containing scope, followed by a scope-local counter:

module bar;
struct Ham(string gensym = __GENSYM__) {
enum s = gensym;
Eggs!() e;
}

struct Eggs(string gensym = __GENSYM__) {
enum s = gensym;
}

module foo;
import bar;

struct S {
static assert(__GENSYM__ == "G3foo1S1");
static assert(__GENSYM__ == "G3foo1S2");
}

void baz() {
static assert(__GENSYM__ == "G_D3foo3bazFZv1");
static assert(__GENSYM__ == "G_D3foo3bazFZv2");
}

static assert(__GENSYM__ == "G3foo1");
static assert(__GENSYM__ == "G3foo2");

void main() {
static assert(__GENSYM__ == "G_Dmain1");
static assert(__GENSYM__ == "G_Dmain2");
static assert(Ham!().s == "G_Dmain3");
static assert(Ham!().s == "G_Dmain4");
static assert(Ham!().e.s == "G3bar31__T3HamVAyaa8_475f446d61696e35Z3Ham1");
static assert(Ham!().e.s == "G3bar31__T3HamVAyaa8_475f446d61696e36Z3Ham1");
// Note that this is not identical to the above (5Z3Ham1 vs 6Z3Ham1)
}

The mangled names should be fairly unique, and I don't think there's a case
where the order of instantiation would be different within a single scope, but
I'm prepared to be proven wrong on this.
So that should take care of separate compilation.

It's possible that this scheme can return values that are no valid identifiers
(if mangleof contains invalid characters). This is currently simply ignored.

* The 'G' prefix is used so that __GENSYM__ should return a valid identifier.
The exact character is once again chosen for LISP compatibility.

--


[Issue 15911] New: undefined __Unwind_GetIPInfo for x86_64

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15911

  Issue ID: 15911
   Summary: undefined __Unwind_GetIPInfo for x86_64
   Product: D
   Version: D2
  Hardware: x86_64
OS: Mac OS X
Status: NEW
  Severity: major
  Priority: P1
 Component: druntime
  Assignee: nob...@puremagic.com
  Reporter: c...@dawg.eu

Undefined symbols for architecture x86_64:
  __Unwind_GetIPInfo, referenced from:
  ___dmd_personality_v0 in libphobos2.a(dwarfeh_5c8_811.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Apparently comes from compiling idgen.d with 2.071.0.

--


[Issue 15838] Many Win32 API callback functions miss extern(Windows)

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15838

--- Comment #2 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/699dab51b73c37ccf3e397cffb34c2c49198f7e6
Fix issue 15838 Many Win32 API callback functions miss extern(Windows)

Add extern (Windows) to aliases and struct fields.

https://github.com/D-Programming-Language/druntime/commit/ce29bfc31385a988555a0ba1ab335c81c5173b03
Merge pull request #1525 from qchikara/pr_win32_callbacks_linkeage

Fix issue 15838 Many Win32 API callback functions miss extern(Windows)

--


[Issue 15838] Many Win32 API callback functions miss extern(Windows)

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15838

github-bugzi...@puremagic.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--


[Issue 15910] New: Prevent mismatch of VERSION information in dmd releases

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15910

  Issue ID: 15910
   Summary: Prevent mismatch of VERSION information in dmd
releases
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: installer
  Assignee: nob...@puremagic.com
  Reporter: joseph.wakel...@webdrake.net

For the second release in a row (2.070.0 followed by 2.071.0), dmd has been
released with the VERSION file not updated to match the release version:
http://forum.dlang.org/post/sesqprbrrdzkcvdvx...@forum.dlang.org
http://forum.dlang.org/post/cplapztlpphcvosjc...@forum.dlang.org

Among the consequences are that anyone building directly from source will end
up with a wrong libdruntime library filename.

The fact that this is a recurring problem suggests that the release procedure
should be revised to make this impossible.  A factor here may be that the
release script overwrites the VERSION file, meaning that mismatches between git
tags and the VERSION file will be hidden:
https://github.com/D-Programming-Language/dmd/pull/5382#issuecomment-177545916
https://github.com/D-Programming-Language/installer/blob/67480ddd9a75170fe359a823225dfd60ca5027fd/create_dmd_release/build_all.d#L436-L446

Assuming that the VERSION file is still desired for e.g. users building from
tarballs instead of git clones, this suggests that perhaps the release script
should validate and require matching VERSION information instead of overwriting
the file ... ?

--


[Issue 12897] std.json.toJSON doesn't translate unicode chars(>=0x80) to "\uXXXX"

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=12897

github-bugzi...@puremagic.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--


[Issue 12897] std.json.toJSON doesn't translate unicode chars(>=0x80) to "\uXXXX"

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=12897

--- Comment #4 from github-bugzi...@puremagic.com ---
Commit pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/b5cd354a05033ade13ae376377bec590bef62212
Merge pull request #4106 from BBasile/issue-12897

fix issue 12897 - toJSON, add the escapeNonAsciiChars option

--


[Issue 15372] DMD emits wrong mangling for extern(C++) free function templates

2016-04-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15372

--- Comment #3 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/8f03d2745efe0c04c10cb37192c1989f0bef789d
Issue 15372: RESOLVED FIXED

https://github.com/D-Programming-Language/dlang.org/commit/3bbcd41077e7ee63734399521235157bacd678df
Merge pull request #1259 from Bolpat/patch-1

Remove note about Issue 15372 because it was fixed.

--