Commit Graph

32 Commits

Author SHA1 Message Date
Jean-Paul Chaput 1e73466199 Added new CMake macro add_python_module() and some cleanup. 2015-03-22 19:12:45 +01:00
Jean-Paul Chaput 25e82fc701 Complete replacement of the Chip placement Python scripts.
Finally get rid of the demonic code from Wu Yifei...
* New: In Isobar, added encapsulation of Interval (don't know how have
    forgotten it for so long).
* Change: In Isobar, In PyLayer, new PyLink_LayerDerived() function to
    create/link the C++ object to the correct derived class and not the
    base one (PyLayer) which then prevent to use the specialized methods.
    Must replace PyLink_Layer() througout all the code.
* Change: In Isobar, in PyPoint the "setX()" & "setY()" methods where
    still capitalized.
* Change: In Isobar, in PyQuery, complete the exportation of the C++
    interface. remove the code belonging to a more "boost" way of
    building the Python interface (will do that in a far future).
* New: In CRL Core, In PyAllianceFramework, export isPad() method.
* Change: In Unicorn, in unicornInit.py, protect the loading of each
    single plugin by a "try" / "except" clause to the failing of one
    plugins do not stop the loading of the next one.
      Pass the same dictionnary argument to unicornHook() as for
    ScripMain(), this is more uniform this way.
* New: In Cumulus, complete replacement of the chip placement scripts
    from Wu Yifei (at last!). The clock-tree integration is still to
    be done.
________________________________________________________________________
2014-07-21 13:18:34 +02:00
Jean-Paul Chaput e29221274e Add a Python hook into Kite. Python support for DebugSession.
* New: In Isobar, export the DebugSession mechanism.
* New: In Kite, In KiteEngine, add the ability to run a Python script
    (hook) after the initialization of the KiteEngine.
2014-07-05 18:02:51 +02:00
Jean-Paul Chaput 7296dcd6fb Make the Python interface closely mirroring the C++ one.
* Change: In Isobar, the Python interface was not exactly mirroring the
    C++ one, now it is the case. The Python code should look likes almost
    exactly like the C++ one, the only differences remaining being due
    to the languages respective syntaxes. Note that in the case of
    constructor functions, it leads to a slightly longer notation in
    Python that it could have been (mimic the ".create()" static
    member). Main modifications:
    1. Mirror the static constructor syntax with create():
          Cell( ... )   ==>  Cell.create( ... )
    2. Correct hierarchy for constants in Instance, Net, Pin
       & Transformation. For example:
          Hurricane.PlacementStatusFIXED
                     ==> Hurricane.Instance.PlacementStatus.FIXED
          Hurricane.OrientationID
                     ==> Hurricane.Transformation.Orientation.ID
          Hurricane.TypeLOGICAL  ==>  Hurricane.Net.Type.LOGICAL
          Hurricane.DirectionIN  ==>  Hurricane.Net.Direction.IN
* Change: In CRL Core, correction to match the improved Python API
    in the configutation helpers.
* Change: In Cumulus, correction to match the improved Python API.
* Change: In Stratus, correction to match the improved Python API.
* Change: In Documenation, update for the new Python interface
    (both user's guide & examples).
* Note: We must port those changes into Chams for it to continue
   to run.
* Change: In Documenation, update the Python script support part.
2014-06-29 14:26:59 +02:00
Jean-Paul Chaput 4842f21a2e Update to Qt 5, requires cmake 2.8.9. New placer: Etesian.
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.
2014-03-22 11:50:36 +01:00
Jean-Paul Chaput ecf22a10c1 * ./hurricane/sr/isobar:
- New: Added support for Hook Collections, PyHookCollection.
2013-04-27 17:51:33 +00:00
Jean-Paul Chaput 31abc474f1 * ./hurricane/sr/isobar:
- New: Added Hook support (PyHook). Hook accessors added in PyContact and
        PySegment.
2013-04-27 16:02:00 +00:00
Jean-Paul Chaput f8343fdfc4 * ./hurricane:
- 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).
2013-03-13 13:38:15 +00:00
Jean-Paul Chaput 9724cef332 * ./hurricane/src/isobar:
- 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.
2013-02-10 11:52:27 +00:00
Jean-Paul Chaput 47f3771f1d * All Tools:
- 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.
2012-11-16 12:48:38 +00:00
Jean-Paul Chaput 0ea96eaa3d Add library version to isobar. 2011-02-04 11:09:11 +00:00
Jean-Paul Chaput 8be83b1ae0 * ./hurricane/src/hurricane:
- 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.
2010-11-16 13:43:34 +00:00
Damien Dupuis b2e2eafadb Minor changes for compatibility with Mac osx 10.6
- moving Script from isobar to viewer
    - adding missing target_link_libraries
    - adding boost::filesystem component dependency
