syphilis has asked for the wisdom of the Perl Monks concerning the following question:

The question, put bluntly, is "Where do I get it ?"

I've had a coupla goes at finding the free command line version of Visual Studio, but without success ... in fact I've never been able to find anything that I've gone looking for, on the MS website.In fact, whenever I visit the MS website I always come away thinking that I was bloody lucky to escape alive !!

So ... if someone can give me the link of the page to visit, and the search string(s) to enter, that would be great. All the better if someone can come up with the actual download links.

I gather, from the README.win32 in the perl 5.8.8 source, that I'm also going to need the "Platform SDK" (and possibly other stuff as well) - since the main aim is to be able to build a 64-bit perl (on an AMD64), or at least be able to compile perl extensions for ActiveState's 64-bit build of perl. (Does anyone here know specifically which version of Visual Studio ActiveState used to build their 64-bit version of perl ?)

BWOE: I'm about to take possession of an AMD64 computer (XP64 OS) - it's a Christmas present from a very important person (ie, me) to an equally important person (me) ... though the real beneficiary will be the shop I bought it from. First thing I'll want to do is connect it to the net, and the second thing I'll want to do is build a 64-bit version of perl 5.8.8. Unfortunately, my preferred compiler (the MinGW port of gcc) is 32-bit only and, afaict, if I want a 64-bit compiler on Windows I'm going to have to use a Microsoft 64-bit compiler ... and the free version of Visual Studio is one such compiler. (Please correct any mistakes I've made, so far)

I already have a copy of the commercial release of Visual Studio 7.0. I don't know if it has 64-bit capability, as I've only ever used it on Win32. Does anyone know whether it's likely to have 64-bit capabiity ? (I guess I'll find out for sure next week when I take possesssion of the new box.)

I also believe that I'll be able to build and run 32-bit apps (including MinGW-built 32-bit perl) on the AMD64 box. (Someone might like to gently forewarn me if that's not the case.)

One last question: Does Cygwin provide a 64-bit compiler for 64-bit processors ?

Cheers,
Rob

