Switching (back) to MSVC (Re: [Vm-dev] What generates disabledPlugins.c?0

Andreas Raab andreas.raab at gmx.de
Thu Jul 22 15:20:12 UTC 2010


On 7/22/2010 4:55 AM, David T. Lewis wrote:
> On Wed, Jul 21, 2010 at 08:49:19PM -0700, Eliot Miranda wrote:
>> But the more serious issue is that the configure in VMMaker is only suitable
>> for linux.  I guess that the right thing to do for FreeBSD is to run make in
>> platforms/unix/config to generate a FreeBSD-specific configure.  But I'm out
>> of my depth when it comes to autoconf.
>
> Note that Ian moved to CMake for the unix builds, so autoconf is no longer
> used for building from the SVN trunk. In addition, Geoffroy Couprie has
> developed this further such that the VM can be built for both unix and
> Windows targets, see thread here:
>
>   http://lists.squeakfoundation.org/pipermail/vm-dev/2010-May/004574.html
>
> It's up to Ian and Andreas to say if they want to pursue this direction,
> but if you need the Cog build process to be more platform independent
> this would be a good thing to consider.

Personally, I'll be moving the Windows build back into MS land. All the 
reasons for using the MingW/GCC tool chain are gone by now:
* Availability of the tool chain: There have been free versions of MSVC 
for years now, so this is no longer an issue.
* Performance of the VM: With the JIT, the performance difference 
between the compilers no longer matters.
* Size of difficulty of the install: New versions of MingW are no easier 
to install than Cygwin or other monsters.

On the other hand, there are some exceptionally good reasons to use MSVC:
* Debugging: Did you know that MSVC now has seemless in-place editing? 
When I worked on SqueakSSL, I was shocked to find that an access 
violation was simply presented as a break point and after fixing it the 
compiler patched the code in place without restarting Squeak, and it worked!
* Up-to-date headers and libraries: SqueakSSL wouldn't compile on *any* 
version of MingW or Cygwin due to the absence / lack of correctness of 
the headers and missing libraries even though the APIs are 5+ years old.
* Consistent use of runtime libraries: For some external linkage, having 
the latest MSVC platform libraries available is important.

At this point the advantage is clearly with the MS tool chain and the 
only hurdle is that I'll have to update all the makefiles etc.

Cheers,
   - Andreas


More information about the Vm-dev mailing list