[Issue 11378] implicit runtime initialization/finalization is broken

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11378


Martin Nowak c...@dawg.eu changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


--- Comment #11 from Martin Nowak c...@dawg.eu 2013-10-30 23:10:27 PDT ---
(In reply to comment #9)
 OK, that's probably workable, would be nice if there was some function to
 correctly exit the thread at any moment, though. Case closed for me.

Exiting a thread is different from exiting the process and even that would
require more for a correct shutdown than C's exit function.

The only mechanism that we have which could correctly unwind a stack and free
all resources is throwing an Exception. What's your use-case for this?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11378] implicit runtime initialization/finalization is broken

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11378


Jacob Carlborg d...@me.com changed:

   What|Removed |Added

 CC||d...@me.com


--- Comment #12 from Jacob Carlborg d...@me.com 2013-10-31 00:29:11 PDT ---
(In reply to comment #11)

 Exiting a thread is different from exiting the process and even that would
 require more for a correct shutdown than C's exit function.
 
 The only mechanism that we have which could correctly unwind a stack and free
 all resources is throwing an Exception. What's your use-case for this?

Can't we setup a callback using atexit which correctly terminates the
runtime?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11395] link error (struct+opEquals) on separate compilation

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11395



--- Comment #3 from github-bugzi...@puremagic.com 2013-10-31 01:44:40 PDT ---
Commit pushed to 2.064 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/b52c07181deed50fdbff5efc019906b3803d924c
Merge pull request #2698 from 9rnsr/fix11395

[REG2.064a] Issue 11395 - link error (struct+opEquals) on separate compilation

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11395] link error (struct+opEquals) on separate compilation

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11395



--- Comment #2 from github-bugzi...@puremagic.com 2013-10-31 01:44:00 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/f70c40dce3928ddd2c2d4fc886f66e0587509487
fix Issue 11395 - link error (struct+opEquals) on separate compilation

https://github.com/D-Programming-Language/dmd/commit/9dabf26ab0edf216c994137e09a58db6d509669a
Merge pull request #2698 from 9rnsr/fix11395

[REG2.064a] Issue 11395 - link error (struct+opEquals) on separate compilation

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11395] link error (struct+opEquals) on separate compilation

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11395


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution||FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11392] dirEntries segfaults (fails in 2.064 beta 4, works in 2.063.2)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11392


monarchdo...@gmail.com changed:

   What|Removed |Added

 CC||monarchdo...@gmail.com


--- Comment #1 from monarchdo...@gmail.com 2013-10-31 02:00:09 PDT ---
I was not able to reproduce on linux64, on any of beta 1, 3 or 4.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11392] dirEntries segfaults (fails in 2.064 beta 4, works in 2.063.2)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11392



--- Comment #2 from monarchdo...@gmail.com 2013-10-31 02:09:43 PDT ---
I was not able to reproduce on win32 either.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 1512] GC infinite loop when invalid user code runs.

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1512


safety0ff.bugz safety0ff.b...@gmail.com changed:

   What|Removed |Added

 CC||safety0ff.b...@gmail.com


--- Comment #10 from safety0ff.bugz safety0ff.b...@gmail.com 2013-10-31 
02:25:49 PDT ---
Works for me, recent versions of DMD, LDC give: Error: Cannot modify 'this'
inside func.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 1512] GC infinite loop when invalid user code runs.

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1512



--- Comment #11 from safety0ff.bugz safety0ff.b...@gmail.com 2013-10-31 
02:34:55 PDT ---
(In reply to comment #10)
 Works for me, recent versions of DMD, LDC give: Error: Cannot modify 'this'
 inside func.

For D2, probably still valid for D1 (what it is marked as.)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11392] dirEntries segfaults (fails in 2.064 beta 4, works in 2.063.2)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11392



--- Comment #3 from thelastmamm...@gmail.com 2013-10-31 02:39:47 PDT ---
well that would explain why it would've gone un-noticed...
can anyone verify on OSX?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11392] dirEntries segfaults (fails in 2.064 beta 4, works in 2.063.2)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11392


