www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 3321] New: debug flags

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=3321

           Summary: debug flags
           Product: D
           Version: 2.031
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: ellery-newcomer utulsa.edu


--- Comment #0 from Ellery Newcomer <ellery-newcomer utulsa.edu> 2009-09-16
20:12:35 PDT ---
test.d:

debug pragma(msg,"hi!");
void main() {}


$ dmd2 test
(no output)

$ dmd2 -debug test
hi!

$ dmd2 -debug=1 test
hi!

$ dmd2 -debug=ellery test
(no output)                      WHAT???????

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 16 2009
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=3321



--- Comment #1 from Ellery Newcomer <ellery-newcomer utulsa.edu> 2009-09-16
20:23:48 PDT ---
a quick peek in the source shows that debug <=> debug(1)

is this sane behavior?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 16 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=3321


Ary Borenszweig <ary esperanto.org.ar> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ary esperanto.org.ar


--- Comment #2 from Ary Borenszweig <ary esperanto.org.ar> 2009-09-17 04:18:53
PDT ---
Yes, that's normal behaviour. And:

$ dmd2 -debug=ellery test

will print "hi!" if the code is:

debug(ellery) pragma(msg,"hi!");
void main() {}

I won't close this as invalid because the specification doesn't say exactly
this. It says:

---
The debug condition is satisfied when the -debug switch is thrown on the
compiler.

The debug ( Integer ) condition is satisfied when the debug level is >=
Integer.

The debug ( Identifier ) condition is satisfied when the debug identifier
matches Identifier. 
---

It should say:

The debug condition is satisfied when the -debug switch is thrown on the
compiler or when a debug level >= 1 is indicated.

(or something like that)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 17 2009
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=3321



--- Comment #3 from Ellery Newcomer <ellery-newcomer utulsa.edu> 2009-09-17
07:44:38 PDT ---
(In reply to comment #2)
 Yes, that's normal behaviour.

According to whom? The C preprocessor? When I read the spec, I came away with the impression that debug should work like so: debug { stuff } should get compiled if the compiler is given -debug or -debug={something}. Basically, I see it as a boolean. Are we in a debug compile? debug(number) { stuff } should get compiled if the compiler is given -debug=n, where n >= number (and there's nothing that says debug(0) { stuff } will always get compiled) wait, I'm seeing a pattern here 1 -> true, 0 -> false. That sorta makes sense. debug(id) { stuff } should get compiled if the compiler is given -debug=id Yeah, spec needs to be more precise. I would like to see -debug=id => debug_level=1, though. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 17 2009