<commit_before>.. raw:: html

  <style type="text/css">
    .none { background-color: #FFCCCC }
    .partial { background-color: #FFFF99 }
    .good { background-color: #CCFF99 }
  </style>

.. role:: none
.. role:: partial
.. role:: good

===============
Windows support
===============

LLD supports Windows operating system. When invoked as ``lld-link.exe`` or with
``-flavor link``, the driver for Windows operating system is used to parse
command line options, and it drives further linking processes. LLD accepts
almost all command line options that the linker shipped with Microsoft Visual
C++ (link.exe) supports.

The current status is that LLD can link itself on Windows x86/x64
using Visual C++ 2013 as the compiler.

Development status
==================

Driver
  :good:`Mostly done`. Some exotic command line options that are not usually
  used for application develompent, such as ``/DRIVER``, are not supported.
  Options for Windows 8 app store are not recognized too
  (e.g. ``/APPCONTAINER``).

Linking against DLL
  :good:`Done`. LLD can read import libraries needed to link against DLL. Both
  export-by-name and export-by-ordinal are supported.

Linking against static library
  :good:`Done`. The format of static library (.lib) on Windows is actually the
  same as on Unix (.a). LLD can read it.

Creating DLL
  :good:`Done`. LLD creates a DLL if ``/DLL`` option is given. Exported
  functions can be specified either via command line (``/EXPORT``) or via
  module-definition file (.def). Both export-by-name and export-by-ordinal are
  supported. LLD uses Microsoft ``lib.exe`` tool to create an import library
  file.

Windows resource files support
  :good:`Done`. If an ``.rc`` file is given, LLD converts the file to a COFF
  file using some external commands and link it. Specifically, ``rc.exe`` is
  used to compile a resource file (.rc) to a compiled resource (.res)
  file. ``rescvt.exe`` is then used to convert a compiled resource file to a
  COFF object file section. Both tools are shipped with MSVC.

Safe Structured Exception Handler (SEH)
  :good:`Done` for both x86 and x64.

Module-definition file
  :partial:`Partially done`. LLD currently recognizes these directives:
  ``EXPORTS``, ``HEAPSIZE``, ``STACKSIZE``, ``NAME``, and ``VERSION``.

Debug info<commit_msg>Fix documentation.<commit_after>.. raw:: html

  <style type="text/css">
    .none { background-color: #FFCCCC }
    .partial { background-color: #FFFF99 }
    .good { background-color: #CCFF99 }
  </style>

.. role:: none
.. role:: partial
.. role:: good

===============
Windows support
===============

LLD supports Windows operating system. When invoked as ``lld-link.exe`` or with
``-flavor link``, the driver for Windows operating system is used to parse
command line options, and it drives further linking processes. LLD accepts
almost all command line options that the linker shipped with Microsoft Visual
C++ (link.exe) supports.

The current status is that LLD can link itself on Windows x86/x64
using Visual C++ 2013 as the compiler.

Development status
==================

Driver
  :good:`Mostly done`. Some exotic command line options that are not usually
  used for application develompent, such as ``/DRIVER``, are not supported.
  Options for Windows 8 app store are not recognized too
  (e.g. ``/APPCONTAINER``).

Linking against DLL
  :good:`Done`. LLD can read import libraries needed to link against DLL. Both
  export-by-name and export-by-ordinal are supported.

Linking against static library
  :good:`Done`. The format of static library (.lib) on Windows is actually the
  same as on Unix (.a). LLD can read it.

Creating DLL
  :good:`Done`. LLD creates a DLL if ``/DLL`` option is given. Exported
  functions can be specified either via command line (``/EXPORT``) or via
  module-definition file (.def). Both export-by-name and export-by-ordinal are
  supported. LLD uses Microsoft ``lib.exe`` tool to create an import library
  file.

Windows resource files support
  :good:`Done`. If an ``.res`` file is given, LLD converts the file to a COFF
  file using ``cvtres.exe`` command and link it.

Safe Structured Exception Handler (SEH)
  :good:`Done` for both x86 and x64.

Module-definition file
  :partial:`Partially done`. LLD currently recognizes these directives:
  ``EXPORTS``, ``HEAPSIZE``, ``STACKSIZE``, ``NAME``, and ``VERSION``.

Debug info
{'fraction_non_alphanumeric': 0.12052042912577038, 'fraction_numerical': 0.007760785208856425, 'mean_word_length': 3.990888382687927, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1171325', 'n_tokens_mistral': 1308, 'n_tokens_neox': 1220, 'n_words': 577}