safety0ff.bugz safety0ff.b...@gmail.com changed:

   What|Removed |Added

 CC||safety0ff.b...@gmail.com


--- Comment #4 from safety0ff.bugz safety0ff.b...@gmail.com 2013-10-31 
03:31:28 PDT ---
Maybe my PR https://github.com/D-Programming-Language/phobos/pull/1657 changed
the test that might have caught it.
I looked at the reports which lead to those tests and the directory string did
not look relevant.

In retrospect, I should have used something like:
auto cwd = getcwd();
chdir(testdir);
scope(exit) chdir(cwd);

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11399] New: time.di(365) error

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11399

   Summary: time.di(365) error
   Product: D
   Version: D2
  Platform: x86_64
OS/Version: Windows
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: ronald@gmail.com


--- Comment #0 from ronald@gmail.com 2013-10-31 05:11:49 PDT ---
On windows 7, DMD32 D Compiler v2.063.2 failed to all my trivial tests
including the hello world.  The error message was shown below:

C:\D\dmd2\windows\bin\..\..\src\druntime\import\core\time.di(365): Error:
Declaration expected, not '}'

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11369] time.di(365)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11369



--- Comment #2 from ronald@gmail.com 2013-10-31 05:13:51 PDT ---
(In reply to comment #1)
 It sounds like you probably have a messed up install, but I can't really help
 you much without actual code examples. You really should bring this up in
 D.Learn to get some help there:
 
 http://forum.dlang.org/
 http://forum.dlang.org/group/digitalmars.D.learn
 
 I'd be very surprised if there were an actual bug in core.time that was 
 causing
 your problem.

Thanks.  I will post my question over there.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11400] New: Floating point numbers with fractional part printing alignment problem

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11400

   Summary: Floating point numbers with fractional part printing
alignment problem
   Product: D
   Version: D2
  Platform: x86
OS/Version: Windows
Status: NEW
  Severity: normal
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2013-10-31 05:54:29 PDT ---
void main() {
import std.stdio;
writefln(%2d, 5);
writefln(%2d, -5);
writefln(%3d, 5);
writefln(%3d, 12);
writefln(%3d, -12);
writeln;
writefln(%2.0f, 5.0);
writefln(%2.0f, -5.0);
writefln(%3.0f, 5.0);
writefln(%3.0f, 12.0);
writefln(%3.0f, -12.0);
writeln;
writefln(%2.1f, 5.0);
writefln(%2.1f, -5.0);
writefln(%3.1f, 5.0);
writefln(%3.1f, 12.0);
writefln(%3.1f, -12.0);
}


dmd 2.064beta3 gives:


 5
-5
  5
 12
-12

 5
-5
  5
 12
-12

5.0
-5.0
5.0
12.0
-12.0


But I expect:

 5
-5
  5
 12
-12

 5
-5
  5
 12
-12

 5.0  == note here
-5.0
  5.0 == note here
 12.0 == note here
-12.0


Note that the problem is not present if you use .0 when you print floating
point numbers.

This is useful to correct align a 2D matrix, to print it in a more readable
way. You can see in this program:

void main() {
import std.stdio;
double[][] m = [[4.243, 0.000, 0.000, 0.000],
[5.185, 6.566, 0.000, 0.000],
[12.728, 3.046, 1.650, 0.000],
[9.899, 1.625, 1.850, 1.393]];
writefln(%(%(%2.3f %)\n%), m);
}


That prints a table with misaligned columns:

4.243 0.000 0.000 0.000
5.185 6.566 0.000 0.000
12.728 3.046 1.650 0.000
9.899 1.625 1.850 1.393

that is a little harder to read than:

 4.243  0.000  0.000  0.000
 5.185  6.566  0.000  0.000
12.728  3.046  1.650  0.000
 9.899  1.625  1.850  1.393

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11365] Allow D source file names to have no extension (or an arbitrary extension)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11365



