- 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.
- Bug: In Mask, the "!=" operator was erroneously implemented like the
"==" operator. Making "!=" behave like "==", what a mess.
- Bug: In BasicLayer, in constructor the _blockageLayer and _connectorLayer
where *not* initialised, leading to erratic behavior when checked
against NULL.
- 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.
- 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.
* ./hurricane:
- Bug: In Instance, correct support for Instance::PlacementStatus::Code.
- New: NetExternalComponents python object wrapper, moves
getExternalComponents() from Hurricane module into that new object.
- New: Breakpoint python object wrapper, to allow stratus1 to stop each
times it calls the viewer.
- Change: In PyHurricane, UpdateSession is now a true object with static
methods.
- Change: In BreakpointWidget uses a local event loop mechanism that no
longer consumes 100% of a CPU while doing nothing... (copied from
Qt's sources of QDialog).
- 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.
* ./hurricane/src/hurricane:
- New: TextTranslator to allow translation to and from text & HTML.
- Change: In Exception, make uses of TextTranslator to correctly display
exception text when in graphic mode.
* ./hurricane/src/isobar:
- New: Script, small object to wrap around Python scripts.
- Change: In DisplayStyle, new attribute "goMatched" to tell if the style
is associated to a given Go and therefore should be displayed in the
Layer table.
- Change: In Instance & Cell, do *not* materialize unplaced instances.
This is to avoid overloading the QuadTree at point (0,0) and besides
has no senses. Uses the PlacementStatus state.
- Bug: In Viewer CMakeLists.txt, put tool include directories first.
- Change: When static linking is required, also switch Boost libraries in static
mode. Automatically done is modules using FindHURRICANE through
SET_LIB_LINK_MODE(). Note: FindBoost must be called *after* SET_LIB_LINK_MODE().
- Change: adopt a tree layout compliant with the UNIX FHS.
* includes under TOP/include/coriolis2.
* shared datas under TOP/shared/coriolis2.
* docs under TOP/share/doc/coriolis2.
* configuration under TOP/etc/coriolis2
* ./crlcore:
- Change: In Environment, comply to the new tree layout, search configuration
files under TOP/etc/coriolis2/.
* ./knik:
- Change: In flute, comply to the new tree layout, get the "POW*.dat" files
from TOP/share/coriolis2/flute-2.4.
libraries gets installed in "lib64" instead of "lib".
buildCoriolis.py sets automatically LIB_SUFFIX for cmake.
coriolis2.spec modificated to uses lib64 on 64 bits.
- Change: In the CMakeLists.txt, in all the install commands remove all
the leading "/" as they prevents the CMAKE_INSTALL_PREFIX to be took
into account. It was nevertheless working because buildCoriolis.py was
using DESTDIR which is prepended anyway.
* ./goodies:
- Change: In buildCoriolis.py, no longer uses the DESTDIR but instead
CMAKE_INSTALL_PREFIX.
- Cleanup: In Slot.h, comment out print for debug.
- New: In CellViewer, adds a renameCell() method to "rename" the currently
loaded Cell "in place". Utility function for SaveCellDialog (see below).
- Bug: In Net.h, force expansion of SlotTemplate<Net*> with the line:
const SlotTemplate<Net*> dummyNetSlot ( string("dummyNetSlot"), NULL );
I've no satisfactory explanation, but in the cyclop Inspector the
Cell's NetMap is correctly created and in the cgt Inspector, Nets
entries of the NetMap appears as "unsupported", meaning that the
SlotTemplate<> has not been generated for Net. This correct the
problem.
- Bug: In CellWidget, correct the slightly off position of Labels references.
- New: In ControllerWidget, new TabSettings tab to hold the configuration
settings of the various Coriolis tools. The TabSettings is a tab itself.
- Bug: In PaletteWidget, do not derive from QScrollArea. Instead uses it
as a child widget. This solves the refreshing problem of the Palette.
As a rule now: never derives from anything other than QWidget.
- New: GotoWidget, not having this feature finally unverved me enough for
beeing implemented. You can specify an (x,y) on which the view will
be centered and an aperture which gives the size of the view smallest
side. It's a way of specifying the zoom level (as the zoom is not
meaningful for users). An aperture of "zero" disable that feature,
that is, zoom remains unchanged. The coordinates are integer which
are implicitly expressed in the current mode used by the viewer
(Symbolic, Grid, or Physical in micro-meters).
- Change: Big rewrite of how the Symbolic/Grid/Physical modes are sets
to/from the CellWidget. Impacted widgets are CellWidget &
DisplayFilterWidget.
Main changes are that there is no more "individual" setter/getter for
modes (setSymbolic(), setGrid(), setPhysical(DbU::UnitPower)) but one
with two arguments:
setDbuMode(int mode,DbU::UnitPower)
Signals & slots of the widgets also evolves into:
dbuModeChanged(int mode,DbU::UnitPower)
changeDbuMode (int mode,DbU::UnitPower)
- New: In Reference, adds a type to differentiate between "Labels" and
"Position". Labels are strings that we wants to display, and position
are specific points with a name attached to it.
- New: In CellWidget, specific display for the two kind of references
(Label & Display).
- New: In Query, add support for Markers, although they are Go's, are stored
in a separate QuadTree directly at Cell level. In a very similar fashion
to the ExtensionGos. Sometimes should look if thoses mecanism could be
unified.
* ./hurricane/src/viewer:
- New: In CellWidget, add support for displaying References. Uses the Marker
Query. For now labels are displayed centered on the reference point,
making that point hard to see. That behavior may be changed later if
needs to be.
- Bug: In InspectorWidget, the History::push() wasn't updating the ComboBox
index. The line was strangely commented out (?).