DVM - D Version Manager 0.5.0
I would like to announce a new release of DVM, 0.5.0. This release contains two important bug fixes: making the Dub binary executable and downloading the latest compiler, i.e. the `-l` flag now works again. The release and binaries are available here [1]. I might upload a FreeBSD binary later, if I get that to work. For those not familiar with DVM: DVM allows you to easily download and install D compilers and manage different versions of the compilers. Full changelog: New/Changed Features: * Add a flag to print the version of DVM, `--version` Bugs Fixed: * Fixed installing the latest compiler, that is using the `-l` flag * Issue 44: Make dub executable * Issue 42: Doesn't compile with recent compilers (e.g. dmd-2.074.1) [1] https://github.com/jacob-carlborg/dvm/releases/tag/v0.5.0 -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.4
On Wednesday, 4 July 2018 at 19:14:57 UTC, Jacob Carlborg wrote: On 2018-07-03 03:34, Tony wrote: Thanks, that worked! It doesn't announce where it put the compiler, which turns out to be: C:\Users\\AppData\Roaming\dvm\ You're not supposed to know where it puts the compiler. You're activating it with "dvm use " where "" is the version you want to activate. This will persist for the end of the shell session. To set a default compiler use "dvm use -d". This allows to use separate versions simultaneously in different shell sessions. See the usage information [1]. [1] https://github.com/jacob-carlborg/dvm#use-a-compiler I should have done a little more reading. Thanks, and thanks for writing it!
Re: DVM - D Version Manager 0.4.4
On 2018-07-03 03:34, Tony wrote: Thanks, that worked! It doesn't announce where it put the compiler, which turns out to be: C:\Users\\AppData\Roaming\dvm\ You're not supposed to know where it puts the compiler. You're activating it with "dvm use " where "" is the version you want to activate. This will persist for the end of the shell session. To set a default compiler use "dvm use -d". This allows to use separate versions simultaneously in different shell sessions. See the usage information [1]. [1] https://github.com/jacob-carlborg/dvm#use-a-compiler -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.4
On Monday, 2 July 2018 at 18:31:50 UTC, Steven Schveighoffer wrote: I still use dvm (this version 0.4.4 is the latest I believe). It still works, at least on OSX. But the errors it throws are not very user friendly, most of the time you get a stack trace. I've never used the --latest switch (which BTW fails on OSX as well). Likely it's a change in how the metadata is stored on the server. Just install by name: dvm install 2.080.1 Thanks, that worked! It doesn't announce where it put the compiler, which turns out to be: C:\Users\\AppData\Roaming\dvm\
Re: DVM - D Version Manager 0.4.4
On 7/2/18 3:36 AM, Tony wrote: On Monday, 2 July 2018 at 07:12:47 UTC, Basile B. wrote: On Monday, 2 July 2018 at 06:21:53 UTC, Tony wrote: On Sunday, 13 September 2015 at 16:26:04 UTC, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.4. The most important I am on Windows 10. Is: dvm --latest install a valid way to get the latest dmd? When I try that I get an exception Seems unmaintained. Try Cybershadow's Digger which can handle building several versions of DMD too (https://github.com/CyberShadow/Digger), even from locally served webpage as UI. OK, thanks! I saw DVM mentioned in a thread recently and I went back and couldn't find it and found this one via a search. The one I saw may have been a very old thread that someone revived. I still use dvm (this version 0.4.4 is the latest I believe). It still works, at least on OSX. But the errors it throws are not very user friendly, most of the time you get a stack trace. I've never used the --latest switch (which BTW fails on OSX as well). Likely it's a change in how the metadata is stored on the server. Just install by name: dvm install 2.080.1 -Steve
Re: DVM - D Version Manager 0.4.4
On Monday, 2 July 2018 at 07:12:47 UTC, Basile B. wrote: On Monday, 2 July 2018 at 06:21:53 UTC, Tony wrote: On Sunday, 13 September 2015 at 16:26:04 UTC, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.4. The most important I am on Windows 10. Is: dvm --latest install a valid way to get the latest dmd? When I try that I get an exception Seems unmaintained. Try Cybershadow's Digger which can handle building several versions of DMD too (https://github.com/CyberShadow/Digger), even from locally served webpage as UI. OK, thanks! I saw DVM mentioned in a thread recently and I went back and couldn't find it and found this one via a search. The one I saw may have been a very old thread that someone revived.
Re: DVM - D Version Manager 0.4.4
On Monday, 2 July 2018 at 07:12:47 UTC, Basile B. wrote: On Monday, 2 July 2018 at 06:21:53 UTC, Tony wrote: On Sunday, 13 September 2015 at 16:26:04 UTC, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.4. The most important I am on Windows 10. Is: dvm --latest install a valid way to get the latest dmd? When I try that I get an exception Seems unmaintained. Try Cybershadow's Digger which can handle building several versions of DMD too (https://github.com/CyberShadow/Digger), even from locally served webpage as UI. There's this too https://dlang.org/install.html. Maybe it would work with w10 linux subsystem, i cant say by complete lack of win10 experience.
Re: DVM - D Version Manager 0.4.4
On Monday, 2 July 2018 at 06:21:53 UTC, Tony wrote: On Sunday, 13 September 2015 at 16:26:04 UTC, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.4. The most important I am on Windows 10. Is: dvm --latest install a valid way to get the latest dmd? When I try that I get an exception Seems unmaintained. Try Cybershadow's Digger which can handle building several versions of DMD too (https://github.com/CyberShadow/Digger), even from locally served webpage as UI.
Re: DVM - D Version Manager 0.4.4
On Sunday, 13 September 2015 at 16:26:04 UTC, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.4. The most important I am on Windows 10. Is: dvm --latest install a valid way to get the latest dmd? When I try that I get an exception -- dvm --latest install An unknown error occurred: tango.core.Exception.IOException@C:\Users\doob\AppData\Roaming\dub\packages\tango-1.0.1_2.067\tango\core\Exception.d(59): truncated response 0x004421D4 0x00441ECD 0x00441688 0x0040A637 0x0040A4F5 0x004334EA 0x0044FC5B 0x0044FB71 0x004021E8 0x769B8484 in BaseThreadInitThunk 0x77252FEA in RtlValidSecurityDescriptor 0x77252FBA in RtlValidSecurityDescriptor
Re: DVM - D Version Manager 0.4.3
On 04/09/14 21:50, Jordi Sayol via Digitalmars-d-announce wrote: El 03/09/14 a les 08:10, Jacob Carlborg via Digitalmars-d-announce ha escrit: I only chose Debian because it's a stable/old system with a high chance of being binary compatible with other distributions. On Debian 7.6 64-bit I got this error: $ dvm dvm: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by dvm) libc6 on Debian 7.6 (stable) is v2.13. Hmm, ok. I'm pretty sure I'm using a vanilla Debian 7 for building the 64bit release. I'm not sure the exact minor version. On Debian testing: $ dvm install 2.065.0 Fetching: http://ftp.digitalmars.com/dmd.2.065.0.zip [] 50581/49347 KB Installing: dmd-2.065.0 An unknown error occurred: tango.core.Exception.IOException@/home/doob/development/d/tango/tango/core/Exception.d(59): /home/jordi/.dvm/bin/dmd-2.065.0 :: No such file or directory ... After manually created this directory and properly install dmd 2.065.0: $ dvm use 2.065.0 $ dmd bash: dmd: command not found What I'm doing wrong? You need to install DVM first: dvm install dvm. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
On 05/09/14 00:30, Nick Sabalausky wrote: Then again, I'm not sure that should matter if you're manually running dvm use Yes it will matter. It's the DVM bash function that makes everything work with the PATH variable. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
On 04/09/14 22:51, Jordi Sayol via Digitalmars-d-announce wrote: On Debian testing (mate desktop) without ~/.dvm dir, dmd still not found: $ dvm install dvm $ dvm install 2.065.0 Fetching: http://ftp.digitalmars.com/dmd.2.065.0.zip [] 50581/49347 KB Installing: dmd-2.065.0 $ dvm use 2.065.0 $ dmd bash: dmd: command not found BTW Is there a reason to mandatory copy dvm to ~/.dvm/bin directory? Yes. DVM works like this: * When invoking dvm on the command line a bash function is actually called * The bash function will forward to the dvm executable located in ~/.dvm/bin * When running dvm use 2.065.0 the executable it will write a shell script setting up the PATH variable to point to path of the install compiler with the specified version. In this case which will be ~/.dvm/compilers/dmd-2.065.0/linux/bin * When the dvm executable has finished running the dvm function will source the shell script which modifies the PATH variable in the current session This is the only why I found to propagate environment variables from a child process (dvm) to the parent process (the shell) When running dvm install dvm, dvm will do the following: * Setup the necessary directory structure in ~/.dvm * Install the shell script containing [1] the dvm bash function to ~/.dvm/scripts * Copy itself to ~/.dvm/bin * Add a couple of lines to .bash_profile or .bashrc that sources the dvm script: if [ -s ~/.dvm/scripts/dvm ] ; then . ~/.dvm/scripts/dvm fi I wanted the installation process to be as easy as possible, what's why I wrote an installer in the tool. Yes I know, that's not how most tools work like. But it do require some special setup and most tools don't require. [1] https://github.com/jacob-carlborg/dvm/blob/master/resources/dvm.sh -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
On 05/09/14 01:02, Jordi Sayol via Digitalmars-d-announce wrote: GNU bash, version 4.3.24(1)-release (i586-pc-linux-gnu) You can validate the installation by running: $ type dvm | head -n 1 It should print dvm is a function. If it doesn't, dvm is not installed correctly. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
On 04/09/14 21:53, Jordi Sayol via Digitalmars-d-announce wrote: Sorry, i forget to mention that on Debian testing, my desktop is Mate http://mate-desktop.org/ Actually, I'm using Mate as well. Perhaps that's the issue. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
On Friday, 5 September 2014 at 06:26:30 UTC, Jacob Carlborg wrote: On 04/09/14 21:53, Jordi Sayol via Digitalmars-d-announce wrote: Sorry, i forget to mention that on Debian testing, my desktop is Mate http://mate-desktop.org/ Actually, I'm using Mate as well. Perhaps that's the issue. Unlikely. DVM seems to work really the same as RVM (for Ruby). Similar problems with RVM usually come from problems with the shell profile. Mostly it can be solved by starting a new shell or sourcing the .bash_profile script in your current shell (it's only read at startup): . ~/.bash_profile or . ~/.bashrc
Re: DVM - D Version Manager 0.4.3
On Thursday, 4 September 2014 at 18:24:10 UTC, Jacob Carlborg wrote: On 2014-09-04 10:40, Chris wrote: Weird, I did try the zero at the end (as described on the homepage*), yet I got an error. Maybe I typed a comma instead of a . without realizing it. However, I'm almost sure I didn't type the zero when installing 2.066 and I got the right version. DVM just takes the argument you give it, in this case 2.066. Then it prepends dmd. and appends .zip forming something like this: dmd.2.066.zip Then it prepends ftp://ftp.digitalmars.com/; to that filename. If there is a file matching that name in the Digital Mars FTP it will work. As you can see, there is no file named dmd.2.066.zip, so you must have used 2.066.0. Chances are I did, yeah. It's hard to remember later what I typed exactly once the shell is closed. Would there be a way to download the latest version by default, if the user types install 2.066 or just install [dmd]? If there isn't, what could be done on the dmd side of things to facilitate this? DVM is a pretty handy tool, but it still has some rough edges. I think it could one day be part of a D Development Framework (DDF). Please keep it up. If you've seen this mistake several times, maybe it would be good to point it out under Usage. And maybe having/trying more than one mirror would be good too, if it makes sense for DVM. There is no mirror, as far as I know.
Re: DVM - D Version Manager 0.4.3
On 05/09/14 10:27, Marc Schütz schue...@gmx.net wrote: On Friday, 5 September 2014 at 06:26:30 UTC, Jacob Carlborg wrote: On 04/09/14 21:53, Jordi Sayol via Digitalmars-d-announce wrote: Sorry, i forget to mention that on Debian testing, my desktop is Mate http://mate-desktop.org/ Actually, I'm using Mate as well. Perhaps that's the issue. Unlikely. DVM seems to work really the same as RVM (for Ruby). Similar problems with RVM usually come from problems with the shell profile. Mostly it can be solved by starting a new shell or sourcing the .bash_profile script in your current shell (it's only read at startup): . ~/.bash_profile or . ~/.bashrc Yes, it works basically the same as RVM, but it's written in D (mostly) instead of shell script. I was more thinking of the issue with wrong version of Glibc, which is unrelated to the shell. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
On 05/09/14 11:32, Chris wrote: Chances are I did, yeah. It's hard to remember later what I typed exactly once the shell is closed. Would there be a way to download the latest version by default, if the user types install 2.066 or just install [dmd]? Just run dvm install -l and it will install the latest version. If there isn't, what could be done on the dmd side of things to facilitate this? Be consistent with the versioning scheme. But since Andrew has been responsible for the releases and the release process is mostly automated I think this is solved now (hopefully). DVM is a pretty handy tool, but it still has some rough edges. I think it could one day be part of a D Development Framework (DDF). Please keep it up. Thanks. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
On 03/09/14 17:55, Chris wrote: Methinks DVM doesn't get it right. 2.065.zip is available here: ftp://ftp.digitalmars.com/dmd.2.065.0.zip (cf. http://forum.dlang.org/thread/ebvumaoniuukgjbow...@forum.dlang.org) But DVM tries to access it via http: Fetching: http://ftp.digitalmars.com/dmd.2.065.zip An unknown error occurred: tango.core.Exception.IOException@/home/doob/development/d/tango/tango/core/Exception.d(59): The resource with URL http://ftp.digitalmars.com/dmd.2.065.zip; could not be found. DVM will try to fetch the exact version you specify. The version, in this particular case, is 2.065.0. Note the extra zero at the end. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
On 03/09/14 21:58, Sean Kelly wrote: For what it's worth, if you do dvm install 2.065.0 it will find it. Not sure if DVM should try alternates or not though. I've seen this mistake several times, missing the extra zero at the end. Perhaps adding a special case for that. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
On Thursday, 4 September 2014 at 06:06:04 UTC, Jacob Carlborg wrote: On 03/09/14 21:58, Sean Kelly wrote: For what it's worth, if you do dvm install 2.065.0 it will find it. Not sure if DVM should try alternates or not though. I've seen this mistake several times, missing the extra zero at the end. Perhaps adding a special case for that. Weird, I did try the zero at the end (as described on the homepage*), yet I got an error. Maybe I typed a comma instead of a . without realizing it. However, I'm almost sure I didn't type the zero when installing 2.066 and I got the right version. If you've seen this mistake several times, maybe it would be good to point it out under Usage. And maybe having/trying more than one mirror would be good too, if it makes sense for DVM. * https://github.com/jacob-carlborg/dvm
Re: DVM - D Version Manager 0.4.3
On 2014-09-04 10:40, Chris wrote: Weird, I did try the zero at the end (as described on the homepage*), yet I got an error. Maybe I typed a comma instead of a . without realizing it. However, I'm almost sure I didn't type the zero when installing 2.066 and I got the right version. DVM just takes the argument you give it, in this case 2.066. Then it prepends dmd. and appends .zip forming something like this: dmd.2.066.zip Then it prepends ftp://ftp.digitalmars.com/; to that filename. If there is a file matching that name in the Digital Mars FTP it will work. As you can see, there is no file named dmd.2.066.zip, so you must have used 2.066.0. If you've seen this mistake several times, maybe it would be good to point it out under Usage. And maybe having/trying more than one mirror would be good too, if it makes sense for DVM. There is no mirror, as far as I know. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
El 03/09/14 a les 08:10, Jacob Carlborg via Digitalmars-d-announce ha escrit: I only chose Debian because it's a stable/old system with a high chance of being binary compatible with other distributions. On Debian 7.6 64-bit I got this error: $ dvm dvm: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by dvm) libc6 on Debian 7.6 (stable) is v2.13. On Debian testing: $ dvm install 2.065.0 Fetching: http://ftp.digitalmars.com/dmd.2.065.0.zip [] 50581/49347 KB Installing: dmd-2.065.0 An unknown error occurred: tango.core.Exception.IOException@/home/doob/development/d/tango/tango/core/Exception.d(59): /home/jordi/.dvm/bin/dmd-2.065.0 :: No such file or directory ... After manually created this directory and properly install dmd 2.065.0: $ dvm use 2.065.0 $ dmd bash: dmd: command not found What I'm doing wrong? Regards, -- Jordi Sayol
Re: DVM - D Version Manager 0.4.3
Sorry, i forget to mention that on Debian testing, my desktop is Mate http://mate-desktop.org/ Regards, -- Jordi Sayol
Re: DVM - D Version Manager 0.4.3
On 9/4/2014 3:50 PM, Jordi Sayol via Digitalmars-d-announce wrote: On Debian testing: $ dvm install 2.065.0 Fetching: http://ftp.digitalmars.com/dmd.2.065.0.zip [] 50581/49347 KB Installing: dmd-2.065.0 An unknown error occurred: tango.core.Exception.IOException@/home/doob/development/d/tango/tango/core/Exception.d(59): /home/jordi/.dvm/bin/dmd-2.065.0 :: No such file or directory ... After manually created this directory and properly install dmd 2.065.0: $ dvm use 2.065.0 $ dmd bash: dmd: command not found What I'm doing wrong? dvm install dvm
Re: DVM - D Version Manager 0.4.3
El 04/09/14 a les 22:17, Nick Sabalausky via Digitalmars-d-announce ha escrit: What I'm doing wrong? dvm install dvm On Debian testing (mate desktop) without ~/.dvm dir, dmd still not found: $ dvm install dvm $ dvm install 2.065.0 Fetching: http://ftp.digitalmars.com/dmd.2.065.0.zip [] 50581/49347 KB Installing: dmd-2.065.0 $ dvm use 2.065.0 $ dmd bash: dmd: command not found BTW Is there a reason to mandatory copy dvm to ~/.dvm/bin directory? -- Jordi Sayol
Re: DVM - D Version Manager 0.4.3
On 9/4/2014 4:51 PM, Jordi Sayol via Digitalmars-d-announce wrote: El 04/09/14 a les 22:17, Nick Sabalausky via Digitalmars-d-announce ha escrit: What I'm doing wrong? dvm install dvm On Debian testing (mate desktop) without ~/.dvm dir, dmd still not found: $ dvm install dvm $ dvm install 2.065.0 Fetching: http://ftp.digitalmars.com/dmd.2.065.0.zip [] 50581/49347 KB Installing: dmd-2.065.0 $ dvm use 2.065.0 $ dmd bash: dmd: command not found BTW Is there a reason to mandatory copy dvm to ~/.dvm/bin directory? Hmm, may wanna check your .bashrc. Unless it's changed since last time I looked, the Posix versions of dvm work by adding code to .bashrc which set up dmd as an alias. Then again, I'm not sure that should matter if you're manually running dvm use Are you maybe not using bash?
Re: DVM - D Version Manager 0.4.3
El 05/09/14 a les 00:30, Nick Sabalausky via Digitalmars-d-announce ha escrit: On 9/4/2014 4:51 PM, Jordi Sayol via Digitalmars-d-announce wrote: El 04/09/14 a les 22:17, Nick Sabalausky via Digitalmars-d-announce ha escrit: What I'm doing wrong? dvm install dvm On Debian testing (mate desktop) without ~/.dvm dir, dmd still not found: $ dvm install dvm $ dvm install 2.065.0 Fetching: http://ftp.digitalmars.com/dmd.2.065.0.zip [] 50581/49347 KB Installing: dmd-2.065.0 $ dvm use 2.065.0 $ dmd bash: dmd: command not found BTW Is there a reason to mandatory copy dvm to ~/.dvm/bin directory? Hmm, may wanna check your .bashrc. Unless it's changed since last time I looked, the Posix versions of dvm work by adding code to .bashrc which set up dmd as an alias. Then again, I'm not sure that should matter if you're manually running dvm use Are you maybe not using bash? GNU bash, version 4.3.24(1)-release (i586-pc-linux-gnu) -- Jordi Sayol
Re: DVM - D Version Manager 0.4.3
On 02/09/14 22:05, eles wrote: Thank you. I see that you provide packages for Debian (albeit they are BIN files). Would it be a huge effort to add DVM to this repository of D?: I have no idea. Linux is not my main platform. I only chose Debian because it's a stable/old system with a high chance of being binary compatible with other distributions. Perhaps you would like to contact the maintainer of that repository? -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
On 03/09/14 11:08, Chris wrote: If I install dmd 2.066 with dvm, it won't overwrite or change anything? No, the whole idea is to have multiple compilers installed simultaneous. I'll soon be moving my code from 2.065 to 2.066, but I want to keep 2.065 around for a while to maintain existing code till the transition is complete. Yes, that's the whole idea. And how do I integrate it with dub? It doesn't have a direct integration with Dub. But that's the other part of the idea. Just run dvm use compiler_version to set the version you want to use. When Dub runs DMD it will use the one you chose earlier. It works with any tool invoking DMD in the same session as you run dvm use. This all works on the command line. If you have some form of IDE chose the location where DVM installs the compilers. On Posix this will be ~/.dvm and on Windows this will be C:\Users\username\AppData\Roaming\dvm. Then either pick any of the following: * path_to_dvm/bin/dmd-version - for a specific compiler version * path_to_dvm/bin/dvm-current-dc - the compiler you chose last time with dvm use version * path_to_dvm/bin/dvm-default-dc - the default compiler, set with dvm use version -d -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.3
On Wednesday, 3 September 2014 at 13:10:28 UTC, Jacob Carlborg wrote: On 03/09/14 11:08, Chris wrote: If I install dmd 2.066 with dvm, it won't overwrite or change anything? No, the whole idea is to have multiple compilers installed simultaneous. I'll soon be moving my code from 2.065 to 2.066, but I want to keep 2.065 around for a while to maintain existing code till the transition is complete. Yes, that's the whole idea. And how do I integrate it with dub? It doesn't have a direct integration with Dub. But that's the other part of the idea. Just run dvm use compiler_version to set the version you want to use. When Dub runs DMD it will use the one you chose earlier. It works with any tool invoking DMD in the same session as you run dvm use. Thanks. I thought so, I just wanted to be 100% sure it really works this way, before doing anything. Hit-and-miss can cause some serious headaches when dealing with different dmd compilers. Thanks also for the great tool. This will make the transition a lot easier. This all works on the command line. If you have some form of IDE chose the location where DVM installs the compilers. On Posix this will be ~/.dvm and on Windows this will be C:\Users\username\AppData\Roaming\dvm. Then either pick any of the following: * path_to_dvm/bin/dmd-version - for a specific compiler version * path_to_dvm/bin/dvm-current-dc - the compiler you chose last time with dvm use version * path_to_dvm/bin/dvm-default-dc - the default compiler, set with dvm use version -d
Re: DVM - D Version Manager 0.4.3
On Wednesday, 3 September 2014 at 13:18:50 UTC, Chris wrote: On Wednesday, 3 September 2014 at 13:10:28 UTC, Jacob Carlborg wrote: On 03/09/14 11:08, Chris wrote: If I install dmd 2.066 with dvm, it won't overwrite or change anything? No, the whole idea is to have multiple compilers installed simultaneous. I'll soon be moving my code from 2.065 to 2.066, but I want to keep 2.065 around for a while to maintain existing code till the transition is complete. Yes, that's the whole idea. And how do I integrate it with dub? It doesn't have a direct integration with Dub. But that's the other part of the idea. Just run dvm use compiler_version to set the version you want to use. When Dub runs DMD it will use the one you chose earlier. It works with any tool invoking DMD in the same session as you run dvm use. Thanks. I thought so, I just wanted to be 100% sure it really works this way, before doing anything. Hit-and-miss can cause some serious headaches when dealing with different dmd compilers. Thanks also for the great tool. This will make the transition a lot easier. This all works on the command line. If you have some form of IDE chose the location where DVM installs the compilers. On Posix this will be ~/.dvm and on Windows this will be C:\Users\username\AppData\Roaming\dvm. Then either pick any of the following: * path_to_dvm/bin/dmd-version - for a specific compiler version * path_to_dvm/bin/dvm-current-dc - the compiler you chose last time with dvm use version * path_to_dvm/bin/dvm-default-dc - the default compiler, set with dvm use version -d Methinks DVM doesn't get it right. 2.065.zip is available here: ftp://ftp.digitalmars.com/dmd.2.065.0.zip (cf. http://forum.dlang.org/thread/ebvumaoniuukgjbow...@forum.dlang.org) But DVM tries to access it via http: Fetching: http://ftp.digitalmars.com/dmd.2.065.zip An unknown error occurred: tango.core.Exception.IOException@/home/doob/development/d/tango/tango/core/Exception.d(59): The resource with URL http://ftp.digitalmars.com/dmd.2.065.zip; could not be found.
Re: DVM - D Version Manager 0.4.3
On Wednesday, 3 September 2014 at 15:55:47 UTC, Chris wrote: Methinks DVM doesn't get it right. 2.065.zip is available here: ftp://ftp.digitalmars.com/dmd.2.065.0.zip (cf. http://forum.dlang.org/thread/ebvumaoniuukgjbow...@forum.dlang.org) But DVM tries to access it via http: Fetching: http://ftp.digitalmars.com/dmd.2.065.zip An unknown error occurred: tango.core.Exception.IOException@/home/doob/development/d/tango/tango/core/Exception.d(59): The resource with URL http://ftp.digitalmars.com/dmd.2.065.zip; could not be found. The link for 2.065 on http://dlang.org/changelog.html is broken as well. I don't think this particular issue can be blamed on DVM.
Re: DVM - D Version Manager 0.4.3
On Wednesday, 3 September 2014 at 19:02:05 UTC, Sean Kelly wrote: On Wednesday, 3 September 2014 at 15:55:47 UTC, Chris wrote: Methinks DVM doesn't get it right. 2.065.zip is available here: ftp://ftp.digitalmars.com/dmd.2.065.0.zip (cf. http://forum.dlang.org/thread/ebvumaoniuukgjbow...@forum.dlang.org) But DVM tries to access it via http: Fetching: http://ftp.digitalmars.com/dmd.2.065.zip An unknown error occurred: tango.core.Exception.IOException@/home/doob/development/d/tango/tango/core/Exception.d(59): The resource with URL http://ftp.digitalmars.com/dmd.2.065.zip; could not be found. The link for 2.065 on http://dlang.org/changelog.html is broken as well. I don't think this particular issue can be blamed on DVM. I know, but I thought maybe DVM tries different addresses, if one is not working. Anyway it should be on dlang.org/changelog.html.
Re: DVM - D Version Manager 0.4.3
On Wednesday, 3 September 2014 at 19:34:26 UTC, Chris wrote: I know, but I thought maybe DVM tries different addresses, if one is not working. Anyway it should be on dlang.org/changelog.html. For what it's worth, if you do dvm install 2.065.0 it will find it. Not sure if DVM should try alternates or not though.
Re: DVM - D Version Manager 0.4.3
On 9/2/2014 3:46 PM, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.3. [...] Version 0.4.3 New/Changed Features * Add support for Dub * Since issue 23 has been fixed this means that now both 32 and 64bit libraries are supported simultaneously Bugs Fixed * Fix issue unexpected redirect for method GET * Issue 23: Leave DMD directory structure as-is Sweet!!! Been looking forward to this.
Re: DVM - D Version Manager 0.4.3
On Tuesday, 2 September 2014 at 20:05:21 UTC, eles wrote: On Tuesday, 2 September 2014 at 19:46:32 UTC, Jacob Carlborg wrote: That would indeed make install even easier. And, especially, updates.
Re: DVM - D Version Manager 0.4.2
On Friday, 3 January 2014 at 12:04:33 UTC, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.2. The biggest news for this release is that the source code has been ported to D2 and I'm bringing back support for 64bit platforms. Except from this it's mostly a minor release. For pre-compiled binaries and changelog (or below) see: https://github.com/jacob-carlborg/dvm/releases/tag/v0.4.2 For those not familiar with DVM: DVM allows you to easily download and install D compilers and manage different versions of the compilers. Changelog: Version 0.4.2 New/Changed Features * Ported to D2 * Add support for fetching the latest version of the compiler * Bring back support for 64bit Bugs Fixed * Fails to get the latest version of the compiler so this is a tool which could build dmd phobos from git master branch(or any else) and later switch between that newly build version and 2.064 release?
Re: DVM - D Version Manager 0.4.2
On 2014-01-04 13:21, evilrat wrote: so this is a tool which could build dmd phobos from git master branch(or any else) and later switch between that newly build version and 2.064 release? Unfortunately no. It can build DMD and Phobos from git master but you cannot currently install that. It's mostly focused on installing releases of DMD. But you can install the build from git master manually. Have a look in ~/.dvm. What you need is ~/.dvm/compiler/dmd-name and ~/.dvm/env/dmd-name where name is a name or version number for the specific compiler. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.2
On Saturday, 4 January 2014 at 14:41:02 UTC, Jacob Carlborg wrote: On 2014-01-04 13:21, evilrat wrote: so this is a tool which could build dmd phobos from git master branch(or any else) and later switch between that newly build version and 2.064 release? Unfortunately no. It can build DMD and Phobos from git master but you cannot currently install that. It's mostly focused on installing releases of DMD. But you can install the build from git master manually. Have a look in ~/.dvm. What you need is ~/.dvm/compiler/dmd-name and ~/.dvm/env/dmd-name where name is a name or version number for the specific compiler. ok, thanks. will try later.
DVM - D Version Manager 0.4.2
I just released a new version of DVM, 0.4.2. The biggest news for this release is that the source code has been ported to D2 and I'm bringing back support for 64bit platforms. Except from this it's mostly a minor release. For pre-compiled binaries and changelog (or below) see: https://github.com/jacob-carlborg/dvm/releases/tag/v0.4.2 For those not familiar with DVM: DVM allows you to easily download and install D compilers and manage different versions of the compilers. Changelog: Version 0.4.2 New/Changed Features * Ported to D2 * Add support for fetching the latest version of the compiler * Bring back support for 64bit Bugs Fixed * Fails to get the latest version of the compiler -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.1
On Friday, 30 November 2012 at 07:31:51 UTC, Jacob Carlborg wrote: On 2012-11-30 08:31, Jacob Carlborg wrote: As 1100110 said, if you install ia32-libs it will work. I compiled it on Debian 6 64bit. That is, you can download the 32bit version of DVM. OK thanks, I was just checking to make sure before trying it out.
Re: DVM - D Version Manager 0.4.1
Jacob Carlborg wrote: I just released a new version of DVM, 0.4.1. This is mostly a bug fix On planet-scala they have the habit of adding a one-liner description of what the software is about. This helps newcomers to get into the loop. Regards, Thomas Koch
Re: DVM - D Version Manager 0.4.1
On 2012-11-29 13:33, Thomas Koch wrote: Jacob Carlborg wrote: I just released a new version of DVM, 0.4.1. This is mostly a bug fix On planet-scala they have the habit of adding a one-liner description of what the software is about. This helps newcomers to get into the loop. Right, sorry. Here's the description: DVM allows you to easily download and install D compilers and manage different versions of the compilers. When you switch D compiler with the use command the compiler will only be available in the current shell. This allows you to have one version of the compiler in one shell and another version in another shell. For example, have a D1 version in one shell and a D2 version in another. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.1
On 2012-11-30 01:07, Rob T wrote: I'm using Debian Wheezy 64 bit, in a nut shell, do you know if it can be made to work in this environment? As 1100110 said, if you install ia32-libs it will work. I compiled it on Debian 6 64bit. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.1
On 2012-11-30 08:31, Jacob Carlborg wrote: As 1100110 said, if you install ia32-libs it will work. I compiled it on Debian 6 64bit. That is, you can download the 32bit version of DVM. -- /Jacob Carlborg
DVM - D Version Manager 0.4.1
I just released a new version of DVM, 0.4.1. This is mostly a bug fix release. Unfortunately there won't be a 64it version for Linux. This is due to a bug in the regular expression module in Tango. The Linux binary is now built with Debian 6 instead of the old Ubuntu 6, I hope this will still work for most other distributions. DVM also officially has a new home, at github: https://github.com/jacob-carlborg/dvm Changelog: Version 0.4.1 New/Changed Features * Issue 2: Fetch zips from github for DMD 2.057+ Bugs Fixed * Issue 5: Missing executable permission on some files * Issue 9: dvm list throw an Exception when no compiler is yet installed * Issue 11: Fails when version not explicitly specified * Issue 13: Segmentation fault with -l For instructions how to install and downloads see: https://github.com/jacob-carlborg/dvm For a complete and nicely formatted changelog see: https://github.com/jacob-carlborg/dvm/blob/d1/changelog.md -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.0
On 06/01/2012 21:29, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.0. The only thing new in this release in the compile command. This allows to compile DMD, druntime and Phobos from github. Create a folder, clone DMD, druntime and Phobos in the newly create folder, run dvm compile folder to compile everything. The compiler is placed in the DMD directory. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.4.0 New/Change Features * Added a compile command for compiling DMD, druntime and Phobos from github When using a compiled dmd is there some way to allow dvm to manage it? Even if it requires some manual intervention to set up, I'd like to be able to do: $ dvm use master Thanks, -- Robert http://octarineparrot.com/
Re: DVM - D Version Manager 0.4.0
Nick, 'scuse me butting in... On Mon, 2012-01-09 at 04:14 -0500, Nick Sabalausky wrote: [...] Heck, maybe if we're lucky that OSX desktop interface to github will someday get ported to Lin or Win :) [...] Is there any need for a GUI to GitHub? Isn't having a GUI for the local clone all you need along with the browser UI to GitHub? Using remote tracking branches allows almost all activity other than pull requests to be done locally with gitg or somesuch. -- Russel. = Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.win...@ekiga.net 41 Buckmaster Roadm: +44 7770 465 077 xmpp: rus...@russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder signature.asc Description: This is a digitally signed message part
Re: DVM - D Version Manager 0.4.0
On 2012-01-13 10:58, Russel Winder wrote: Nick, 'scuse me butting in... On Mon, 2012-01-09 at 04:14 -0500, Nick Sabalausky wrote: [...] Heck, maybe if we're lucky that OSX desktop interface to github will someday get ported to Lin or Win :) [...] Is there any need for a GUI to GitHub? Isn't having a GUI for the local clone all you need along with the browser UI to GitHub? Using remote tracking branches allows almost all activity other than pull requests to be done locally with gitg or somesuch. I have never had a use for a GUI for git. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.0
On 09/01/12 13:09, Jacob Carlborg wrote: On 2012-01-09 10:30, Don Clugston wrote: On 06/01/12 22:29, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.0. The only thing new in this release in the compile command. This allows to compile DMD, druntime and Phobos from github. Create a folder, clone DMD, druntime and Phobos in the newly create folder, run dvm compile folder to compile everything. The compiler is placed in the DMD directory. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.4.0 New/Change Features * Added a compile command for compiling DMD, druntime and Phobos from github I found that I needed to do: cd .dvm mkdir bin before dvm install would work. Hmm, that's strange. On which platform? Is it when installing DVM itself or compilers? Linux64 (Ubuntu). When installing compilers.
Re: DVM - D Version Manager 0.4.0
On 2012-01-13 16:53, Don Clugston wrote: On 09/01/12 13:09, Jacob Carlborg wrote: On 2012-01-09 10:30, Don Clugston wrote: On 06/01/12 22:29, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.0. The only thing new in this release in the compile command. This allows to compile DMD, druntime and Phobos from github. Create a folder, clone DMD, druntime and Phobos in the newly create folder, run dvm compile folder to compile everything. The compiler is placed in the DMD directory. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.4.0 New/Change Features * Added a compile command for compiling DMD, druntime and Phobos from github I found that I needed to do: cd .dvm mkdir bin before dvm install would work. Hmm, that's strange. On which platform? Is it when installing DVM itself or compilers? Linux64 (Ubuntu). When installing compilers. Thanks, I'll take care of it. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.0
Jacob Carlborg d...@me.com wrote in message news:jee58o$54v$1...@digitalmars.com... On 2012-01-08 21:34, Nick Sabalausky wrote: Jacob Carlborgd...@me.com wrote in message news:jec1j6$2rbu$1...@digitalmars.com... * Move to github It's ultimately up to you, but personally I can't stand Github. My vote would be to stick with Bitbucket. Granted, I haven't actually tried Bitbucket's Git support yet. But just yesterday I started the process of converting a couple of my projects from SVN/Dsource to Git/Bitbucket, so we'll see how it goes, and I'll let you know. I'm asking you since you're the main contributor next to me. I prefer Github, many D project are moving to Github, DMD, Phobos and druntime are already there. But certainly don't want to push you away, that wouldn't be good for the Windows port :) While I would find github more painful, it wouldn't make me decrease my contributions to DVM. DVM's too important a tool, IMO (Much like RDMD, which I also contribute too). Heck, maybe if we're lucky that OSX desktop interface to github will someday get ported to Lin or Win :) I'm on my way to bed so I'll check out those links later. (FWIW, I don't think Ruby's all that bad as far as dynamic langauges go. Probably one of the best, actually. It's just no D ;) )
Re: DVM - D Version Manager 0.4.0
On 06/01/12 22:29, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.0. The only thing new in this release in the compile command. This allows to compile DMD, druntime and Phobos from github. Create a folder, clone DMD, druntime and Phobos in the newly create folder, run dvm compile folder to compile everything. The compiler is placed in the DMD directory. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.4.0 New/Change Features * Added a compile command for compiling DMD, druntime and Phobos from github I found that I needed to do: cd .dvm mkdir bin before dvm install would work.
Re: DVM - D Version Manager 0.4.0
On 2012-01-09 10:30, Don Clugston wrote: On 06/01/12 22:29, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.0. The only thing new in this release in the compile command. This allows to compile DMD, druntime and Phobos from github. Create a folder, clone DMD, druntime and Phobos in the newly create folder, run dvm compile folder to compile everything. The compiler is placed in the DMD directory. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.4.0 New/Change Features * Added a compile command for compiling DMD, druntime and Phobos from github I found that I needed to do: cd .dvm mkdir bin before dvm install would work. Hmm, that's strange. On which platform? Is it when installing DVM itself or compilers? -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.0
On 2012-01-09 10:14, Nick Sabalausky wrote: Jacob Carlborgd...@me.com wrote in message news:jee58o$54v$1...@digitalmars.com... On 2012-01-08 21:34, Nick Sabalausky wrote: Jacob Carlborgd...@me.com wrote in message news:jec1j6$2rbu$1...@digitalmars.com... * Move to github It's ultimately up to you, but personally I can't stand Github. My vote would be to stick with Bitbucket. Granted, I haven't actually tried Bitbucket's Git support yet. But just yesterday I started the process of converting a couple of my projects from SVN/Dsource to Git/Bitbucket, so we'll see how it goes, and I'll let you know. I'm asking you since you're the main contributor next to me. I prefer Github, many D project are moving to Github, DMD, Phobos and druntime are already there. But certainly don't want to push you away, that wouldn't be good for the Windows port :) While I would find github more painful, it wouldn't make me decrease my contributions to DVM. DVM's too important a tool, IMO (Much like RDMD, which I also contribute too). I'm glad to hear to. I'll have to think about it then. Heck, maybe if we're lucky that OSX desktop interface to github will someday get ported to Lin or Win :) I'm on my way to bed so I'll check out those links later. (FWIW, I don't think Ruby's all that bad as far as dynamic langauges go. Probably one of the best, actually. It's just no D ;) ) Hehe, ok. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.0
On 2012-01-07 21:39, Nick Sabalausky wrote: Nick Sabalauskya@a.a wrote in message news:jeaaae$304r$1...@digitalmars.com... Jacob Carlborgd...@me.com wrote in message news:je9fbv$1heb$2...@digitalmars.com... I would really like to do a complete rewrite of the tool, the internals. Well actually more of a complete refactoring so DVM can be built as a library and the tool uses the library. This would make things like the above much easier to integrate. Interesting. Do you have any sort of idea on when, or a rough roadmap? Or is it one of those One of things days if I get around to it sort of thing (that I'm all too familiar with myself!)? I guess what I'm really getting at is: Is the refactoring you have in mind something that should ideally come before other new features? Or would that not really matter? Ideally it should come before other new features. I mean, the more stuff we put in there the more mess it will be. The point of the refactoring is of course to make it easier to add new features and to understand the code. I'm not really sure about the road map. I'm currently focusing on Orbit, the package manager I'm developing. Also the main goal of DVM is already done. Hopefully I can squeeze in some time to work on DVM before the first release of Orbit. About the refactoring, what to you think about these: * Move to git * Move to github * Port to D2, still using Tango -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.0
Jacob Carlborg d...@me.com wrote in message news:jec1j6$2rbu$1...@digitalmars.com... Ideally it should come before other new features. I mean, the more stuff we put in there the more mess it will be. The point of the refactoring is of course to make it easier to add new features and to understand the code. Yea, that makes sense. I guess I just wasn't sure how deep the refactoring you were envisioning was going to be. Something possibly releated I've been meaning to bring up: I've been thinking that DVM's commands and options should work more like, say, git or svn. By that I mean: Right now DVM has a set of commands, and a set of global DVM options. Problem is, some of the options only apply to some of the commands. This sugegsts a few changes: 1. dvm --help should only show globally-applicable options. (--verbose and --help are probably only ones right now.) 2. dvm [command] --help (and maybe dvm --help [command], too) should show a command-specific help screen. This isn't a *huge* need right now, but I think it'll only become more and more important as DVM progresses. I don't know if this is something that should be taken into account in the refactoring, or just left until after. Another thing that might need to be considered in the refactoring: On Linux, DVM doesn't currently work inside a shell script. It's just not recognized. I'm sure it probably has something to do with the dvm shell-function. Maybe it's because it's set to only be defined on interactive prompts? I don't really know for certain what the problem or the solution is, so depending on whatever the right solution is, this might be a take into account in the refactoring matter. About the refactoring, what to you think about these: * Move to git I don't have a really strong opinion on that. While I kind of like Hg a little better, I normally use the Tortoise tools, and I like TortoiseGit much better than TortoiseHg. Also branching is built into Git rather than being a grafted-on extra, which is nice. (And of course, DVM goes hand-in-hand with DMD and DMD is Git). So I guess I would lean more towards Git, but either way works. * Move to github It's ultimately up to you, but personally I can't stand Github. My vote would be to stick with Bitbucket. Granted, I haven't actually tried Bitbucket's Git support yet. But just yesterday I started the process of converting a couple of my projects from SVN/Dsource to Git/Bitbucket, so we'll see how it goes, and I'll let you know. * Port to D2, still using Tango I'm definitely in favor of switching to D2. In fact, I took the leap from D1/Tango straight to D2/Phobos on my own projects about a year or so ago, so I have some experience in that (and D2's only gotten better since), and I'd be happy to take the lead converting it to D2. I found that the vast majority of changes I needed to make were Tango-Phobos because, while there are some breaking changes from D1-D2, most of the changes are additive, and D1-style code works fine in D2 with only very little change. As far as Tango: I have no idea what the state of D2's Tango is, and personally I'd prefer Phobos. But if you have reason to believe D2's Tango is ready to use and you'd prefer that, then I'm perfectly fine with it. Actually, heck, if we're going to switch to D2, we may as well at least give D2's Tango a try along the way. If it works, it works, if it doesn't we can help out D2's Tango or just do Phobos (especially since 2.058 will have that new curl module).
Re: DVM - D Version Manager 0.4.0
Nick Sabalausky a@a.a wrote in message news:jecuno$18e6$1...@digitalmars.com... Something possibly releated I've been meaning to bring up: I've been thinking that DVM's commands and options should work more like, say, git or svn. By that I mean: Right now DVM has a set of commands, and a set of global DVM options. Problem is, some of the options only apply to some of the commands. This sugegsts a few changes: 1. dvm --help should only show globally-applicable options. (--verbose and --help are probably only ones right now.) 2. dvm [command] --help (and maybe dvm --help [command], too) should show a command-specific help screen. 3. Use of inapplicable options, like dvm --default fetch 2.057, should be an error. This isn't a *huge* need right now, but I think it'll only become more and more important as DVM progresses. I don't know if this is something that should be taken into account in the refactoring, or just left until after.
Re: DVM - D Version Manager 0.4.0
On 2012-01-08 21:34, Nick Sabalausky wrote: Jacob Carlborgd...@me.com wrote in message news:jec1j6$2rbu$1...@digitalmars.com... Ideally it should come before other new features. I mean, the more stuff we put in there the more mess it will be. The point of the refactoring is of course to make it easier to add new features and to understand the code. Yea, that makes sense. I guess I just wasn't sure how deep the refactoring you were envisioning was going to be. Quite deep. I want to have it look more like Orbit: https://github.com/jacob-carlborg/orbit Instead of having all code in the commands I want to have a single class for a single task. The commands would then basically just create a new instance of the needed classes. Something possibly releated I've been meaning to bring up: I've been thinking that DVM's commands and options should work more like, say, git or svn. By that I mean: Right now DVM has a set of commands, and a set of global DVM options. Problem is, some of the options only apply to some of the commands. This sugegsts a few changes: 1. dvm --help should only show globally-applicable options. (--verbose and --help are probably only ones right now.) 2. dvm [command] --help (and maybe dvm --help [command], too) should show a command-specific help screen. This isn't a *huge* need right now, but I think it'll only become more and more important as DVM progresses. I don't know if this is something that should be taken into account in the refactoring, or just left until after. Yeah, I know. That would be another reason to do the refactoring. Another thing that might need to be considered in the refactoring: On Linux, DVM doesn't currently work inside a shell script. It's just not recognized. I'm sure it probably has something to do with the dvm shell-function. Maybe it's because it's set to only be defined on interactive prompts? I don't really know for certain what the problem or the solution is, so depending on whatever the right solution is, this might be a take into account in the refactoring matter. I didn't know about that. I'll take a look at that. About the refactoring, what to you think about these: * Move to git I don't have a really strong opinion on that. While I kind of like Hg a little better, I normally use the Tortoise tools, and I like TortoiseGit much better than TortoiseHg. Also branching is built into Git rather than being a grafted-on extra, which is nice. (And of course, DVM goes hand-in-hand with DMD and DMD is Git). So I guess I would lean more towards Git, but either way works. I've moved all my projects to git, use it at work, so I prefer it over mercurial. * Move to github It's ultimately up to you, but personally I can't stand Github. My vote would be to stick with Bitbucket. Granted, I haven't actually tried Bitbucket's Git support yet. But just yesterday I started the process of converting a couple of my projects from SVN/Dsource to Git/Bitbucket, so we'll see how it goes, and I'll let you know. I'm asking you since you're the main contributor next to me. I prefer Github, many D project are moving to Github, DMD, Phobos and druntime are already there. But certainly don't want to push you away, that wouldn't be good for the Windows port :) * Port to D2, still using Tango I'm definitely in favor of switching to D2. In fact, I took the leap from D1/Tango straight to D2/Phobos on my own projects about a year or so ago, so I have some experience in that (and D2's only gotten better since), and I'd be happy to take the lead converting it to D2. I found that the vast majority of changes I needed to make were Tango-Phobos because, while there are some breaking changes from D1-D2, most of the changes are additive, and D1-style code works fine in D2 with only very little change. As far as Tango: I have no idea what the state of D2's Tango is, and personally I'd prefer Phobos. But if you have reason to believe D2's Tango is ready to use and you'd prefer that, then I'm perfectly fine with it. Actually, heck, if we're going to switch to D2, we may as well at least give D2's Tango a try along the way. If it works, it works, if it doesn't we can help out D2's Tango or just do Phobos (especially since 2.058 will have that new curl module). I'm pretty sure Tango for D2 is ready enough. I got help porting my package manager, Orbit, to D2 using Tango. Everything compiles but not everything works, probably something D2 and Ruby related (TLS or something like that). But it was surprisingly few changes that needed to be done and that is all to Tango working with D2. The biggest problem would be to port the tool to use Phobos instead of Tango. I guess it would be best to start by adding some high level tests to DVM. You probably won't like this but there's a great Ruby tool for testing these kind of things called Cucumber. I'm already using it in Orbit: https://github.com/jacob-carlborg/orbit/tree/master/features -- /Jacob
Re: DVM - D Version Manager 0.4.0
On 2012-01-06 23:38, Nick Sabalausky wrote: Jacob Carlborgd...@me.com wrote in message news:je7p3p$1pl1$1...@digitalmars.com... I just released a new version of DVM, 0.4.0. The only thing new in this release in the compile command. This allows to compile DMD, druntime and Phobos from github. Create a folder, clone DMD, druntime and Phobos in the newly create folder, run dvm compile folder to compile everything. The compiler is placed in the DMD directory. In other words: $ git clone https://github.com/D-Programming-Language/dmd.git $ git clone https://github.com/D-Programming-Language/druntime.git $ git clone https://github.com/D-Programming-Language/phobos.git $ git clone https://github.com/D-Programming-Language/tools.git # for RDMD, but this is optional $ dvm compile $ ./dmd/bin32/dmd # or ./dmd/bin64/dmd DMD32 D Compiler v2.0... ...etc... If you notice it downloading the latest DMD release before compiling, there's a reason for that: There are some files (from the bin and lib directories) that aren't in github, so it grabs them from the latest DMD release. BTW, This isn't just for Git DMD, it can also recompile release versions of DMD: $ wget https://github.com/downloads/D-Programming-Language/dmd/dmd.2.057.zip $ unzip dmd.2.057.zip $ dvm compile ./dmd2 # the directory is optional, DVM's default is . $ ./dmd2/linux/bin32/dmd # or ./dmd2/osx/bin64/dmd, etc... DVM will automatically detect whether you have a git-style or release-style project structure and act accordingly. Use DVM's -v (verbose) flag to see which it detects. It also detects D1 vs D2, so it can be used to compile D1/Phobos as well. Be aware, it might have some trouble will really old releases of DMD 1 and 2 due to changes in the project structure and/or makefiles. But anything remotely recent should work fine (if not, please file a bug). If you're on Windows, it will automatically download and install DMC if DMC isn't detected on the PATH (you can also do it with dvm install dmc). But you may run into some paths with spaces trouble with the DMC toolchain that I wasn't able to fully track down, so if that happens, you should download DMC to a directory with no spaces: $ dvm fetch dmc and extract/install it manually. Thanks for the elaborated explanation. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.0
On 2012-01-07 00:58, Nick Sabalausky wrote: Robert Clipshamrob...@octarineparrot.com wrote in message news:je7qkg$1s8f$1...@digitalmars.com... Would it be possible to get something like this working? $ dvm install git-master # install everything from git master $ dvm update git-master # update to the latest dmd/druntime/phobos # revision $ dvm use git-master # switch to git master Yea, both Jacob and I wanted to get that sort of thing in, and it shouldn't be too hard. But neither of us have quite gotten around to it yet. I would really like to do a complete rewrite of the tool, the internals. Well actually more of a complete refactoring so DVM can be built as a library and the tool uses the library. This would make things like the above much easier to integrate. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.0
Jacob Carlborg d...@me.com wrote in message news:je9fbv$1heb$2...@digitalmars.com... On 2012-01-07 00:58, Nick Sabalausky wrote: Robert Clipshamrob...@octarineparrot.com wrote in message news:je7qkg$1s8f$1...@digitalmars.com... Would it be possible to get something like this working? $ dvm install git-master # install everything from git master $ dvm update git-master # update to the latest dmd/druntime/phobos # revision $ dvm use git-master # switch to git master Yea, both Jacob and I wanted to get that sort of thing in, and it shouldn't be too hard. But neither of us have quite gotten around to it yet. I would really like to do a complete rewrite of the tool, the internals. Well actually more of a complete refactoring so DVM can be built as a library and the tool uses the library. This would make things like the above much easier to integrate. Interesting. Do you have any sort of idea on when, or a rough roadmap? Or is it one of those One of things days if I get around to it sort of thing (that I'm all too familiar with myself!)?
Re: DVM - D Version Manager 0.4.0
Nick Sabalausky a@a.a wrote in message news:jeaaae$304r$1...@digitalmars.com... Jacob Carlborg d...@me.com wrote in message news:je9fbv$1heb$2...@digitalmars.com... I would really like to do a complete rewrite of the tool, the internals. Well actually more of a complete refactoring so DVM can be built as a library and the tool uses the library. This would make things like the above much easier to integrate. Interesting. Do you have any sort of idea on when, or a rough roadmap? Or is it one of those One of things days if I get around to it sort of thing (that I'm all too familiar with myself!)? I guess what I'm really getting at is: Is the refactoring you have in mind something that should ideally come before other new features? Or would that not really matter?
DVM - D Version Manager 0.4.0
I just released a new version of DVM, 0.4.0. The only thing new in this release in the compile command. This allows to compile DMD, druntime and Phobos from github. Create a folder, clone DMD, druntime and Phobos in the newly create folder, run dvm compile folder to compile everything. The compiler is placed in the DMD directory. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.4.0 New/Change Features * Added a compile command for compiling DMD, druntime and Phobos from github -- /Jacob Carlborg
Re: DVM - D Version Manager 0.4.0
On 06/01/2012 21:29, Jacob Carlborg wrote: I just released a new version of DVM, 0.4.0. The only thing new in this release in the compile command. This allows to compile DMD, druntime and Phobos from github. Create a folder, clone DMD, druntime and Phobos in the newly create folder, run dvm compile folder to compile everything. The compiler is placed in the DMD directory. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.4.0 New/Change Features * Added a compile command for compiling DMD, druntime and Phobos from github This is excellent, can't wait to try it out! Would it be possible to get something like this working? $ dvm install git-master # install everything from git master $ dvm update git-master # update to the latest dmd/druntime/phobos # revision $ dvm use git-master # switch to git master -- Robert http://octarineparrot.com/
Re: DVM - D Version Manager 0.4.0
Jacob Carlborg d...@me.com wrote in message news:je7p3p$1pl1$1...@digitalmars.com... I just released a new version of DVM, 0.4.0. The only thing new in this release in the compile command. This allows to compile DMD, druntime and Phobos from github. Create a folder, clone DMD, druntime and Phobos in the newly create folder, run dvm compile folder to compile everything. The compiler is placed in the DMD directory. In other words: $ git clone https://github.com/D-Programming-Language/dmd.git $ git clone https://github.com/D-Programming-Language/druntime.git $ git clone https://github.com/D-Programming-Language/phobos.git $ git clone https://github.com/D-Programming-Language/tools.git # for RDMD, but this is optional $ dvm compile $ ./dmd/bin32/dmd # or ./dmd/bin64/dmd DMD32 D Compiler v2.0... ...etc... If you notice it downloading the latest DMD release before compiling, there's a reason for that: There are some files (from the bin and lib directories) that aren't in github, so it grabs them from the latest DMD release. BTW, This isn't just for Git DMD, it can also recompile release versions of DMD: $ wget https://github.com/downloads/D-Programming-Language/dmd/dmd.2.057.zip $ unzip dmd.2.057.zip $ dvm compile ./dmd2 # the directory is optional, DVM's default is . $ ./dmd2/linux/bin32/dmd # or ./dmd2/osx/bin64/dmd, etc... DVM will automatically detect whether you have a git-style or release-style project structure and act accordingly. Use DVM's -v (verbose) flag to see which it detects. It also detects D1 vs D2, so it can be used to compile D1/Phobos as well. Be aware, it might have some trouble will really old releases of DMD 1 and 2 due to changes in the project structure and/or makefiles. But anything remotely recent should work fine (if not, please file a bug). If you're on Windows, it will automatically download and install DMC if DMC isn't detected on the PATH (you can also do it with dvm install dmc). But you may run into some paths with spaces trouble with the DMC toolchain that I wasn't able to fully track down, so if that happens, you should download DMC to a directory with no spaces: $ dvm fetch dmc and extract/install it manually.
Re: DVM - D Version Manager 0.4.0
Robert Clipsham rob...@octarineparrot.com wrote in message news:je7qkg$1s8f$1...@digitalmars.com... Would it be possible to get something like this working? $ dvm install git-master # install everything from git master $ dvm update git-master # update to the latest dmd/druntime/phobos # revision $ dvm use git-master # switch to git master Yea, both Jacob and I wanted to get that sort of thing in, and it shouldn't be too hard. But neither of us have quite gotten around to it yet.
DVM - D Version Manager 0.3.1
I just released a new version of DVM, 0.3.1. This is purely a bug fix release for Windows. I didn't bother compiling for Linux or Mac OS X. Changelog: Version 0.3.1 Bugs Fixed * dvm use changes the default compiler on Windows * Can't install on Windows without administrator rights For instructions how to install and downloads see: https://bitbucket.org/doob/dvm -- /Jacob Carlborg
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
I know this is maybe obvious for linux geeks, but your shell command won't work like this: wget -O dvm https://bitbucket.org/doob/dvm/downloads/dvm-0.3.0-linux-32 chmod +x dvm ./dvm install dvm Because you have to call this before executing dvm: chmod +x dvm
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
Am 01.08.2011 22:53, schrieb Andrej Mitrovic: I know this is maybe obvious for linux geeks, but your shell command won't work like this: wget -O dvm https://bitbucket.org/doob/dvm/downloads/dvm-0.3.0-linux-32 chmod +x dvm ./dvm install dvm Because you have to call this before executing dvm: chmod +x dvm This is included in the command above?
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
Wow! Indeed it is. I really don't know what to say. It didn't work when I tried it, but it does if I manually call chmod. Hillarious.
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
No I think I've only tested the beta.
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
On 7/19/2011 5:52 AM, Andrej Mitrovic wrote: No I think I've only tested the beta. Yeah, the beta didn't complain either, only this new version. Also, it won't trigger UAC (because we're not asking to elevate), it just fails to open.
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
On 2011-07-18 06:51, Mike Parker wrote: On 7/18/2011 5:10 AM, Jacob Carlborg wrote: I just released a new version of DVM, 0.3.0. Now with support for Windows :), thanks to Nick Sabalausky. For installation instructions see: https://bitbucket.org/doob/dvm The project page still says Currently no Windows version under the Limitations heading. Good point, fixed. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
On Sun, 17 Jul 2011 22:10:39 +0200, Jacob Carlborg wrote: I just released a new version of DVM, 0.3.0. Now with support for Windows :), thanks to Nick Sabalausky. For installation instructions see: https://bitbucket.org/doob/dvm Cool! This is a great tool, very useful. -Lars
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
On 2011-07-18 11:31, Lars T. Kyllingstad wrote: On Sun, 17 Jul 2011 22:10:39 +0200, Jacob Carlborg wrote: I just released a new version of DVM, 0.3.0. Now with support for Windows :), thanks to Nick Sabalausky. For installation instructions see: https://bitbucket.org/doob/dvm Cool! This is a great tool, very useful. -Lars Thanks. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
On 7/17/2011 6:41 PM, Nick Sabalausky wrote: Johann MacDonaghjohann.macdonagh...@spam.gmail.com wrote in message news:ivvhtr$2j94$1...@digitalmars.com... - Did you get that after it prompted you for a yes/no, or did it not get that far? - Was that message displayed in the cmd prompt or in a dialog box? No prompt at all, and it was in the console window. You can always create a restricted account for yourself to test it out. It will fire if you try dvm-installer.exe install dvm on a machine that already has dvm installed.
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
Johann MacDonagh johann.macdonagh...@spam.gmail.com wrote in message news:j02dmi$1t2c$1...@digitalmars.com... On 7/17/2011 6:41 PM, Nick Sabalausky wrote: Johann MacDonaghjohann.macdonagh...@spam.gmail.com wrote in message news:ivvhtr$2j94$1...@digitalmars.com... - Did you get that after it prompted you for a yes/no, or did it not get that far? - Was that message displayed in the cmd prompt or in a dialog box? No prompt at all, and it was in the console window. Thanks. There's a point where it checks the registry to see if DMD already exists in the system PATH (and will prompt the user for further action if it's there, because it would get in the way of DVM's default compiler feature). Turns out I forgot to use read-only access (instead of read/write) to open the key for that check. You can always create a restricted account for yourself to test it out. Yea, clearly I should have done that ;) It will fire if you try dvm-installer.exe install dvm on a machine that already has dvm installed. Turns out the problem occurs when trying to install DVM on any limited Windows user account, regardless of an existing DVM or DMD, and regardless of XP/Win7 or 32bit/64bit. Pretty bad since DVM currently only installs per-user. /facepalm I've fixed it and submitted a pull request (and this time I tested it with limited user accounts on both XP and Vista): https://bitbucket.org/doob/dvm/pull-request/2/
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
Interesting.. I've tested it on win7 with admin rights but with UAC set to max, and it didn't complain, so I assumed it would work without admin rights too.
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
Jacob Carlborg d...@me.com wrote in message news:ivvftq$2fvd$1...@digitalmars.com... I just released a new version of DVM, 0.3.0. Now with support for Windows :), thanks to Nick Sabalausky. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.3.0 New/Change Features * Added an option for installing the latest compiler * Better compatibility between different shell implementations * Added Windows support. Thanks to Nick Sabalausky * Added a list command for listing installed compilers * Added a uninstall command for uninstalling compilers Bugs Fixed * Can't link using DMD 1.068. * Issue 2: The '.dvm/bin/dmd-{ver}' scripts don't work on Ubuntu 10.04 * Issue 7: No error on invalid command * Issue 13: Tmp dir should be deleted before running DVM binary (not just after) * Issue 5: Invalid character in .dvm/env files * Issue 12: dvm -h and dvm --help print nothing Upgrading from 0.2.0 to 0.3.0: It might be necessary to do a complete clean installation by removing ~/.dvm. And also by removing the DVM stuff that was auto-added to .bashrc (if any). This is in particular if you had any problems with the previous shell scripts not working. If you haven't had such problems, then you should be good without wiping ~/.dvm. The most likely problem was with invoking a specific version of DMD directly via dvm-{version}, so that should be a good test. (At least that was my experience on Kubuntu 10.04, YMMV.) This issue shouldn't affect people who used the Windows betas since Windows already uses completely different scripts with completely different syntax.
Re: DVM - D Version Manager 0.3.0 (including support for Windows)
On 7/18/2011 5:10 AM, Jacob Carlborg wrote: I just released a new version of DVM, 0.3.0. Now with support for Windows :), thanks to Nick Sabalausky. For installation instructions see: https://bitbucket.org/doob/dvm The project page still says Currently no Windows version under the Limitations heading.
Re: DVM - D Version Manager 0.2.0
On Tue, 17 May 2011 23:15:42 +0200, Jacob Carlborg wrote: I just released a new version of DVM, 0.2.0. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.2.0 New/Change Features * 64bit version now available on Linux * It's now possible to update an already existing DVM installation * Added an option for installing 32bit compilers, useful on 64bit platforms * Added support for the new structure of the DMD zip, appeared in version 1.068 and 2.053 * Added a current wrapper which points to the current compiler * Added an option for specifying a default compiler * Better compatible between different shells * Added support for installing Tango * Added support for installing 64bit compilers (default on 64bit platforms) * The fetch/install command now shows progress when downloading. Thanks to jdrewsen. * Added support for the new structure of the DMD zip, appeared in version 1.067 and 2.052. * Added a changelog. Bugs Fixed * RDMD now has executable permission * Exit if the DVM executable cannot be found * Always remove the temp path * Don't use exit in the DVM shell script * Added dmd.conf patch for druntime as well. * Fixed: DMD2 was incorrectly handled. * Bump version number. Sorry, still no version for Windows. I've seen another application that does the same but for Ruby, on Windows, so now I know it should be possible at least. I just installed DVM, and it seems like a very useful tool. It works pretty well, but I ran into an issue for which I created a bug report: https://bitbucket.org/doob/dvm/issue/5/invalid-character-in-dvm-env-files Also, I have some suggestions for features you may want to add in the future. I'll add enhancement requests for these. Thanks for making a nice tool! -Lars
Re: DVM - D Version Manager 0.2.0
On 2011-05-31 12:25, Lars T. Kyllingstad wrote: On Tue, 17 May 2011 23:15:42 +0200, Jacob Carlborg wrote: I just released a new version of DVM, 0.2.0. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.2.0 New/Change Features * 64bit version now available on Linux * It's now possible to update an already existing DVM installation * Added an option for installing 32bit compilers, useful on 64bit platforms * Added support for the new structure of the DMD zip, appeared in version 1.068 and 2.053 * Added a current wrapper which points to the current compiler * Added an option for specifying a default compiler * Better compatible between different shells * Added support for installing Tango * Added support for installing 64bit compilers (default on 64bit platforms) * The fetch/install command now shows progress when downloading. Thanks to jdrewsen. * Added support for the new structure of the DMD zip, appeared in version 1.067 and 2.052. * Added a changelog. Bugs Fixed * RDMD now has executable permission * Exit if the DVM executable cannot be found * Always remove the temp path * Don't use exit in the DVM shell script * Added dmd.conf patch for druntime as well. * Fixed: DMD2 was incorrectly handled. * Bump version number. Sorry, still no version for Windows. I've seen another application that does the same but for Ruby, on Windows, so now I know it should be possible at least. I just installed DVM, and it seems like a very useful tool. It works pretty well, but I ran into an issue for which I created a bug report: https://bitbucket.org/doob/dvm/issue/5/invalid-character-in-dvm-env-files Also, I have some suggestions for features you may want to add in the future. I'll add enhancement requests for these. Thanks for making a nice tool! -Lars I'll have a look, thanks. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.2.0
On 2011-05-18 13:27, Jacob Carlborg wrote: On 2011-05-18 10:21, Nick Sabalausky wrote: Nick Sabalauskya@a.a wrote in message news:iqvru7$cnu$1...@digitalmars.com... Jacob Carlborgd...@me.com wrote in message news:iqvpon$6p0$1...@digitalmars.com... On 2011-05-18 06:35, Nick Sabalausky wrote: Sounds cool, but dvm-0.2.0-linux-32 is just giving me Illegal instruction on Kubuntu 10.04 x86-32. And I don't see any instructions for how to build it anywhere in the source tree or on the homepage. Ok, strange. I built the tool on Ubuntu 11.04, maybe it's too new. How can I build it to work on as many platforms as possible? The runtime dependencies are just the same as a regular C application and zlib. Added build instructions at the bottom of: https://bitbucket.org/doob/dvm Thanks :) I think I'm almost there. I've been using D2/Phobos/RDMD for the past year or so (plus my usual machine is a windows box), so I had a lot of setting up to do, but I think I've almost got it now. When I do, I'll post the final binary in case it helps anyone else (I can only make a 32-bit binary though). Done. Here's the binary, it works for me: http://www.semitwist.com/download/app/dvm-0.2.0-linux-32 Thanks, I'll upload it when I get a chance. I've uploaded your version now, thanks again. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.2.0
On 2011-05-18 22:33, Nick Sabalausky wrote: Jacob Carlborgd...@me.com wrote in message news:ir0o9o$1st5$1...@digitalmars.com... On 2011-05-18 14:21, Steven Schveighoffer wrote: On Wed, 18 May 2011 03:15:50 -0400, Nick Sabalauskya@a.a wrote: But the bottom line seems to be: Linux is in a bigger DLL hell than windows has ever been, and I don't think *anyone* actually knows how to do it. This is one of the side effects of having open source software. Since everything on linux is expected to be open source, it's expected that you simply recompile everything for your system. In this respect, Windows has Linux beat hands down. A hardware company that builds a driver needs only to support one compiled driver that just keeps working no matter how many times XP is updated. The problem I have with my tool is like the chicken and the egg problem. The tool installs D compilers and you're supposed to use the tool without the requirement of an pre-existing DMD compiler. I've been thinking it would probably be possible to bootstrap DVM with a shell script that would wget some specific DMD, set it up, at least enough to build DVM (possibly even automatically building DMD/druntime/phobos/tango - which is something we really need a more automated way to do anway, especially for trunk versions (or whatever the Git-lingo for trunk is)), and then use that to build DVM. I may give it a try myself. In the case I just could have written the tool in shell script in the first place and that's what I want to avoid. I hate shell scripts and it would make it even harder to create a version for Windows. I think the right approach is to provied pre-compiled binaries. I downloaded Ubuntu 4.10, or something like that. I'll install it in a virtual machine and try it out. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.2.0
On 2011-05-18 06:35, Nick Sabalausky wrote: Jacob Carlborgd...@me.com wrote in message news:iquopl$1l9u$1...@digitalmars.com... I just released a new version of DVM, 0.2.0. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.2.0 New/Change Features * 64bit version now available on Linux * It's now possible to update an already existing DVM installation * Added an option for installing 32bit compilers, useful on 64bit platforms * Added support for the new structure of the DMD zip, appeared in version 1.068 and 2.053 * Added a current wrapper which points to the current compiler * Added an option for specifying a default compiler * Better compatible between different shells * Added support for installing Tango * Added support for installing 64bit compilers (default on 64bit platforms) * The fetch/install command now shows progress when downloading. Thanks to jdrewsen. * Added support for the new structure of the DMD zip, appeared in version 1.067 and 2.052. * Added a changelog. Bugs Fixed * RDMD now has executable permission * Exit if the DVM executable cannot be found * Always remove the temp path * Don't use exit in the DVM shell script * Added dmd.conf patch for druntime as well. * Fixed: DMD2 was incorrectly handled. * Bump version number. Sorry, still no version for Windows. I've seen another application that does the same but for Ruby, on Windows, so now I know it should be possible at least. Sounds cool, but dvm-0.2.0-linux-32 is just giving me Illegal instruction on Kubuntu 10.04 x86-32. And I don't see any instructions for how to build it anywhere in the source tree or on the homepage. Ok, strange. I built the tool on Ubuntu 11.04, maybe it's too new. How can I build it to work on as many platforms as possible? The runtime dependencies are just the same as a regular C application and zlib. Added build instructions at the bottom of: https://bitbucket.org/doob/dvm -- /Jacob Carlborg
Re: DVM - D Version Manager 0.2.0
Jacob Carlborg d...@me.com wrote in message news:iqvpon$6p0$1...@digitalmars.com... On 2011-05-18 06:35, Nick Sabalausky wrote: Sounds cool, but dvm-0.2.0-linux-32 is just giving me Illegal instruction on Kubuntu 10.04 x86-32. And I don't see any instructions for how to build it anywhere in the source tree or on the homepage. Ok, strange. I built the tool on Ubuntu 11.04, maybe it's too new. How can I build it to work on as many platforms as possible? The runtime dependencies are just the same as a regular C application and zlib. You know, I'm far from a Linux expert, but making compatible linux binaries seems to be quite a nightmare. In fact, I just recently went through hell myself trying to figure out how to compile a Hello World CGI app on my linux system and have it actually work on another linux system. You can follow my fun-filled adventures through it with these discussions: digitalmars.D.learn: D CGI test: linux.so.2: bad ELF interpreter: No such file or directory (2011/04/25) digitalmars.D.learn: Linux: How to statically link against system libs? (2011/04/26) http://ubuntuforums.org/showthread.php?t=1740277 But the bottom line seems to be: Linux is in a bigger DLL hell than windows has ever been, and I don't think *anyone* actually knows how to do it. In my case, I ended up just installing an older version of linux in a VM and compiling inside that (CentOS 4, largely because I needed to be able to run on a CentOS server that wasn't happy with my Kubuntu 10.04 executables). The resulting binaries did work on my Kubuntu 10.04 machine, too, so I guess the trick is to just compile on the oldest machine you can. Go figure: All the focus everyone puts on updating to newer versions, and it ends up best to stick with the older versions - not because the older ones were better, but just *because* they're older. Meh. Anyway, pardon the rant :/ You'd think there'd be a way to compile in a backwards-compatible way on linux, but I'm getting the impression that if it's possible, no one actually knows how. Added build instructions at the bottom of: https://bitbucket.org/doob/dvm Thanks :) I think I'm almost there. I've been using D2/Phobos/RDMD for the past year or so (plus my usual machine is a windows box), so I had a lot of setting up to do, but I think I've almost got it now. When I do, I'll post the final binary in case it helps anyone else (I can only make a 32-bit binary though).
Re: DVM - D Version Manager 0.2.0
Nick Sabalausky a@a.a wrote in message news:iqvru7$cnu$1...@digitalmars.com... Jacob Carlborg d...@me.com wrote in message news:iqvpon$6p0$1...@digitalmars.com... On 2011-05-18 06:35, Nick Sabalausky wrote: Sounds cool, but dvm-0.2.0-linux-32 is just giving me Illegal instruction on Kubuntu 10.04 x86-32. And I don't see any instructions for how to build it anywhere in the source tree or on the homepage. Ok, strange. I built the tool on Ubuntu 11.04, maybe it's too new. How can I build it to work on as many platforms as possible? The runtime dependencies are just the same as a regular C application and zlib. Added build instructions at the bottom of: https://bitbucket.org/doob/dvm Thanks :) I think I'm almost there. I've been using D2/Phobos/RDMD for the past year or so (plus my usual machine is a windows box), so I had a lot of setting up to do, but I think I've almost got it now. When I do, I'll post the final binary in case it helps anyone else (I can only make a 32-bit binary though). Done. Here's the binary, it works for me: http://www.semitwist.com/download/app/dvm-0.2.0-linux-32
Re: DVM - D Version Manager 0.2.0
On 17/05/11 23.15, Jacob Carlborg wrote: I just released a new version of DVM, 0.2.0. For installation instructions see: https://bitbucket.org/doob/dvm Changelog: Version 0.2.0 New/Change Features * 64bit version now available on Linux * It's now possible to update an already existing DVM installation * Added an option for installing 32bit compilers, useful on 64bit platforms * Added support for the new structure of the DMD zip, appeared in version 1.068 and 2.053 * Added a current wrapper which points to the current compiler * Added an option for specifying a default compiler * Better compatible between different shells * Added support for installing Tango * Added support for installing 64bit compilers (default on 64bit platforms) * The fetch/install command now shows progress when downloading. Thanks to jdrewsen. * Added support for the new structure of the DMD zip, appeared in version 1.067 and 2.052. * Added a changelog. Bugs Fixed * RDMD now has executable permission * Exit if the DVM executable cannot be found * Always remove the temp path * Don't use exit in the DVM shell script * Added dmd.conf patch for druntime as well. * Fixed: DMD2 was incorrectly handled. * Bump version number. Sorry, still no version for Windows. I've seen another application that does the same but for Ruby, on Windows, so now I know it should be possible at least. This is a very nice tool. Keep up the good work! /Jonas
Re: DVM - D Version Manager 0.2.0
On 2011-05-18 09:15, Nick Sabalausky wrote: Jacob Carlborgd...@me.com wrote in message news:iqvpon$6p0$1...@digitalmars.com... On 2011-05-18 06:35, Nick Sabalausky wrote: Sounds cool, but dvm-0.2.0-linux-32 is just giving me Illegal instruction on Kubuntu 10.04 x86-32. And I don't see any instructions for how to build it anywhere in the source tree or on the homepage. Ok, strange. I built the tool on Ubuntu 11.04, maybe it's too new. How can I build it to work on as many platforms as possible? The runtime dependencies are just the same as a regular C application and zlib. You know, I'm far from a Linux expert, but making compatible linux binaries seems to be quite a nightmare. In fact, I just recently went through hell myself trying to figure out how to compile a Hello World CGI app on my linux system and have it actually work on another linux system. You can follow my fun-filled adventures through it with these discussions: Yeah, I read parts of those threads. digitalmars.D.learn: D CGI test: linux.so.2: bad ELF interpreter: No such file or directory (2011/04/25) digitalmars.D.learn: Linux: How to statically link against system libs? (2011/04/26) http://ubuntuforums.org/showthread.php?t=1740277 But the bottom line seems to be: Linux is in a bigger DLL hell than windows has ever been, and I don't think *anyone* actually knows how to do it. In my case, I ended up just installing an older version of linux in a VM and compiling inside that (CentOS 4, largely because I needed to be able to run on a CentOS server that wasn't happy with my Kubuntu 10.04 executables). The resulting binaries did work on my Kubuntu 10.04 machine, too, so I guess the trick is to just compile on the oldest machine you can. Go figure: All the focus everyone puts on updating to newer versions, and it ends up best to stick with the older versions - not because the older ones were better, but just *because* they're older. Meh. Anyway, pardon the rant :/ Hehe. You'd think there'd be a way to compile in a backwards-compatible way on linux, but I'm getting the impression that if it's possible, no one actually knows how. Wouldn't it just be possible to use an older version of GCC? Added build instructions at the bottom of: https://bitbucket.org/doob/dvm Thanks :) I think I'm almost there. I've been using D2/Phobos/RDMD for the past year or so (plus my usual machine is a windows box), so I had a lot of setting up to do, but I think I've almost got it now. When I do, I'll post the final binary in case it helps anyone else (I can only make a 32-bit binary though). -- /Jacob Carlborg
Re: DVM - D Version Manager 0.2.0
On 2011-05-18 10:21, Nick Sabalausky wrote: Nick Sabalauskya@a.a wrote in message news:iqvru7$cnu$1...@digitalmars.com... Jacob Carlborgd...@me.com wrote in message news:iqvpon$6p0$1...@digitalmars.com... On 2011-05-18 06:35, Nick Sabalausky wrote: Sounds cool, but dvm-0.2.0-linux-32 is just giving me Illegal instruction on Kubuntu 10.04 x86-32. And I don't see any instructions for how to build it anywhere in the source tree or on the homepage. Ok, strange. I built the tool on Ubuntu 11.04, maybe it's too new. How can I build it to work on as many platforms as possible? The runtime dependencies are just the same as a regular C application and zlib. Added build instructions at the bottom of: https://bitbucket.org/doob/dvm Thanks :) I think I'm almost there. I've been using D2/Phobos/RDMD for the past year or so (plus my usual machine is a windows box), so I had a lot of setting up to do, but I think I've almost got it now. When I do, I'll post the final binary in case it helps anyone else (I can only make a 32-bit binary though). Done. Here's the binary, it works for me: http://www.semitwist.com/download/app/dvm-0.2.0-linux-32 Thanks, I'll upload it when I get a chance. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.2.0
Am 18.05.2011 14:21, schrieb Steven Schveighoffer: On Wed, 18 May 2011 03:15:50 -0400, Nick Sabalausky a@a.a wrote: But the bottom line seems to be: Linux is in a bigger DLL hell than windows has ever been, and I don't think *anyone* actually knows how to do it. This is one of the side effects of having open source software. Since everything on linux is expected to be open source, it's expected that you simply recompile everything for your system. In this respect, Windows has Linux beat hands down. A hardware company that builds a driver needs only to support one compiled driver that just keeps working no matter how many times XP is updated. Drivers are completely different from normal applications on Linux. Because the Kernel changes all the time you have to change drivers quite often. The userspace should be more stable - AFAIK the kernel ABI is backwards compatible since kernel 0.99 or something, i.e. programs from back than should still work. In practice there is some kind of DLL hell because old software may rely on old libs that are not available on newer distributions (or only in not backward-compatible versions). For Open Source software that is not that much of a problem, often it's sufficient to recompile.. Closed source software on Linux often supplies almost all needed libraries to avoid problems with preinstalled libs - or is even statically linked. I think this is the same on Windows.. Also, as Nick mentioned, it helps to compile software on a older distribution, because many libs are at least backwards compatible (to a certain degree), but not the other way round, so it still works on newer/recent distributions - while compiling on your newest bleeding edge beta Ubuntu (or Debian unstable or whatever) will quite likely produce binaries that won't work on older distributions. I maintain Debian/Ubuntu packages for a Quake2 port (Yamagi Quake2) and building them on a old Debian etch chroot jail produces binaries that work on about any Debian/Ubuntu from the last years (at least there never have been complaints that it doesn't work). I think reading some of the issues with MacOSX breaking dmd builds by going through a *point* revision, it sounds like MacOSX is just as bad. Strange, considering that MacOSX isn't open and there are not a several different distributions of it. At my previous company, we integrated software from pure software companies into their required OSes and hardware, and did all the OS/hardware dirty work for them (i.e. we turned pure software into an appliance). One of the *worst* problems was when the customer wanted some version of Linux, and let's say they had a specific kernel build. Because of the expectation from the Linux kernel that you just recompile all your drivers, any RAID card (a very common requirement) which had proprietary driver code would require us to contact the hardware vendor, and have them rebuild the RAID driver on their specific kernel (for a not-so-nominal fee of course, with very little support). That's why you should use hardware that doesn't rely on proprietary drivers on Linux. If the driver is integrated in the Kernel you don't have to worry if it still works after minor or major upgrades. On Windows you may have hardware that is supported on Windows XP, but not on Win7 etc. I think using hardware with free/open drivers is realistic for about any hardware besides video cards - although the open drivers for AMD/Ati are getting better. And the proprietary drivers for them are compatible to any recent kernels (apart from maybe the most recent one, but you won't find that in distributions anyway). You just have to be a bit careful and choose your hardware accordingly. I fantasized about building my own linux kernel that had zero configuration options, and would never break driver compatibility between point revisions. Such a kernel would allow hardware companies to release one driver and have it work for any system that used their hardware and that kernel. Like Redhats 2.6.18 fork they maintained forever? I can't imagine hardware companies love supporting umpteen driver versions multiplied by umpteen linux vendors (generally they only pick one vendor and support that). Yeah, they should just donate the driver to the kernel (or at least release HW specs so somebody else can write an open driver) and let the kernel developers maintain it. Of course, that dream would be impossible to realize without tremendous effort, which I don't have. Ah well. -Steve Cheers, - Daniel
Re: DVM - D Version Manager 0.2.0
On 2011-05-18 14:21, Steven Schveighoffer wrote: On Wed, 18 May 2011 03:15:50 -0400, Nick Sabalausky a@a.a wrote: But the bottom line seems to be: Linux is in a bigger DLL hell than windows has ever been, and I don't think *anyone* actually knows how to do it. This is one of the side effects of having open source software. Since everything on linux is expected to be open source, it's expected that you simply recompile everything for your system. In this respect, Windows has Linux beat hands down. A hardware company that builds a driver needs only to support one compiled driver that just keeps working no matter how many times XP is updated. The problem I have with my tool is like the chicken and the egg problem. The tool installs D compilers and you're supposed to use the tool without the requirement of an pre-existing DMD compiler. I think reading some of the issues with MacOSX breaking dmd builds by going through a *point* revision, it sounds like MacOSX is just as bad. I have only had that issue with DMD. I guess it somewhat special since it needs to be compatible with GCC and the linker in another way than regular applications need to be. As far as I know a DMD compiled on an older version will run on a newer version but it's another thing with the executables produced by dmd. I'm still using a very old version of synergy on Mac OS X, I think it was compiled around 2006 on Mac OS X 10.4. I'm using it without any problems on Mac OS X 10.7. -- /Jacob Carlborg
Re: DVM - D Version Manager 0.2.0
On Wed, 18 May 2011 10:47:02 -0400, Daniel Gibson metalcae...@gmail.com wrote: Am 18.05.2011 14:21, schrieb Steven Schveighoffer: At my previous company, we integrated software from pure software companies into their required OSes and hardware, and did all the OS/hardware dirty work for them (i.e. we turned pure software into an appliance). One of the *worst* problems was when the customer wanted some version of Linux, and let's say they had a specific kernel build. Because of the expectation from the Linux kernel that you just recompile all your drivers, any RAID card (a very common requirement) which had proprietary driver code would require us to contact the hardware vendor, and have them rebuild the RAID driver on their specific kernel (for a not-so-nominal fee of course, with very little support). That's why you should use hardware that doesn't rely on proprietary drivers on Linux. If the driver is integrated in the Kernel you don't have to worry if it still works after minor or major upgrades. On Windows you may have hardware that is supported on Windows XP, but not on Win7 etc. I don't want to get into a philosophical debate here, but this is truly unrealistic. I think it's one of the main reasons many hardware companies don't support Linux. Opening the source does not mean you will not support it, and then you have to deal with 8 million configuration options for the kernel to test against your driver. As a hardware company whose main purpose is not writing drivers, that sounds like a QA nightmare. Yes, XP drivers don't work on Windows 7, but they work on XP, and there is only *one* XP. Furthermore, Microsoft *purposely* does not invalidate existing drivers. Compare that to Linux, where not only do the interfaces in the kernel change from revision to revision, but someone is *rebuilding* the entire kernel and all the drivers on every revision. I'm surprised it works as well as it does. Case in point, while I was using Linux as my main OS, an upgrade of the Fedora kernel simply broke my sound card driver. There was no changes to the driver, and I really never figured out what happened, but an upgrade to the next major release fixed the problem. There is absolutely no reason for existing drivers to break on a minor upgrade. I think using hardware with free/open drivers is realistic for about any hardware besides video cards - although the open drivers for AMD/Ati are getting better. And the proprietary drivers for them are compatible to any recent kernels (apart from maybe the most recent one, but you won't find that in distributions anyway). You just have to be a bit careful and choose your hardware accordingly. Printer support is woefully missing. My 2-year old printer still isn't supported on Linux. I fantasized about building my own linux kernel that had zero configuration options, and would never break driver compatibility between point revisions. Such a kernel would allow hardware companies to release one driver and have it work for any system that used their hardware and that kernel. Like Redhats 2.6.18 fork they maintained forever? Not really. I mean freeze the configuration options for the kernel -- they can never change except for a major release. Then, don't recompile the drivers for every kernel update. Maintain *binary* compatibility for drivers, so one never has to recompile them unless the driver itself has a bug. I can't imagine hardware companies love supporting umpteen driver versions multiplied by umpteen linux vendors (generally they only pick one vendor and support that). Yeah, they should just donate the driver to the kernel (or at least release HW specs so somebody else can write an open driver) and let the kernel developers maintain it. This isn't always possible, many companies do not own all the software in their drivers, and especially many of the RAID card companies put a lot of the RAID code into their drivers -- that's their IP, and they would be giving away their trade secrets to make it open source. -Steve
Re: DVM - D Version Manager 0.2.0
Am 18.05.2011 17:20, schrieb Steven Schveighoffer: On Wed, 18 May 2011 10:47:02 -0400, Daniel Gibson metalcae...@gmail.com wrote: Am 18.05.2011 14:21, schrieb Steven Schveighoffer: At my previous company, we integrated software from pure software companies into their required OSes and hardware, and did all the OS/hardware dirty work for them (i.e. we turned pure software into an appliance). One of the *worst* problems was when the customer wanted some version of Linux, and let's say they had a specific kernel build. Because of the expectation from the Linux kernel that you just recompile all your drivers, any RAID card (a very common requirement) which had proprietary driver code would require us to contact the hardware vendor, and have them rebuild the RAID driver on their specific kernel (for a not-so-nominal fee of course, with very little support). That's why you should use hardware that doesn't rely on proprietary drivers on Linux. If the driver is integrated in the Kernel you don't have to worry if it still works after minor or major upgrades. On Windows you may have hardware that is supported on Windows XP, but not on Win7 etc. I don't want to get into a philosophical debate here, but this is truly unrealistic. I think it's one of the main reasons many hardware companies don't support Linux. Opening the source does not mean you will not support it, and then you have to deal with 8 million configuration options for the kernel to test against your driver. As a hardware company whose main purpose is not writing drivers, that sounds like a QA nightmare. I don't know much about coding for the kernel, but I guess that most of the configuration options shouldn't affect your driver. Of course there may still be a lot of options left that could affect your driver. Yes, XP drivers don't work on Windows 7, but they work on XP, and there is only *one* XP. Furthermore, Microsoft *purposely* does not invalidate existing drivers. Compare that to Linux, where not only do the interfaces in the kernel change from revision to revision, but someone is *rebuilding* the entire kernel and all the drivers on every revision. I'm surprised it works as well as it does. Case in point, while I was using Linux as my main OS, an upgrade of the Fedora kernel simply broke my sound card driver. There was no changes to the driver, and I really never figured out what happened, but an upgrade to the next major release fixed the problem. There is absolutely no reason for existing drivers to break on a minor upgrade. Are you sure that it wasn't some userspace fuckup? Also: bugs in the kernel and drivers are always possible, especially when using a bleeding edge distribution like Fedora. I think using hardware with free/open drivers is realistic for about any hardware besides video cards - although the open drivers for AMD/Ati are getting better. And the proprietary drivers for them are compatible to any recent kernels (apart from maybe the most recent one, but you won't find that in distributions anyway). You just have to be a bit careful and choose your hardware accordingly. Printer support is woefully missing. My 2-year old printer still isn't supported on Linux. As I said, you have to choose your hardware accordingly. There are a lot of printers that have really good Linux support - more expensive ones via postscript and/or PCL, cheap ones (especially inkjets) often need some proprietary libs, that are however independent of the kernel and tend to work, even when they haven't been updated for some years (cheap HP printers are often supported via HPs open source hplip driver). http://www.openprinting.org/printers is pretty helpful and the proprietary drivers are available from the printer vendors (for example Brother supports many of their printers), so it's a good idea to look on that page and on the vendors page for linux support before buying a printer ;-) I fantasized about building my own linux kernel that had zero configuration options, and would never break driver compatibility between point revisions. Such a kernel would allow hardware companies to release one driver and have it work for any system that used their hardware and that kernel. Like Redhats 2.6.18 fork they maintained forever? Not really. I mean freeze the configuration options for the kernel -- they can never change except for a major release. Then, don't recompile the drivers for every kernel update. Maintain *binary* compatibility for drivers, so one never has to recompile them unless the driver itself has a bug. I can't imagine hardware companies love supporting umpteen driver versions multiplied by umpteen linux vendors (generally they only pick one vendor and support that). Yeah, they should just donate the driver to the kernel (or at least release HW specs so somebody else can write an open driver) and let the kernel developers maintain it. This isn't
Re: DVM - D Version Manager 0.2.0
On 18/05/2011 16:20, Steven Schveighoffer wrote: Printer support is woefully missing. My 2-year old printer still isn't supported on Linux. Now this is beyond me. Everyone I've talked to says printer support in Linux sucks, but I've been through several printers, and Linux has been the only operating system I've used that's had no problems with it. Regardless of the distro, it picks up a local or network printer and allows me to print without any configuration whatsoever - apparently it doesn't 'just work' for anyone else though. In OS X and Windows I have to manually find network printers and find drivers online, only the latter for local printers. Even then they don't always work. -- Robert http://octarineparrot.com/
Re: DVM - D Version Manager 0.2.0
On Wed, 18 May 2011 14:51:18 -0400, Robert Clipsham rob...@octarineparrot.com wrote: On 18/05/2011 16:20, Steven Schveighoffer wrote: Printer support is woefully missing. My 2-year old printer still isn't supported on Linux. Now this is beyond me. Everyone I've talked to says printer support in Linux sucks, but I've been through several printers, and Linux has been the only operating system I've used that's had no problems with it. Regardless of the distro, it picks up a local or network printer and allows me to print without any configuration whatsoever - apparently it doesn't 'just work' for anyone else though. In OS X and Windows I have to manually find network printers and find drivers online, only the latter for local printers. Even then they don't always work. At work, since I've been here (almost 2 years), my laptop always cuts off about 1/8 of an inch from the left of the page. Until the latest upgrade to ubuntu 11, I would have to adjust the image quality to 1200 dpi every time I printed (even from the same application) or else any graphics on a page would be super-grainy like I printed it in 1995. I'm sure it works great in some cases. Just not in general. And mostly not for me :( -Steve
Re: DVM - D Version Manager 0.2.0
Am 18.05.2011 21:22, schrieb Steven Schveighoffer: On Wed, 18 May 2011 14:51:18 -0400, Robert Clipsham rob...@octarineparrot.com wrote: On 18/05/2011 16:20, Steven Schveighoffer wrote: Printer support is woefully missing. My 2-year old printer still isn't supported on Linux. Now this is beyond me. Everyone I've talked to says printer support in Linux sucks, but I've been through several printers, and Linux has been the only operating system I've used that's had no problems with it. Regardless of the distro, it picks up a local or network printer and allows me to print without any configuration whatsoever - apparently it doesn't 'just work' for anyone else though. In OS X and Windows I have to manually find network printers and find drivers online, only the latter for local printers. Even then they don't always work. At work, since I've been here (almost 2 years), my laptop always cuts off about 1/8 of an inch from the left of the page. Until the latest upgrade to ubuntu 11, I would have to adjust the image quality to 1200 dpi every time I printed (even from the same application) or else any graphics on a page would be super-grainy like I printed it in 1995. I'm sure it works great in some cases. Just not in general. And mostly not for me :( -Steve http://localhost:631 Printers - click on that printer - Administration - Set Default Options - General - Print Quality
Re: DVM - D Version Manager 0.2.0
Jacob Carlborg d...@me.com wrote in message news:ir0o9o$1st5$1...@digitalmars.com... On 2011-05-18 14:21, Steven Schveighoffer wrote: On Wed, 18 May 2011 03:15:50 -0400, Nick Sabalausky a@a.a wrote: But the bottom line seems to be: Linux is in a bigger DLL hell than windows has ever been, and I don't think *anyone* actually knows how to do it. This is one of the side effects of having open source software. Since everything on linux is expected to be open source, it's expected that you simply recompile everything for your system. In this respect, Windows has Linux beat hands down. A hardware company that builds a driver needs only to support one compiled driver that just keeps working no matter how many times XP is updated. The problem I have with my tool is like the chicken and the egg problem. The tool installs D compilers and you're supposed to use the tool without the requirement of an pre-existing DMD compiler. I've been thinking it would probably be possible to bootstrap DVM with a shell script that would wget some specific DMD, set it up, at least enough to build DVM (possibly even automatically building DMD/druntime/phobos/tango - which is something we really need a more automated way to do anway, especially for trunk versions (or whatever the Git-lingo for trunk is)), and then use that to build DVM. I may give it a try myself.