- 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: 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 (?).
- Change: In Cyclop, now uses the GtkStyle when not under OSX and Qt is
newer or equal to Qt 4.5.0.
- Change: In the various Qt Model Table, do the rowHeigh bug correction.
- Bug: In InspectorWidget/NetlistModel, when browsing through the records
tree, the records were generated twice at each slot change. This
was due to the History ComboBox sending a index change signal then
the InspectorWidget setting the slot *again*.
When trying to explore a Slot, but this Slot is empty (like an
empty vector, for instance) do not gut the RecordModel. Because
as we find out that the new Slot is empty we go back and restore
the previous contents. Potentially slow if we comes from a Slot
with lots of records. Now we dump the contents only if there is
something to explore.
* ./hurricane/src/hurricane:
- Bug: In Record, the slots where stored in a list container, which was
making indexed accesses very very slow. This slowdown was also
affecting the destructor of Record (this is the explanation why
the RecordWidget was slow, even when *leaving* the net IntrusiveSet).
Now implemented in term of STL vector.
- Bug: In Slot/Common, still some adjustements to make the Inspection
mechanism work with all types. Correct the "IntrusiveMap<>" not
working with the NetMap. Related to templates not using the same
constness.
- Change: In Entity/DBo/Cell, Some more adjustements on Slot/Records.
- Bug: In NetlistWidget/NetlistModel, suppress the "forceRowHeight()"
method which was terribly slowing down the table display. Instead
uses the "setDefaultSectionSize()" of the vertical header to setup
the row height (much more compact display).
- Bug: In NetlistModel, strangely, although we have a "data()" and a
"headerData()" method, the "data()" is also called for the headers
potentially erasing any previous setting done with "headerData()".
This was occuring for the fonts settings. Don't known if it is
a bug or a feature of Qt...
- Thoses changes has to be ported to the others widgets some times...
- Bug: In DebugSession, bad stacking/unstacking of debug levels (unapaired),
and wrong value stacked sometimes.
* All Hurricane/Coriolis tools:
- Change: Simplify the CMakeLists,
- Bug: In DbU, "micro" symbol is "u", not "m".
- Change: In DbU, uses different precisions on differents units.
* ./hurricane/src/hviewer:
- Change: In CellWidget, when drawing a Ruler, display the current Unit
mode on first & last tick.
- New: In DbU, extend the StringMode/getValueString() to support the physical
unit in addition of lambda & foundry grid. "setStringMode()" has now a
second parameter "UnitPower", only used when the mode is DbU::Physical.
* ./hurricane/src/hviewer:
- New: In CellWidget, the fitToContents now adds a margin of 5% to get border
clear of the bounding box.
- New: In CellWidget, ability to display lengths in nanometers & micrometers
in complement of symbolic and foundry grid. DisplayFilterWidget modificated
accordingly. New members:
void setPhysicalMode ( DbU::UnitPower );
bool physicalMode () const;
DbU::UnitPower getUnitPower () const;
In addition to:
bool gridMode () const;
bool symbolicMode () const;
void setGridMode ();
void setSymbolicMode ();
- Change: In CellWidget/Ruler, rulers are now unidirectionals (as in Cadence).
- New: In CellWidget, support for drawing components names. Includes correction
of badly computed coordinates in drawDisplayText.
Components names are drawed only for the top level of hierarchy and only
if the bounding box is large enought (currently hard-coded to 50x50 pixels).
- New: In Net, "Automatic" attributes to distinguish automatically generated
net names without string pattern matching. "Automatic" Net's names are not
drawn by the CellWidget to much cluttering the display. And testing a boolean
is way faster than a pattern matching on a hard-coded name.
- Change: In CellWidget, when loading a terminal Cell, draw it's internals.