Details:
* New: In <vlsispad/utilities>, new objet Dots for displaying a kind
of progress bar.
* Change: In <vlsisapd/bookshelf>, keywords are now case-insensitive.
Added a "strict syntax" option (to be disabled for ISPD05).
* New: First working implementation of Etesian, at least for ISPD05
"bigblue1".
* Change: In <hurricane>, in Cell::flattenNets(), no longer display
a warning if an instance is unplaced, this does not make sense
when the circuit is not placed.
* New: In <crlcore>, Added translator for ISPD05 bookshelf, the
circuit is *not* placed, unlike in ISPD04 and terminal nodes
*are* true cells.
* New: In <unicorn>, added entry in import cell for ISPD05 benchmarks.
Update to Qt 5:
* Change: Now requires at least cmake 2.8.9.
* Change: CMakeLists.txt needs small changes. Qt modules must be found
one by one (Core, Gui, Widgets). Must add "set(CMAKE_AUTOMOC ON)"
in the top file and replace "qt4" prefix in macros by "qt5".
Added simpler macro "setup_qt()" in FindBootstrap.cmake.
* Change: No longer need to include <QGtkStyle> is is choosen by default
according to the current desktop environment.
* Change: In <hurricane>, In HApplication, launch ExceptionWidget when
a std::exception is catched instead of silently discarting it.
New placer Tool: Etesian
* New: <etesian> analytical placer. Encapsulate Coloquinte from
Gabriel Gouvine.
* New: in <documentation>, add stub demonstration ToolEngine <smurf>.
Needs to be commented.
Miscellaneous:
* New: in <boostrap> and <unicorn>, added support for Etesian, the new
analytic placer. The tool itself will be added in the next commit.
* Bug: in <CellWidget>, when shifting the display buffer, we no longer
can copy the buffer on itself (we should never have). Now go through
a temporary one (PlaneId::AutoCopy) which is added to the
DrawingPlanes. Affect "goLeft()" and "goUp()".
* Bug: In <CellWidget>, remove the WA_PaintOnScreen flag/attribute.
When it's on, no PaintEvent is transmitted to the CellWidget
when it's the central widget of the <CellViewer> (QMainWindow).
It's something I still don't understand from the doc of Qt.
* Change: In <AreaCommand>, use the PlaneId enumeration instead of a
anonymous numerical index.
* Change: In <HApplication>, no longer catch and silently discard
standartd exceptions but launch the ExceptionWidget...
Suppress the now deprecated constructor with "Type" argument.
* Change: In <SelectionModel>, the "reset()" method is deprecated in
Qt5, instead enclose the "clear()" by a "beginResetModel()" and
"endResetModel()" pair.
* New: In <crlcore>, add support for ISPD05 benchmarks (in Bookshelf
format). Forked from ISPD04 and not finished yet.
* Change: In <Mauka>, distinguish the Action string identifier from
<Etesian>
* New: In <unicorn>, add entry for ISPD05 loader. Add entry for
<Etesian> analytic placer.
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.
Documentation restructuration:
* Bug: in <hurricane>: bad figure for transf-R1.
* Change, in <kite>: Remove deprecated configuration variables.
* New: documentation <tool> to regroup all documentation not directly
related to one tool.
* Change, in <crlcore>, move the user's guide and the top doc index
into <documentation>.
* New, in <documenation>: added Python script demo based on AM2901.
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: Added an id on DBo, SharedName and SharedPath to ensure
database determinism. All the hash key now uses the id instead
of the object's pointer (see _getHashValue()).
- Change: In RoutingPad, position is now only relative to the anchor,
no more (dx,dy). Add a isPlacedOccurrence() to check if all the
occurrence in the path are fixed and thus the position meaningful.
* ./hurricane/doc/hurricane:
- Change: In Cell, added doc about PlacementStatus.
- Change: In Transformation, more detailed explanations about the
orientations. A little beautifying too...
- Change: RoutingPad doc update.
- Change: Entity doc update (for id).
- Change: In HTML header/footer uses the new SoC.css.
- New: In PyDataBase, added method for getDB (the correct name, as alias)
and getRootLibrary().
- New: In PyComponent, added support for the optional BasicLayer argument
of getBoundingBox().
- New: In PyEntity, added support for conversion to/from RoutingPad.
- New: In PyHyperNet, added support for getNetOccurrences().
- New: In PyLibrary, added support for getLibrary().
- New: In NetExternalComponents, added support for setExternal().
- New: In hurricane/doc, added documentation RoutingPad, HyperNet & Query.
- New: In isobar, added support for RoutingPad.
- Change: In PyComponent, getCenter() method moved to it's right place in
the base class.
- Change: In PyPath, added duplicated methods (ApplyOn <-> applyOn and
Invert <-> invert).
- Change: In PyHurricane, add type object for all subtype of Component, then
we can use the Python "isinstance()" function to know the true type of a
component. Useful when looping over a collection of Component.
Name clash: We have used the class name as the name of the constructor
inside the Hurricane module, at a time we where less acquainted with
Python, so the real class are named 'PyVertical' for example, while
'Hurricane' is the constructor function. Should correct this in the
future but it's a huge work as all the Python scripts must be editeds...
- Change: In PyNet, adds the "getComponents()" Collection accessor.
- New: In Occurrence, added method getCompactString() to display a more
compact version of the occurrence.
- New: PyQuery & PyQueryMask expose the Query classe. Only partially implemented,
and with the start of the template based interface disabled.
- Bug: In PyHurricane, PyTypeViaLayer was *not* reference incremented, causing
the type to be desallocated when the Python interpreter was finalizing.
This was causing <isis> to fail.
- New: Added FreeBSD/Ubuntu patches from Otacilio De Araujo
(<otaciliodearaujo@gmail.com>).
* ./hurricane:
- Change: In CellViewer, one unificated method to lauch Python
scripts whatever they are Stratus or not.
- Change: In ScriptWidget, the function lauched is now
"ScriptMain()".
- New: In PyCellViewer, add the refresh method.
- A complete sweep of cleanup to suppress allmost all compiler warnings.
* ./hurricane/doc/hurricane:
- New: Documentation cleanup and update, particularly on the new Layer
derived classes.
* ./hurricane/src/hurricane,
./hurricane/src/isobar,
./hurricane/src/viewer:
- New: Creation of new methods, more explicit on DbU. Based on a to/from
naming scheme.
- New: Python support extented to include all objects needed to configure
through python scripts.
- Change: Finally understood what's causing the _XOPEN_SOURCE redefinition.
Basically the Python.h must be included first before any other
include. The type-puned problem will remains still (that is a Python
problem, not our own).
- Change: In DisplayStyle, uses shared_ptr for DrawingStyle instead of
custom made reference count.
- New: In ExceptionWidget, mimic more closely the behavior of a QDialog.
Uses QTextEdit/QTextDocument for the trace. Static "all in one" methods,
build from various exceptions/Errors & QString. Automatic window centering
when the trace is displayed.
- Change: In RoutingPad, uses my C++ style. Normalize constructors calls.
Allow to select (trough flags) the way the "best component" is choosen.
Currently: Biggest Area or Lowest Layer or Highest Layer.
* ./hurricane/src/viewer:
- New: In DisplayStyle, darkening is now expressed as a ratio over the HSV
components of a color. Introduce a new DisplayStyle::HSVr type.
Allow a more readable darkening effect. All object modicated accordingly.
- Change: In NetlistWidget, the "Net" section now correctly dimension itself
on the widest net name. Must suppress all the size Hints in the header
& data models.
- In CellViewer, adds a shortcut for launching Stratus scipts: SHIFT+P,S
and one for pure Python scripts: SHIFT+P,P.
- In ExceptionWidget, put the trace inside a QScrollArea so all the call
stack can be viewed regardless of the window's size. It seems that
QFontMetrics has problems to compute the right text size when using
a Qt::RichText enabled widget. Adds some "manual" corrections, hope
they will be sufficiently portables.
- New: Torus object. To allow a simpler management of a chip's corona,
the toric area between the pads and the core.
- Change: In HyperNet/LeafPlugOccurrences, change the instance stop criterions
from "isLeaf()", which means "contains no instances" to "isTerminal()"
which can be programmatically changed. This has to be done for the Pads
which are non-leaf due to "padreal" but still must be considered for their
connectors.
This modification is coupled with one in the Ap parser.
- Change: In Backtrace, enable support for Apple backtrace. This is a blind
test as I can't check by myself.
* ./hurricane/src/viewer:
- Change: In CellWidget/SelectionModel/SelectionWidget, rewrite the Gos selec-
tion mechanism. Now ExtensionGo could be selecteds as they ought to be.
Also adopt a more standard way of how objetcs are selecteds.
Prefer "dataChanged()" signal over "reset()" or "layoutChanged()" as
it keeps the selection instead of resetting it.
Unselecteds entry in the window (toggled with 't') are now shown in
red for better readability.
- New: Backtrace to print the stack when an exception is thrown.
- New: In Error, support for Backtrack.
- Change: In TextTranslator, provides a default HTML translator instead of
building it every time it was needed.
- Bug: In Common, when demangling a C++ symbol fails, returns the empty
string instead of NULL.
* ./hurricane/src/viewer:
- New: In Exception, support for the Backtrack new feature.
* ./hurricane/src/isobar:
- Change: In PyHurricane, when catching a C++ exception, adds a newline to
have a more clean display.
- New: In Query, adds an accessor to get the current path.
- Bug: In NetExternalComponents, every component of an external net was
considered as an external one. Now only truly external components
are considered.
* ./hurricane/src/isobar:
- New: StratusScript, dedicated Stratus script laucher.
- Bug: In CellWidget, when drawing selecteds Gos, the loop variable was
not reset between loops resulting in incomplete display.
* ./hurricane/src/isobar:
- New: In PyHorizontal & PyVertical, adds mutator methods.