--- Comment #9 from bearophile_h...@eml.cc 2013-10-31 07:42:41 PDT ---
Having a standard extension for D code is useful for programs like cloc that
count lines of code, with editors that open .d files with correct D
colorization, for my scripts that select files with .d suffix to test
incompatibilities across different compiler versions. I have testing scripts
that test .d files differently from .py files looking in directories. And it's
not just a matter of my own code, it also mattes from D libraries from other
people.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11365] Allow D source file names to have no extension (or an arbitrary extension)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11365



--- Comment #11 from Dicebot pub...@dicebot.lv 2013-10-31 07:50:47 PDT ---
In other words, it is not a as much of a problem of DMD codebase that is uses
.c for C++ code, it is a problem of IDE's/tools that assume it is a C code
without providing any convenient way to override that assumption.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11378] implicit runtime initialization/finalization is broken

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11378



--- Comment #13 from Martin Nowak c...@dawg.eu 2013-10-31 07:50:45 PDT ---
(In reply to comment #12)
 Can't we setup a callback using atexit which correctly terminates the
 runtime?

No, because then we couldn't clean up the stack.
I still don't understand the need for this. I don't even know if a C program
can be terminated by a call to exit from another thread.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11365] Allow D source file names to have no extension (or an arbitrary extension)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11365


Dicebot pub...@dicebot.lv changed:

   What|Removed |Added

 CC||pub...@dicebot.lv


--- Comment #10 from Dicebot pub...@dicebot.lv 2013-10-31 07:48:57 PDT ---
As I have already mentioned in NG, the very idea that file extension should
have any relation with its content is just plain wrong and needs to be
discouraged, as well as any arbitrary limitations that may impose.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11401] New: ElementType returns constructor instead of type

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11401

   Summary: ElementType returns constructor instead of type
   Product: D
   Version: D2
  Platform: x86_64
OS/Version: Linux
Status: NEW
  Severity: regression
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: jcrapuchet...@gmail.com


--- Comment #0 from Jonathan Crapuchettes jcrapuchet...@gmail.com 2013-10-31 
09:42:06 PDT ---
Using latest git HEAD, the following code produces an error where 2.063.2 does
not. It appears to be a problem with either std.range.ElementType or
std.traits.lvalueOf.

Code
---
import std.range;

void main()
{
alias ElementType!RowRange E;
static assert(is(typeof(E.id)), E.stringof~ is expected to have a 'id'
member);
}

struct RowRange
{
BasicNode front()
{
return BasicNode.init;
}
}

struct BasicNode { ushort id; }

Output
---
$ ~/dmd-git/build/bin/dmd serialize.d
test.d(6): Error: static assert  BasicNode() is expected to have a 'id'
member

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11365] Allow D source file names to have no extension (or an arbitrary extension)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11365


Mathias LANG pro.mathias.l...@gmail.com changed:

   What|Removed |Added

 CC||pro.mathias.l...@gmail.com


--- Comment #12 from Mathias LANG pro.mathias.l...@gmail.com 2013-10-31 
10:08:55 PDT ---
Why should we enforce this ? We enforce things to prevent obvious mistakes. D
language plays well in this field. It ensures what it is sure needs to be
ensured, and give you the tools to build your own rules, with the least
burdens.

It's not a mistake to have a source file with an arbitrary extension, or no
extension at all. DMD will still now it's argument is a source file, whatever
its name is. And they're some valid use cases where you would not want a .d[i]
extension, as eles noticed in the quoted comment above, and in the NG.

(In reply to comment #9)
 Having a standard extension for D code is useful for programs like cloc that
 count lines of code, with editors that open .d files with correct D
 colorization, for my scripts that select files with .d suffix to test
 incompatibilities across different compiler versions. I have testing scripts
 that test .d files differently from .py files looking in directories. And it's
 not just a matter of my own code, it also mattes from D libraries from other
 people.

As you point, there are also some use cases where some tool require a specific
extension. But that's none of our business, the tool should ensure it, not DMD.
The real problem for those tools is to know what the file holds. We don't have
such problems with DMD.
For the record, good editors solve the problem easily, like vim or emacs:
# vim: syntax=d ts=4 sw=4 sts=4 sr noet
# -*- d-mode -*-

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 4101] [tdpl] DMD doesn't give error when goto skips initialization

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4101


