<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!-- Copyright 2004 Aleksey Gurtovoy -->
<!-- Copyright 2003, 2004 Vladimir Prus -->
<!-- Distributed under the Boost Software License, Version 1.0. -->
<!-- (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) -->

<html>
  <head>
    <meta name="generator" content=
    "HTML Tidy for Linux/x86 (vers 1st April 2002), see www.w3.org">
    <meta name="generator" content="Microsoft FrontPage 5.0">
    <meta http-equiv="Content-Type" content=
    "text/html; charset=windows-1252">
    <!-- tidy options: &dash;&dash;tidy-mark false -i -wrap 78 !-->

    <title>Boost Build System V2</title>
  </head>

  <body bgcolor="#FFFFFF" text="#000000">
    <img src="../../../../boost.png" alt="boost.png (6897 bytes)" align="center"
    width="277" height="86"> <!-- sf logo -->
     

    <h1>Boost Build Development Plan</h1>

    <ul>
      <li>
        <b>Milestone 2</b> (October 25, 2002) 

        <p>Boost buildable with gcc and also usable as part of another
        project.</p>
      </li>

      <li>
        <b>Milestone 3</b> (May 21, 2003) 

        <p>Two gcc versions and two other compilers are supported. Some other
        tools (e.g. lex and BoostBook) are implemented.</p>
      </li>

      <li>
        <b>Milestone 4</b> (June 18, 2003) 

        <p>More tools implemented.</p>
      </li>

      <li>
        <b>Milestone 5</b> (Jule 2, 2003) 

        <p>Improvements and bugfixes with dependency scanning. Support for
        i18n tools. Testing framework for Boost.</p>
      </li>

      <li>
        <b>Milestone 6</b> (Jule 22, 2003)

        <p>Bugfixes.</p>
      </li>

      <li>
        <b>Milestone 7</b> (Aug 1, 2003)

        <p>Optimizations.</p>
      </li>

      <li>
        <b>Milestone 8</b> (Oct 15, 2003)

        <p>Implementation of regression testing framework was
          implemented. Handling of dependencies to generated headers was
          optimized. Algorithms for link-compatibility checking and selecting
          main target alternatives were improved.</p>
      </li>

      <li>
        <b>Milestone 9.1</b> (Nov 06, 2003)

        <p>Performance was considerably improved. The syntax for linking a
        library into a library was simplified. The 'stage' rule can traverse
        dependencies of the targets it installs. Regression testing support
        now works on Windows. Some toolsets were improved. Bugs in project
        loading and suffix determination were fixed.
      </li>

      <li>
        <b>Milestone 10</b> (TBD)

        <p>Remaining features for <a href="http://boost.org">C++ Boost</a>:
        improved installation, Python support. Uniform toolset initialization
        scheme. Many bugfixes</p>
      </li>

      
      <li>
        <b>Alpha</b> (TBD) 

        <p>Optimization. Using buildable tools: consider using bison, which
        is itself built with Boost.Build.</p>
      </li>

      <li>
        <b>Beta</b> (TBD) 

        <p>Feature-complete milestone.</p>
      </li>

      <li>
        <b>2.0 Release</b> (TBD) 

        <p>Bugfixes</p>
      </li>
    </ul>
    <hr>

    <p>&copy; Copyright Vladimir Prus 2002-2003. Permission to copy, use,
    modify, sell and distribute this document is granted provided this
    copyright notice appears in all copies. This document is provided "as is"
    without express or implied warranty, and with no claim as to its
    suitability for any purpose.</p>

    <p>Revised 
    <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan
                                        -->23 Aug, 2004 
    <!--webbot bot="Timestamp" endspan i-checksum="13972"
                                        -->
    </p>
  </body>
</html>