Replies are listed 'Best First'.
Re: [OT] The free version of Visual Studio
by BrowserUk (Patriarch) on Jan 01, 2007 at 08:38 UTC
      Is this what your looking for?

      More'n'likely it's exactly what I'm looking for - thanks, ever so much, for the link (which I've saved).

      I haven't downloaded anything yet - I'll wait until the new box arrives.

      In the meantime, I'm wondering what "Express Edition" signifies. Is that just a euphemism for "Command Line Edition" ?

      One of my other intended projects is to build a 64-bit GMP using VC++ 2005 and YASM using Brian Gladman's patches (http://fp.gladman.plus.com/computing/gmp4win.htm) which also cater for the "Express Edition" ... things are starting to look promising :-)

      Thanks BrowserUk.

      Cheers,
      Rob
        In the meantime, I'm wondering what "Express Edition" signifies. Is that just a euphemism for "Command Line Edition"?

        In general, "Express Edition" signifies a cheaper version that may not have all the bells and whistles of the full version. The degree to which it is inferior, and the precise meaning of "cheaper", vary. If the full version is shareware, the Express version would normally be freeware, but that is not _necessarily_ the case when the full version is distributed commercially. I have seen "Express" versions of things that were limited-time trials, for instance.

        So "Express Edition" in itself does not imply a command-line interface. However, it is possible that the Express Edition of this particular piece of software may have that feature. (I don't know, as I haven't used it.)


        Sanity? Oh, yeah, I've got all kinds of sanity. In fact, I've developed whole new kinds of sanity. You can just call me "Mister Sanity". Why, I've got so much sanity it's driving me crazy.
        Hi Rob, Unfortunately perl can not currently be compiled using the compiler (VC 8.0) that is included with MS 2005 Express Edition (or the full Visual Studio 2005 for that matter). This is mentioned in the perl 5.9.4 README.win32 but not in the 5.8.8 readme. However, while working to compile perlce I found that 5.8.8 fails building at miniperl.exe, so I can at least confirm this for 5.8.8 using the 2005 version compiler. The 2003 version of the MS compiler seems not to be available from microsoft anymore. Hopefully the build problems will get sorted out shortly.
Re: [OT] The free version of Visual Studio
by almut (Canon) on Jan 01, 2007 at 17:55 UTC

    Please report back, if you do succeed building a 64-bit Perl with the Visual Studio 2005 compiler.

    I did try, too. However, the build process only got as far as creating the miniperl binary, which is used to bootstrap the further steps. The show stopper was that the miniperl segfaulted.

    I haven't yet had time, nor patience, to look into why (this was for a project at work with deadline overdue...), so I went back to the Visual Studio .NET 2003 suite, which did work, more or less. I still got a gazillion of compiler warnings about "possible data loss, due to 64 --> 32 bit truncation" (or some such), but all in all, most of the tests still succeeded, i.e. 99.9%. (/msg me if you want more info -- right now, I don't remember the details, but I could look them up, as soon as I'm back at work...)

    A minor problem with the 2003 64-bit compiler was, that it doesn't support inline assembly (as used by the Win32::API module in a couple of places). Luckily, I didn't really need that specific functionality for the project, so I could get away with disabling the problematic sections of the code...

    <rant> I share your sentiments about the MS website... And, remotely related, I'm sooo glad to have the priviledge to run Linux most of the time. Even at work. I tell ya whut :) </rant>

Re: [OT] The free version of Visual Studio
by NetWallah (Canon) on Jan 01, 2007 at 20:42 UTC
    I currently use Strawberry perl 64-bit on my Vista-64 machine.

    It has instructions to roll-your-own if you need to, plus, fantastic CPAN-based module installation support.

    My main motivation was that Activestate's PPM was badly broken in their 64-bit releases.

         "A closed mouth gathers no feet." --Unknown

      Hi NetWallah,
      Are you sure that it's a 64-bit build of perl that you're using ? I can't find any mention of Win64 in relation to Strawberry perl.

      If they do have a 64-bit build, I would be most interested to read the "roll-your-own" instructions that you mentioned.

      As regards the ActiveState 64 bit builds, do they actually provide ppm packages ? The only ppm repositories I know of are for 32-bit builds.

      Cheers,
      Rob
        Oops - I guess I never bothered to check, until you asked. here is what 'perl -V' reveals:
        >perl -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef usethreads=define use5005threads=undef useithreads=define usemulti +plicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags =' -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DPERL_IMPL +ICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-st rict-aliasing -DPERL_MSVCRT_READFIX', optimize='-s -O2', cppflags='-DWIN32' ccversion='', gccversion='3.4.5', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='long lo +ng', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='g++', ldflags ='-s -L"c:\strawberry-perl\perl\lib\CORE" -L"c:\ +strawberry-perl\mingw\lib"' libpth=c:\strawberry-perl\mingw\lib libs= -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool - +lcomdlg32 -ladvapi32 -lshell32 -lole32 - loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 +-lodbccp32 perllibs= -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspo +ol -lcomdlg32 -ladvapi32 -lshell32 -lole 32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodb +c32 -lodbccp32 libc=-lmsvcrt, so=dll, useshrplib=yes, libperl=libperl58.a gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-mdll -s -L"c:\strawberry-perl\perl\lib +\CORE" -L"c:\strawberry-perl\mingw\lib"' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_MALLOC_WRAP PL_OP_SLAB_ALLOC USE_ITHREADS USE_LARGE_FILES USE_PERLIO Built under MSWin32 Compiled at Aug 27 2006 17:17:50 @INC: C:/strawberry-perl/perl/lib C:/strawberry-perl/perl/site/lib .
        So it looks like it is 32-bit, after all. My alplogies.

             "A closed mouth gathers no feet." --Unknown

A reply falls below the community's threshold of quality. You may see it by logging in.