Martin Nowak c...@dawg.eu changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||c...@dawg.eu
 Resolution||DUPLICATE


--- Comment #4 from Martin Nowak c...@dawg.eu 2013-10-31 10:15:09 PDT ---
*** This issue has been marked as a duplicate of issue 602 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 602] Compiler allows a goto statement to skip an initalization

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=602


Martin Nowak c...@dawg.eu changed:

   What|Removed |Added

 CC||jlqu...@optonline.net


--- Comment #5 from Martin Nowak c...@dawg.eu 2013-10-31 10:15:09 PDT ---
*** Issue 4101 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3454] Inconsistent flag setting in GC.realloc()

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3454



--- Comment #3 from github-bugzi...@puremagic.com 2013-10-31 10:26:34 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/druntime

https://github.com/D-Programming-Language/druntime/commit/4fe17c32bcfa9140e3b52e92b27474c3b60b3f95
fix Issue 3454 - inconsistent flag setting in GC.realloc()

https://github.com/D-Programming-Language/druntime/commit/487f0a1ed1aad76d1b4ca638fd25b730fd87aa4f
regression test for Issue 3454

https://github.com/D-Programming-Language/druntime/commit/0fe338f42a1225a6041bb0f7707375cfbee7b54b
Merge pull request #645 from Safety0ff/fix3454

fix Issue 3454 - inconsistent flag setting in GC.realloc()

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 602] Compiler allows a goto statement to skip an initalization

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=602



--- Comment #6 from Martin Nowak c...@dawg.eu 2013-10-31 10:31:38 PDT ---
Any ideas how to implement this? It seems like an algorithm to distinguish this
is non-trivial.

I tested the following with clang and it gives me a correct warning (gcc 4.7.2
doesn't).
goto.c:3:9:warning: variable 'test' is used uninitialized whenever 'if'
condition is true [-Wsometimes-uninitialized]

int bug(int val)
{
if (val)
goto Lno;
int test = 0;
 Lno: {}
return test;
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11365] Allow D source file names to have no extension (or an arbitrary extension)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11365



--- Comment #13 from Leandro Lucarella leandro.lucare...@sociomantic.com 
2013-10-31 10:50:57 PDT ---
I quickly tried to implement this by only disabling the extension checks when
the `-run` option is passed, but I failed miserably because the automatic
extension appending is some deeply in the module code, and then object.d isn't
found because the .d isn't added to the module name.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11399] time.di(365) error

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11399


Martin Krejcirik m...@krej.cz changed:

   What|Removed |Added

 CC||m...@krej.cz


--- Comment #1 from Martin Krejcirik m...@krej.cz 2013-10-31 19:04:21 CET ---
Whay are you posting bug 11369 again ? Both look invalid.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11365] Allow D source file names to have no extension (or an arbitrary extension)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11365



--- Comment #14 from Leandro Lucarella leandro.lucare...@sociomantic.com 
2013-10-31 11:38:36 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2700

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11365] Allow D source file names to have no extension (or an arbitrary extension)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11365



