[Issue 13347] New: rdmd: let args[0] be the .d file
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Wed Aug 20 13:43:05 PDT 2014
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 at puremagic.com
Reporter: nilsbossung at 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
---
--
More information about the Digitalmars-d-bugs
mailing list