On Sunday, 11 July 2021 at 13:39:15 UTC, Jacob Carlborg wrote:
Some other differences:
* DVM is cross-platform. Diva seems to only run on Ubuntu.
* DVM is implemented in D (with a tiny shell script wrapper).
Diva depends on Python
* DVM does not use symlinks. When invoking the compiler it's
the actual executable that's invoked directly
* DVM provides a built-in command to install itself and do any
setup
--
/Jacob Carlborg
Fair points here.
It's stated in the readme but just to be really clear: I wrote
this mainly for my own use. It may or may not work for you
out-of-the-box. I put it on GitHub with an MIT license in case it
might be useful to others. It's definitely not a polished
production-ready piece of software.
* DVM is cross-platform. Diva seems to only run on Ubuntu.
Well, not exactly.
I wrote Diva in a couple of evenings this past week and I haven't
had an opportunity to test it on other platforms than Ubuntu so
far. I'm confident it will work with other Linux distros (though
it might have problems on ARM platforms; it can't build DMD or
LDC from source yet which means if there's not a prebuilt binary
then Diva can't help you) and I'm reasonably sure it will work
with MacOS without any changes. There's a fair chance it will
break down on Windows. Even though there's some logic
specifically to try to handle Windows, I just haven't tested it
yet.
If you want to use it on your platform and run into difficulties,
the script is fairly simple and fairly well documented and so
hopefully feasible to troubleshoot things for yourself. I'm happy
to accept a PR if you find and fix issues like this.
* DVM is implemented in D (with a tiny shell script wrapper).
Diva depends on Python
Yep. It was faster for me to write it in Python. I'm personally
much more familiar with Python's tools for making HTTP requests
and for extracting compressed archives than I am with D's, and my
goal here was to just have something usable for myself in little
time.
If someone wanted to rewrite Diva in D and make sure there's a
handy script to bootstrap it if a D compiler isn't already
locally available, that would be fantastic.
* DVM does not use symlinks. When invoking the compiler it's
the actual executable that's invoked directly
Yep, symlinking is a fairly standard way to handle this sort of
thing, and it's how I wanted to do it on my system. If you prefer
to do it differently on your system, you could take Diva's
downloading and installation system as a starting point and
revise its "use"/"disuse" logic.
If it's compatible/configuration-switchable with the symlink
implementation, I'd be happy to accept a PR that added this sort
of thing.
* DVM provides a built-in command to install itself and do any
setup
Yep, the Diva install process is very slightly more complicated
in that you will have to find your bashrc (or equivalent) on your
own after using `pip install .` and paste a few lines in
according to the instructions in the readme.