rund users welcome

Jonathan Marler johnnymarler at gmail.com
Tue Sep 11 15:20:51 UTC 2018


On Tuesday, 11 September 2018 at 08:53:46 UTC, Kagamin wrote:
> On Saturday, 8 September 2018 at 04:24:20 UTC, Jonathan Marler 
> wrote:
>> https://github.com/marler8997/rund
>
> I have an idea how to push shebang to userland and make it 
> crossplatform: if, say, `rund -install prog.d` would copy/link 
> itself into current folder under name "prog" and when run would 
> work with file args[0]~".d", this will work the same on all 
> platforms without shebang.

So your idea is that you could run `rund -install prog.d` which 
would create some sort of file that allows you to run `./prog` 
(on POSIX) or `prog` (on WINDOWS).

So something like this:

/path/prog.d

Posix:
/path/prog -> /usr/bin/rund

Windows 10 (It supports symbolic links)
/path/prog.exe -> C:\Programs\rund.exe

Windows <10
/path/prog.exe (a copy of rund.exe)


Then this would allow you to run "/path/prog" and which would 
invoke rund and like you said we could take "argv[0]" and assume 
that's the main source file.

The Posix/Windows 10 cases seem fine, but Windows <10 is not 
great. In this case it has to keep an entire copy of rund around 
(currently 1.8M). I think we can do better.  Instead, `rund 
-install prog.d` could generate a little "wrapper program" that 
forwards any calls to rund.  You could make this wrapper program 
with a small D program, or with this BATCH script:

--- /path/prog.bat
@rund %~dp0prog.d %*

You get the same result. When you run "\path\prog" it will invoke 
rund with the given args for prog.d. Thoughts?



More information about the Digitalmars-d mailing list