--- Comment #15 from Andrej Mitrovic andrej.mitrov...@gmail.com 2013-10-31 
12:08:58 PDT ---
(In reply to comment #12)
 Why should we enforce this ? We enforce things to prevent obvious mistakes. D
 language plays well in this field. It ensures what it is sure needs to be
 ensured, and give you the tools to build your own rules, with the least
 burdens.
 
 It's not a mistake to have a source file with an arbitrary extension, or no
 extension at all. DMD will still now it's argument is a source file, whatever
 its name is.

That's not true. It can't have a .lib extension, or an .obj/.o extension.

Arbitrary extensions means import switches will not work, the compiler won't
know which files it has to inspect to find D code. So this feature will be
useful for scripts and in cases where you're explicitly passing all files to
DMD.

(In reply to comment #10)
 As I have already mentioned in NG, the very idea that file extension should
 have any relation with its content is just plain wrong and needs to be
 discouraged, as well as any arbitrary limitations that may impose.

That's exactly what happens when you allow arbitrary extensions, tools end up
inventing their own semantics *based on* the extension:

http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Overall-Options.html:

file.c
C source code that must be preprocessed.
file.i
C source code that should not be preprocessed.
file.ii
C++ source code that should not be preprocessed. 
file.tcc
C++ header file to be turned into a precompiled header or Ada spec. 

See what I mean? 

If it's only .d/.di and for [1] extensionless files we allow then we make
everything simple.

 In other words, it is not a as much of a problem of DMD codebase that is uses
 .c for C++ code, it is a problem of IDE's/tools that assume it is a C code
 without providing any convenient way to override that assumption.

So now every tool in existence has to do heuristics on text files? The benefit
of having known and defined extensions is to make it easier to figure out what
a file is without having to open it, to make it easier to filter through a
directory of files and organize them based on their extension.

Using .c for C++ files is Walter's fault and nobody else's. There are no
excuses here.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11365] Allow D source file names to have no extension (or an arbitrary extension)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11365



--- Comment #16 from Andrej Mitrovic andrej.mitrov...@gmail.com 2013-10-31 
12:14:39 PDT ---
(In reply to comment #12)
 For the record, good editors solve the problem easily, like vim or emacs:
 # vim: syntax=d ts=4 sw=4 sts=4 sr noet
 # -*- d-mode -*-

You call that a solution? Arbitrary tools adding an arbitrary amount of HEADER
information they've invented? So then other tools have to be able to interpret
these lines too. This doesn't scale. It's not a solution.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11402] New: any/all are not documented in std.algorithm header

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11402

   Summary: any/all are not documented in std.algorithm header
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: minor
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: monarchdo...@gmail.com


--- Comment #0 from monarchdo...@gmail.com 2013-10-31 12:54:17 PDT ---
As title implies:
http://dlang.org/phobos/std_algorithm.html

They should appear in Searching (or Comparing? Searching I think).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11403] New: functions in std.algo can't be used as pred

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11403

   Summary: functions in std.algo can't be used as pred
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: rejects-valid
  Severity: normal
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: monarchdo...@gmail.com


--- Comment #0 from monarchdo...@gmail.com 2013-10-31 12:55:31 PDT ---
There are a ton of functions in std.algorithm that can be customized with a
predicate. At ton of them can also be used as predicates themselves. Here is a
cool example:

assert(equal!equal([[1, 2], [3, 4]], iota(1, 5).chunks(2)));

The problem with this piece of code is that:
The inner equal only works because it itself doesn't have a predicate.
The outer equal works because it takes arguments.

However, neither of this works:
alias fun = equal!equal; //Nope
equal!(equal!equal))(3Dmatrix1, 3Dmatrix2); //Nope

It is *not* possible to declare an algorithm function with a predicate, unless
you also specify the argument types. Long story short, they are not eagerly
specialize-able.

equal (I think) is the most obvious offender, but so are any/all:
import std.ascii : isWhite;
assert( all!(any!isWhite)([a a, b b])); //Nope
assert(!any!(all!isWhite)([a a, b b])); //Nope

Any function that takes a pred (+an argument) and returns a bool is faulty.
Here is a (probably incomplete) list:
-equal
-canFind
-any
-all
-cmp

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11404] New: Assertion failure: '0' on line 1215 in file 'glue.c'

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11404

   Summary: Assertion failure: '0' on line 1215 in file 'glue.c'
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: agustin.l.alva...@hotmail.com


--- Comment #0 from Agustin agustin.l.alva...@hotmail.com 2013-10-31 13:03:51 
PDT ---
Using TypeTuple as value in an associative array won't work.

Example:
   TypeTuple!(int, int)[string] my_map;

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11365] Allow D source file names to have no extension (or an arbitrary extension)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11365