2010-07-15 11:13:24 +00:00
Jean-Paul Chaput 7231703f4f * All Tools:
- Change: Switch from "goodies" to "bootstrap".
2010-07-14 19:39:36 +00:00
Jean-Paul Chaput 62b8477fee * All tools:
- 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).
2010-07-12 15:07:58 +00:00
Jean-Paul Chaput 90527e4533 Forgotten TextTranslator sources. 2010-07-06 10:10:50 +00:00
Jean-Paul Chaput fbd9aba2f5 * All tools:
- 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.
2010-07-01 11:46:29 +00:00
Jean-Paul Chaput c293c57fb8 * ./hurricane:
- 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.
2010-06-08 12:02:03 +00:00
Jean-Paul Chaput 1407845847 Install python modules at the right places. 2010-05-22 22:15:47 +00:00
Jean-Paul Chaput 4db3b0b3de * All tools:
- 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.
2010-05-18 12:53:00 +00:00
Jean-Paul Chaput 9b54c926fe Adds LIB_SUFFIX to all CMakeLists install "lib" targets, so that 64 bits
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.
2010-05-17 21:19:07 +00:00
Jean-Paul Chaput 8a32b65a39 One more slash to remove on install command. 2010-05-16 17:36:05 +00:00
Jean-Paul Chaput f8d79dc53e * All tools:
- 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.
2010-05-16 16:33:58 +00:00
Jean-Paul Chaput 4449b76213 * ./hurricane/src/hurricane:
- Bug: In DebugSession, bad stacking/unstacking of debug levels (unapaired),
        and wrong value stacked sometimes.

   * All Hurricane/Coriolis tools:
     - Change: Simplify the CMakeLists,
2010-03-08 16:33:57 +00:00
Jean-Paul Chaput 0c88f99622 Spot now uses the custom grid as it should. Allowing to step
by one foundry step.
2010-01-25 15:52:37 +00:00
Christophe Alexandre 61a58ff3d6 * no more PyNames, in the Python part, names are replaced by simple strings
and transformed in Names in the wrapper.
 * get rid of Converter in progress
2008-12-11 12:25:02 +00:00
Christophe Alexandre 77e0872072 Introducing Pad as Python object 2008-11-20 10:56:11 +00:00
Christophe Alexandre 8397e7dccd PyCollections implementation 2008-10-19 22:07:32 +00:00
The Coriolis Project e7df77f51d new collections in progress 2008-10-17 17:27:20 +00:00
Christophe Alexandre 0f46cfdb7f net collections in progress 2008-10-14 10:48:53 +00:00
Jean-Paul Chaput 7bce78379c * ./hurricane/src/hviewer :
- Bug : default argument to setWeight() sould be QFont::Normal and not "-1".
       Shows in Qt debug mode (catched by an assert).
   - Bug : SelectCommand now keep the Selection check button in sync.
   - Change : Palette doesn't show at start.

 * ./hurricane :
   - Now choice between static and dynamic linking. Note that thoses options are
       mutually exclusives.

 * ./coriolis/src/crlcore :
   - New choice between static and dynamic linking.
   - New feature : XmlParser optional warning when file not found (default is
       to warn).
   - New feature : now read environment from user's optional configuration file :
       ~/.environment.alliance.xml
   - Potential bug : when loading/parsing file, the XmlReader hangs if the opened
       file is a directory, and QFile allows directory opening :-(
2008-09-08 08:46:18 +00:00
Jean-Paul Chaput 23407710ee * ./hurricane/src :
- Rename "pyext" to "isobar".
2008-06-09 16:56:48 +00:00