digitalmars.D.bugs - [Issue 13347] New: rdmd: let args[0] be the .d file
- via Digitalmars-d-bugs (47/47) Aug 20 2014 https://issues.dlang.org/show_bug.cgi?id=13347
https://issues.dlang.org/show_bug.cgi?id=13347 Issue ID: 13347 Summary: rdmd: let args[0] be the .d file Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: tools Assignee: nobody puremagic.com Reporter: nilsbossung googlemail.com When rdmd is used to sort-of interpret a .d file, it's actually compiled to a temporary executable and then run. As usual, args[0] is then the temporary executable. That path is next to useless, though. Other interpreters (bash, python, perl, php) pass the script file as args[0]. This allows to write scripts that act relative to the script file, no matter from where they were run. Would be nice if rdmd did that, too. This would be a breaking change, of course. But I can't imagine someone making use of the path to the temporary. --- cat > test.d << code import std.stdio; void main(string[] args) {writeln(args[0]);} code rdmd test.d --- /tmp/.rdmd-1000/rdmd-test.d-C7F94BC2B631D6BDE0380D58270F3E01/test --- Compare with bash, python, perl, php: --- echo 'echo $0' > test.sh bash test.sh echo 'print "$0\n"' > test.pl perl test.pl echo 'import sys; print sys.argv[0]' > test.py python test.py echo '<?php echo "{$argv[0]}\n";' > test.php php test.php --- test.sh test.pl test.py test.php --- --
Aug 20 2014