Details:
* New: in <bootstrap>: add support for devtoolset-2 in ccb. Run the
cmake commands through 'scl', set shell environment variables
BOOST_INCLUDEDIR & BOOST_LIBRARYDIR and disable the default
system path search.
* Change: In various flex scanners add the %nounput to suppress
compiler warnings.
* Change: Little cleanup for g++ 4.8.1 as it's more strict.
* Change: In various top CMakeLists.txt, suppress extraneous '/'
after DESTDIR.
Project hierarchy reorganisation:
* With svn, we were doing a tool by tool checkout, suppressing the
whole repository hierarchy level.
* The tools were also grouped, inside one repository, into multiple
projects (<bootstrap>, <vlsisapd>, <coriolis>).
* We do not want to split up each tool into a separate repository,
given their tight integration (except for vlsisapd).
* We choose to simplify, and consider all tools in a svn repository
one project. Due to the way Git clone repositories, the directory
containing the project is now to be seen under "src/".
CMake modifications:
* Now that the <vlsisapd> and <bootstrap> projects are merged into
coriolis, modificate the top CMakeLists.txt of each tool to uses
only Coriolis (and bootstrap hard wired).
CCB compile script modifications:
* Uses the new source tree hierarchy, with the project directory
inserted.
* Remove (comment) all parts relateds to svn managment.
* Git is sufficiently simple so that we do not want to integrate
command shortcut into the script.
SVN cleanup:
* Remove the obsolete <chamsin> tool, that has become the full fledged
<chams> project long time ago.
- New: In MaukaEngine::Construct(), do not try to initialize the slice height
from a model with an empty AbutmentBox. Instead, signal an error (the model
is likely to be missing, it has been initialized from the COMPONENT).
- Change: In MaukaEngine::Construct(), clearer error message when there is duplicated
instances. Show the full occurrence path of each conflicting instance.
- Bug: In GraphicMaukaEngine::doQuadriPart(), performs a quadri-partition
only if there is more than 4*instanceStopCriterions Cells (trans-
hierarchically computeds).
- Change: New problem identified with the Python modules: each module seems
to be built as a complete binary, so all the static C++ initializers are
allocated in each module. In particular the C++ tree inheritance is built
for *each* module so we cannot longer uses the typeid() comparisons
across modules... It was used by boost::program_options to perform is
casts with boost::any and was starting throwing exceptions because of
bad casts. program_option was first initialized in "configuration"
first included by PyViewer then in PyCRL (see Utilities.cpp).
A first solution is to re-order the import of Python modules in
stratus1/st_model so that CRL is imported first.
The second is to not not link "configuration" with boost::program_option
as only the binary vlsisapd-conf-editor needs it.
That is a serious problem of which we must be aware and can cause further
strange behaviors.
Debug code used to diagnostic has been kept commented in the sources a
it may be needed again :-(
This behavior do not affect our singletons because they are part of
dynamic libraries that seems to be correctly shared between the various
Python modules.
* ./mauka:
- Change: In CMakeLists.txt, makes Mauka compliant with OSX (case sensitivity).
- Bug: target_link_libraries() must be put back for OSX Snow Leopard
(doesn't seems to affect Leopard). As I do not have an OSX under
my hand it's untested and is likely to fail at that point.
* ./mauka:
- Bug: Place intermediate levels of instances, so that they show up in
the top level.
- Change: New InsertFeeds method + module, sadly we cannot insert the feeds
cells in one merged step with the BBPlacer as the SubRows do not cover
the entire surface due to fixed Cells.
- Library linking: there must not be "target_link_library()" for libraries,
only when building binaries. Avoid clashes between static module
or class variables, and strange reinitialisation of those variables.
- Change: Boost is now always linked staticly.
- Change: In doQuadriPart, manage correctly non-square designs. So that
after an initial non-quadripartition step, the partitions are rougly
squares. Seems to have trouble with small designs.
./metis,
./mauka,
./katabatic,
./kite :
- Change: switch toward the XML configuration system. Suppress the need
of a default static configuration (now built on demand from the XML
database).
In Mauka and Kite, suppress the ConfigurationWidget, wich are
obsoleted by the generic XML configuration widget.
- New: In ConfigurationWidget, add support for hMETIS partitionner.
- New: Static method doQuadriPart() to perform recursive quadri-partionning
of the circuit. Down to the instanceStopCriterion and with metis/nimbus.
Ported from pycoriolis.
- New: MaukaEngine::regroupOverloadedGCells() also imported from pycoriolis.
- New: hMETIS support.
- Change: In Configuration, now CellGauge characteristics are supplied only
through Configuration.
- Change: In SubRow, change the way bin widths are computed.
- Bug: In Surface & MaukaEngine, lengthes that are "proportional" to areas
are now coded with double instead of DbU::Unit, because of capacity
overflow.