--- Comment #17 from Dicebot pub...@dicebot.lv 2013-10-31 13:27:13 PDT ---
(In reply to comment #15)
 That's not true. It can't have a .lib extension, or an .obj/.o extension.

This is purely a problem of how DMD argument list is designed, not meaningful
limitation. And yet another example of what apps shouldn't do.

 Arbitrary extensions means import switches will not work, the compiler won't
 know which files it has to inspect to find D code. So this feature will be
 useful for scripts and in cases where you're explicitly passing all files to
 DMD.

Exactly. And someone who wants to use arbitrary extensions will be aware that
he is stepping aside from common naming convention and thus losing some
convenience offered by compiler. It is perfectly expected.

 (In reply to comment #10)
  As I have already mentioned in NG, the very idea that file extension should
  have any relation with its content is just plain wrong and needs to be
  discouraged, as well as any arbitrary limitations that may impose.
 
 That's exactly what happens when you allow arbitrary extensions, tools end up
 inventing their own semantics *based on* the extension:
 ...
 See what I mean? 

It is exactly what happens when _someone_ (compiler, tools, whatever) decides
to strictly couple some behavior exclusively to extension. See what I mean? :)

  In other words, it is not a as much of a problem of DMD codebase that is 
  uses
  .c for C++ code, it is a problem of IDE's/tools that assume it is a C code
  without providing any convenient way to override that assumption.
 
 So now every tool in existence has to do heuristics on text files? 

Yes if it is important (there are standard tools for that like famous file
command). In most cases though it should just try interpret input as if it is
legal file and fail in process if it has garbage. Similar to how it will fail
if you put garbage into .d file. And context of interpretation should be
defined by compiler switches, configuration files or some other external thing.
Using default interpretation defined by convention like file extension is also
fine if it can be overridden with a manual option.

 The benefit
 of having known and defined extensions is to make it easier to figure out what
 a file is without having to open it, to make it easier to filter through a
 directory of files and organize them based on their extension.

As I have said, crazy DOS legacy. Luckily, most Linux file managers don't do
this and actually explore file metadata.

 Using .c for C++ files is Walter's fault and nobody else's. There are no
 excuses here.

There are no excuses but there is also no disaster. It is bad to break common
practice but any sane IDE will allow to trivially configure mapping of .c files
to C++ semantics. Just as they should do.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10403] memchr optimization for std.algorithm.find

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10403



--- Comment #6 from github-bugzi...@puremagic.com 2013-10-31 13:32:19 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/67e3c321a880dbeb29f69fe46efffa5f19aac633
fix Issue 10403 - memchr optimization for std.algorithm.find

https://github.com/D-Programming-Language/phobos/commit/482d0e161b04fa1eade0937deecc964d23bca88f
Merge pull request #1492 from monarchdodra/findImprov

fix Issue 10403 - memchr optimization for std.algorithm.find

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11171] Text relocations in Phobos shared library

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11171


Martin Krejcirik m...@krej.cz changed:

   What|Removed |Added

 CC||m...@krej.cz


--- Comment #2 from Martin Krejcirik m...@krej.cz 2013-10-31 22:43:50 CET ---
Just noticed this too. It makes shared libraries unusable on hardened system
(like grsecurity).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11171] Text relocations in Phobos shared library

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11171



--- Comment #4 from Martin Krejcirik m...@krej.cz 2013-10-31 23:07:52 CET ---
(In reply to comment #3)
 Duplicate of #5278?

Likely, but it's not just Gentoo. I use Grsecurity kernel on Debian and get
this error:

./prog: error while loading shared libraries:
/usr/local/lib/libphobos2.so.0.64: cannot make segment writable for relocation:
Permission denied

The only solution is to disable MPROTECT for given exacutable.
http://pax.grsecurity.net/docs/mprotect.txt

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11171] Text relocations in Phobos shared library

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11171


safety0ff.bugz safety0ff.b...@gmail.com changed:

   What|Removed |Added

 CC||safety0ff.b...@gmail.com


--- Comment #3 from safety0ff.bugz safety0ff.b...@gmail.com 2013-10-31 
14:55:11 PDT ---
Duplicate of #5278?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11171] Text relocations in Phobos shared library

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11171



