[Ecls-list] Patch: MSVC build reform

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Sat Sep 13 07:34:16 UTC 2008


On Fri, Sep 12, 2008 at 7:28 AM, Muhammad Haggag <mhaggag at gmail.com> wrote:

> Attached is a patch that makes a number of changes to the MSVC build.


Hi, thanks a lot for the patch. I will review and commit it ASAP.


> == Defaults changed ==
> Enables win32 thread support by default.
> Enables Unicode by default.
>
> It makes sense to me to enable both of these by default, given that
> Visual C++ enables them by default as well (Unicode, and MT CRT). Are
> there any disadvantages to them that would push them into the "opt-in"
> category?


There are two problems. First is that both of them introduce a significant
overhead, for instance, with unicode strings now by default have to be of
the "large" type. Second, Unicode breaks ansi compatibility because support
is incomplete and not all Common Lisp functions will perform as expected:
you cannot open files with UTF8, there is no sensible external
representation, etc. But most important, threads cause a real overhead due
to locking of packages and file operations, and most important, due to the
current inefficiency of global variable representation.

You do not need thread support to run ECL in a multithreaded application if
you restrict yourself to a single thread of Lisp execution, even if Visual
C++ compiles your code as multithreaded. OTOH, building  ECL as
multithreaded is right now the only flag to activate a multithreaded garbage
collector, which is required for multithreaded applications. Hmm,

But I left it as is for now. "If it isn't broken, don't fix it" and all that
> :)
>

Looks good to me. I only need to run some tests.

Juanjo

-- 
Instituto de Física Fundamental
CSIC, Serrano, 113, Madrid 28040 (Spain)
http://juanjose.garciaripoll.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20080913/18d79be7/attachment.html>


More information about the ecl-devel mailing list