Closed kforner closed 6 years ago
I have just discovered your package and I am already a big fan !
Thanks!
Do you know the Smart::Comment perl package ? It uses the same kind of approach, using comments instead of string litterals (which you can not since R discards them in parsed code).
Yeah, that's why I am using string literals.
You set the level of the debugging by the number of '#', eg.
### is a level 1 debug
#### is a level2 debug
and you can select the debugging level at execution time using the Smart_Comment env var, e.g. Smart_Comment=###:#### ./my_script.pl which I think is nice since when you want to debug a script, you do not a priori know which packages it uses (can be indirect), so selecting the package via DEBUG_ME might not be the most convenient approach. What do you think ?
I thinks these are great ideas! AFAICT there are two possible improvements that we could make. One is setting the debug level of the messages, the way you propose. I would you exclamation marks, so that it is compatible with the current syntax:
"!DEBUG level 1"
...
"!!DEBUG level 2"
etc.
The other is auto-debugging. TBH I am not sure if this is useful enough in practice, because most packages do not use debugme
. But I can imagine two improvements for it:
DEBUGME="all"
would debug all packages (that support debugme
, obviously). Maybe we can also have an "all packages except these" syntax.debugme
, so you'll have a rough idea what kind of messages to expect.What do you think?
[I've updated my previous post]
I agree with the ! to indicate the debugging level.
as I wrote, maybe just DEBUGME=":1" to turn on debugging level 1 for all packages ?
Cool. Yeah, basically we just need to work out a good syntax now. I see your point about DEBUGME=":1"
. I like the explicit DEBUGME="all"
as well. So how about sg like this:
DEBUGME="pkg1,pkg2"
DEBUGME="!!pkg1,pkg2"
DEBUGME="all"
DEBUGME="!!!all"
DEBUGME="all,-except1,-except2"
DEBUGME="!!!all,-except1"
looks good !
OK, log levels are now supported. all
and the -package
notation are not yet. I'll open separate issues for those.
Hi Gabor,
I have just discovered your package and I am already a big fan ! Do you know the Smart::Comment perl package ? It uses the same kind of approach, using comments instead of string litterals (which you can not since R discards them in parsed code).
You set the level of the debugging by the number of '#', eg.
### is a level 1 debug
#### is a level2 debug
and you can select the debugging level at execution time using the Smart_Comment env var, e.g.Smart_Comment=###:#### ./my_script.pl
which I think is nice since when you want to debug a script, you do not a priori know which packages it uses (can be indirect), so selecting the package via DEBUGME might not be the most convenient approach.Maybe the syntax could be expanded like this: DEBUGME=mypkg : turns on debugging for mypkg DEBUGME=mypkg:1 turns on debugging level 1 for mypkg DEBUGME=mypkg1:1,mypkg2:3 DEBUGME=1 turns on debugging level 1 for all packages
What do you think ?
Karl