--- Comment #5 from safety0ff.bugz safety0ff.b...@gmail.com 2013-10-31 
15:10:09 PDT ---
(In reply to comment #4)
 (In reply to comment #3)
  Duplicate of #5278?
 
 Likely, but it's not just Gentoo.
I'm aware, it should probably be renamed.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11403] functions in std.algo can't be used as pred

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11403



--- Comment #1 from monarchdo...@gmail.com 2013-10-31 15:33:42 PDT ---
https://github.com/D-Programming-Language/phobos/pull/1676

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10403] memchr optimization for std.algorithm.find

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10403


monarchdo...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11405] New: rdmd should limit it's tmp cache

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11405

   Summary: rdmd should limit it's tmp cache
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: c...@dawg.eu


--- Comment #0 from Martin Nowak c...@dawg.eu 2013-10-31 16:28:42 PDT ---
Old discussion but still a valid issue.
http://forum.dlang.org/thread/gomtj5$1iut$1...@digitalmars.com
Rdmd needs a reasonable policy to evict old cached folders.
A simple solution would be to delete an existing folder with the same
first 2-3 bytes of the digest. This means we'd have to lock the folders
to synchronize different rdmd processes.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11237] zero initializer emitted to read-only data segment, slow compilation

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11237


Martin Nowak c...@dawg.eu changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


--- Comment #6 from Martin Nowak c...@dawg.eu 2013-10-31 18:39:41 PDT ---
The broke struct initializers.
They are emitted to object files with a symbol size of 1 byte regardless of
their actual size.
Also I wonder why the initializer are now common symbols ('V') while they
previously were normal uninitialized variables ('B').

Test case

cat  bug.d  CODE
struct Buffer { ubyte[64 * 1024] buffer; }
CODE

dmd2.063.2 -c bug
nm -S bug.o
 0001 B _D4bug26Buffer6__initZ

// 1-byte size and weak object
dmd2.064 -c bug
nm -S bug.o
 0001 V _D4bug26Buffer6__initZ

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11237] zero initializer emitted to read-only data segment, slow compilation

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11237


Martin Nowak c...@dawg.eu changed:

   What|Removed |Added

   Keywords||pull, wrong-code


--- Comment #7 from Martin Nowak c...@dawg.eu 2013-10-31 19:37:39 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2701

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11406] New: ld.gold links incorrect dmd binaries

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11406

   Summary: ld.gold links incorrect dmd binaries
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: link-failure
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: c...@dawg.eu


--- Comment #0 from Martin Nowak c...@dawg.eu 2013-10-31 20:39:09 PDT ---
cat  bug.d  CODE
import std.stdio;

void main()
{
writefln(Hello %1$s!, World);
}
CODE

dmd -run bug



When debugging this gdb constantly barks that it can't find the function
frames.
In this specific program the format spec is incorrect.
It seems that some data/code is corrupted when linking with gold.
We should investigate whether this is an issue in dmd's codegen.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11407] New: can't move struct with disabled default constructor

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11407

   Summary: can't move struct with disabled default constructor
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: c...@dawg.eu


--- Comment #0 from Martin Nowak c...@dawg.eu 2013-10-31 22:37:31 PDT ---
cat  bug.d  CODE
import std.algorithm;

struct Unique
{
int* _p;

@disable this(this);// non-copyable
~this() { _p = null; }  // release resource
@disable this();// non-null
this(int* p) { _p = p; }// acquire resource
}

Unique bug(Unique u)
{
return move(u);
}
CODE

dmd -c bug



The use-case is to encapsulate unique ownership in a struct.
It seems the static T empty; in move() is only need to reinitialized the moved
value. Maybe it could be done with destroy or by copying from
typeid(T).init().ptr.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11392] dirEntries segfaults (fails in 2.064 beta 4, works in 2.063.2)

2013-10-31 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11392


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 CC||bugzi...@digitalmars.com
   Platform|All |x86_64
 OS/Version|All |Mac OS X


--- Comment #5 from Walter Bright bugzi...@digitalmars.com 2013-10-31 
22:36:59 PDT ---
I can confirm this seg faults on OSX, 64 bits only.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---