Si2oaD/History

From oacwiki

Jump to: navigation, search

Revision History

Contents

1 Release 1.0

1.1 Release 10/17/05

  • Finished option implementation including
    • Centralized encapsulation of option processing in a singleton class
    • Options for:
      • various file names and paths to processing tools
      • various output filters
        • Skip Boolean attributes if false
        • Skip attributes with default values
        • Skip SingleBitMembers for BitNets
        • Skip 'redundant' attributes that can be inferred
        • Skip the Block Domain when dumping a Design
        • Skip the Module Domain when dumping a Design
        • Skip the Occurrence Domain when dumping a Design
      • microwww server settings (docroot, port, server URL)
      • common namespace for all name mapping
    • Functions to:
      • set default values for all options
      • display current option settings
      • enable dynamic change of any options
      • write current options to file
      • read and process file of zero or more option settings
  • Implemented multiple methods for output processing (settable by option)
    • Use an external XSLT processor (like Xalan)
    • Use the browser's native XSLT function (to obviate an external tool)
    • Skip XSLT and just let the browser open the raw XML (however, in this case there will be no JS button to enable return control to debugger. Must kill debug process!
  • For the future:
    • Investigate techniques for better managing this and
    • related communications issues, like Ajax (XMLHttpRequest).
    • Maybe even do away with a browser and write a custom
    • Java client instead.
  • If no XLST then browser will display raw XML
  • Added LPPHeader and Steiner object processing
  • Standalone version of driver
  • Fixed Bugs

1.2 Release 10/18/05

  • Xalan packed up in case external processing required (ie, browser won't do it) Verified license allows redistribution of Xalan and xerces, and included licenses with the post.
  • Fixed bug that let firefox crash the microwww server (wanted a favicon).
  • Fixed bugs in the makefile.

1.3 Release 10/19/05

  • Deleted some duplicate getNumBits()
  • Converted all but those in *Inst and *InstTerm to conditional on "redundant" option.
  • Moved isPreferredEquivalent to redundant status
  • Moved getInst for instterms and getNet for Terms to redundant (they are indented under those owners)
  • Skip occ net span if == Release 1 and no redundants
  • Skip occ path name if same as name and no redundants
  • Skip pathName for OccNets and OccInsts if same as Name and no defaults

1.4 Release 10/25/05

  • Fixed test1 version to hard-code Lib/sample/schematic and not query for L/C/V: since it uses inst3, it MUST use the sample/ data
  • Started HTML help document detailing how to run the tool
  • Eliminated hard-coded paths in javascript header, generating them instead from the option settings in si2oad.cpp
  • Added settable option to use local OA docs install instead of OpenEDA online version for hotlinks in GUI on oaObject names
  • Fixed bug in termsByPosition causing close of output stream (Steve's testcase)
  • Added help.html document and button in GUI
  • Default .si2oadoptions now read on load
  • Fixed bugs in various option permutations that were failing
  • By default, load a ./.si2oadoptions file if it exists, on load of the si2oad libraries (both testcase or stand-alone versions).
  • Add option processing for stand-alone version:
    • By default don't print anything to stdout or stderr (unless an error occurs, then print to stderr)
    • Accept a -h option to print the help message
    • Accept a -o FILENAME option to initialize options from a file (overrides the default .siioptions load)
    • No use of environment variable at this time. Reserve for a possible future extension, if it seems warranted after more experience.
  • Changed configuration methods to enable linking oad code with linked executable
  • Added log with verbose levels
  • Added prototype regex on types and names
  • Wrapped collections in a collapsible tag to help manage output volume
  • Compressed representations of box, point, and some arrays into single name=value pairs
  • Converted socket port selection from manual to automatic selection of a free port from the OS.
  • Separated traversal stuff for managed objects (si2oad.cpp)
    • from utility objects (si2oadutil.cpp)
    • from XML output details (si2oadxml.cpp)
  • Started the reordering of attributes: most names are first now
  • Fixed some bugs:
    • All Designs were being replicated under each Lib
    • Fixed Text and TextDisplay Objects
    • Some parasitics are now working
  • Improved make targets to build and install better
  • Finally fixed tabs in code to length 4 (I think!)

1.5 Release

  • added -Wall and -no-nonvirtual-dtor
  • Fixed link to not use explicit dbg or opt OA libs
  • fixed utility object display (broken by last releases)
  • Got LD_PRELOAD working
  • top level si2oadebug wrapper tag auto-opens now

1.6 Release Fixed after Beta in 031906 version

1.6.1 Release Enhancements

  • Renamed User Guide from si2oadUG to si2oadUserGuide
  • Include .doc version of si2oadUserGuide in release also
  • Added proper XML tag intro and wrapper for console output, too, so post-processing works without having to add these manually.
  • Fixed javascript to not blow up if no top tag (cause of short output)
  • CellView now prints pseudo-attribute: either,
    • if primary DMfile Design is open, its Object handle ref
    • if not open, its L|C|V names
  • Added Javascript to callback & open Design on click of L|C|V
  • Removed erroneous reference to $(OA_LIBS) in si2dis/Makefile
  • Fixed si2oadxml.h AssociationRefWithNameMap decl errors
  • Removed bogus "#appdefs now" output line
  • Fixed distribution copies of .si2oadoptions to default to "console"
  • Changed 'size_t' to 'socklen_t' in si2oadwww.cpp (fix warning)
  • Added more to the Problems/Solutions section
  • Fixed display of arrays (template angle brack were getting inthe way of the XML parse) by adding a "type=" attribute instead to display the template parameter type of the Array.
  • Added checks for existence of browser executable and graceful message if it can't be found.
  • Added info mesg about where the output file was created so it can be examined by hand in case the XSL or browser execution fails.
  • Added malloc for bytes before getVal() in siiAppProp().
  • Added steps in make file to detect local API doc Ref tree and create sym link to it in the docroot/ directory so the javascript can have permission to access the pages.

1.6.2 Release Fixes

  • Added missing oaDesignDataTypeEnum timestamp values (ie, the ones from UINT_MAX-13 through -1 for oaDesign, and similar negative numbers used for other containers)
  • Fixed misnamed type names in the OA headers for AnalysisPoint, etc., that have the word "Type" on the end so the API doc Ref pointer will work.
  • CSS errors
    • Elminiated the dual "cursor: hand" entries from CSS. Though offering IE compatibility, they caused errors in Firefox.
    • Fixed "regular" font-weight settings in the CSS to "normal".
  • si2distest/parasitics1 testcase was wiping out lib.defs, so a subsequent run of test1 would fail, even though it had been run successfully. Changed to direct oaLib::open().
  • UserGuide
    • Updated with additional problems and workarounds.
    • Replaced some sample outputs with updated versions.

1.6.3 Release fixed in 1.0.3 on 6/9/06

  • Finished out rest of viaDef associations
  • Added StdVia masters to Design dumps
  • Changed names of options to all positives to eliminate some triple negative artifacts.
  • Flush rest of line (both interactive input and reading options file) when option name is bad.
  • Eliminate excess code to support numbers as synonyms for option names.
  • Deleted extra "domain" attribute causing XML error on ParasiticNetwork
  • Eased back a bit on the special char encoding in XML to allow all the ASCII chars (seems to work in browsers and XML parser), escaping only the unprintable ones and those that need entity wrapping: &<>"'

1.6.4 Release fixed in 1.0.6 on 7/5/06

  • Will no longer bind ModInstHeaders automatically.
  • If callback to bind ModInstHeader, will purge when done to leave unbound.

1.6.5 Release fixed in 1.0.7 on 7/2006

  • Added missing instTerm termName attributes; Relocated termName and termPosition attributes to front of the display list
  • Added container encapsulation for binding/master information to Insts

1.7 Release fixed in 1.1 07/23/06 DAC2006

  • Fixed misplaced Super/Sub attributes in modInstHeaders
  • Fixed SEGV in si2oadglob.cpp when trying to plant NULL in const string
  • Fixed SEGV in siiModInstHeader(): added check for NULL parent Module and TopModule being returned by OA implementation in 224
  • Added checks for null TopOccurrence, evidently possible in a Design where there is a Module, but no Block and no TopModule has been declared. Would SEGV when all getOcc*(topOcc) calls were made for Nets, Terms, InstTerms, etc.
  • Enhanced regex
    • allow blank as Obj Type name separators
    • allow either +s or -i (or -s and +i) to turn on or off case-sensitive matches
    • enable regex matching on Type names, too

1.7.1 Release fixed in 1.1.1 07/25/06

  • Added check to see if Boundary actually has a CoreBoxSpec before trying to display it.
  • Fixed ownerStack overflow (Via displays of ViaDef reference failed to set IsMainObjName, so name pattern check causing the nesting of each Via in the Block's Collection under the next one)
  • Fixed EXCEPTION thrown due to casting a StdViaHeader as an InstHeader
  • Fixed XML error: Def reference in siiOccBusTermBit() is an attribute but was being displayed outside the attribute (main tag) container.

1.7.2 Release fixed in 1.1.2 08/03/06

  • Integrated ALL of Johannes' Win port changes (this time I really mean it!)
  • Added first stage prototype of non-overloaded version of the oad interface
  • Fixed uninitialized type char* returned from fileMIMEtype() in case a file with an extension missing from the elseif list is encountered
  • Fixed unallocated val pointer in siiParam for AppVal type Params.
  • Added validation of [Occ]Net Type before loading its PN
  • Fixed socket to shutdown both R and W sides
  • Moved name association up front in OccInsts
  • Added AssociationMasterDesign to OccDesignInsts
  • Eliminated redundant master info for other Insts

1.7.3 Release fixed in 1.1.3 08//06

  • Made ClusterBoundaries an owned collection displayed inline under their owner cluster instead of refs to be clicked to generate a separate callback display.
  • Few more fixes for the VS port.

1.7.4 Release fixed in 1.1.4 08/17/06

  • Added checks on sizes of XML/HTML output and XSL and browser load times
  • Added buildInfos
  • Added AppDef model
  • Updated UserGuide to latest option sets, examples, and regex details
  • Aligned regex delimiter option names with terminology in UserGuide used to describe them, from:
    • regexdelimobj --> xdelimtype
    • regexdelimexp --> xdelimname
  • Added parasitics test to the automated testrelease.sh script (and gold)

1.7.5 Release 1.1.5 09/08/06

Add incremental display support to cope with realistically [large] designs. Option added to limit number of levels of ownership hierarchy on a given display. Clicking on the + of such an abbreviated section will callback the nanoserver to get the next wad of data.

1.7.6 Release 1.1.6 09/10/06

  • Fixed out-of-order AssociationPointPair attribute in SegStyle
  • Eliminated duplicate masterOcc attribute in OccDesignInsts
  • Fixed out-of-order getViewType attribute in ViewType

1.7.7 Release 1.1.7 09/12/06

  • Finished Value model
  • Finished assigned connections model (Assigns, ConnectDefs, etc)
  • Fixed out-of-order begin/end Points in SegStyle
  • Added check in check for DM file exists() to prevent exception for Views under DMFileSys
  • Fixed up automated testrelease.sh script and gold to be more readable, adding postprocessing for dates, OIDs to enable better diff of results

1.7.8 Release 1.1.8 09/27/06

  • Deleted dupe "number" attribute in PhysicalLayer
  • FinishedConstraint model
  • Fixed up Complex objects and ComplexArrays
  • Added VectorInstDefs, BusNetDefs, BusTermDefs in all 3 Domains
  • ReducedModels
  • 226 upgrade:
    • Change in "owned Value" behavior
    • New Value Types
    • New utilty objects: oaRange, oaDualInt
    • Added Constraint model changes for 226
  • Added TechHeaders, LayerHeaders, UsedIn references to Tech

1.8 Release fixed in 1.2 11/10/06

  • Eliminated unused endptr variable in si2oadwww.cpp to prevent compiler warning
  • Fixed broken incremental truncation of AppDefs
  • Updated run-time help message to match oad interface changes and eliminated the detailed regex examples (redundant with UserGuide).
  • Added a little more detail to the requirements sections of the UserGuide.
  • Fixed bug in AssignedNet() that caused a prior Object's data to be displayed after trying to open the connectDefs container.

1.8.1 Release 11/24/06 version 1.2.1

  • Parasitics
= Added dump of parasitics to OccNets.
= Enabled independent load of Partitions
= Eliminated replicate PNs in case of multiple APs per net,  except in unloaded case where you cannot tell if multiple APs on a Net  associate with the same PN or multiples (until you load each one)
  • Added limit to #bytes of ext data display, plus optional user display tool for it

1.8.2 Release 1.2.2

  • Added more things from the model finishing all but the WaferObjects
    • GCellPattern, TrackPattern, Cmap
    • LPPHeader, ViaSpec
    • ScanChains, ScanChainSets, ScanChainInsts
  • Finished out missing Collections in the Block, Tech Object model
  • Added DLL options for display AppProp/[Var]DataAppDef values, and of CMap data (based on user supplied layerNum at run-time)
  • Added System exe option for CMap display

1.8.3 Release 1.2.3 12/13/06

  • Added env var option for DLLs, too
  • Enable full options/command processing for stand-alone si2dis/si2dis.cpp (Deleted original "o" alias for "r", since "o" is used for setting any option now, and "r" is reserved for the "read options file" command.)
  • Added programmable escape character for regex delims
  • Fixed bug causing exception to print in display for Session AppDefs when first expanding object AppDefs elsewhere in the display
  • Made all CMap and AppDef display tools run in the background to avoid hanging up debug session

1.8.4 Release 1.2.4

  • Added -lcv option to stand-alone si2dis.cpp to allow entry of Lib/Cell/View enabling command-line completion (for FileSys DM)
  • Forced propagation of docroot location for all types of make targets
  • Added statistics (at verbose level 2) for number of regex type and name compares and matches at each owner level.
  • Set up code so a request for help or write-options-to-file do not try to read an options file. This way the set of code-default options will be printed to a file regardless of whether there already is a .si2oadoptions file. Note that if that is the name selected, that file will be overwritten by these default options.

1.8.5 Release 1.2.5 Jan 09 2007

  • Links to OA Class Ref documentation
    • Added alert GUI warning in case a class name has not been entered into the apiLinksTable.txt file that maps to the OA Class Reference.
    • Hooked up work-around to fix broken oaType names so links into the API class ref would find the right file (name which is derived from the OA class Type):
     * Have "Type" suffix: AnalysisPoint,   AnalysisOpPoint,
                           OpPointHeader,   ConstraintParam
     * Have "oa" prefix: TechLayerHeader, TechViaDefHeader, TechHeader
     * BlockBoundary has legacy name: AreaBoundary
  • Refactored si2oadwww.cpp code xmitFile() to make MIME typing more explicit and to clarify the different kinds of callbacks that can be made.
  • Fixes:
    • Code added to siiTechViaHeaderDef() to prevent stack pointer miscounts and include inherited data from the superclass chain
    • Javascript added to get attribute function to account for DHTML addition of style attributes when IDREF links clicked and the corresponding ID attributes are highighted
    • 2DLookupTbls had "1D" as default association type.
    • Eliminated recursive use of oad() on default Value for ViaDef2DTblValue. Internal oad() calls now disallowed on managed Objects.
  • Implement regex control into incremental GUI processing by guessing where we are in the regex and adding code to reset container depth level when used in combo with regex. Technique still breaks down for Objects that can have different owners: Props, Groups, Constraints, Values, AppDefs. Need to add extra code to handle these cases for the complete solution.
  • Output format
    • Change Values owned by oaViaDef2DTblValue to refs only, since they still show up as "owned" by the parent "database".
    • Added nonDefault Params to OccInst and Inst

1.8.6 Release 1.2.6 Jan 2007

  • Changed type declarations in several modules to prevent type conversion warnings.
  • Eliminated duplicate attribute set in siiRow().
  • Added catch for Tech viewType Units iteration in anticipation of upcoming disallowance of all but a few viewType definitions in the Tech.
  • Tag reduction for incremental processing
  • Integrated Johannes' changes for data display DLLs
  • Added code to handle AppProps as external data display candidates

1.8.7 Release 1.2.7 Jan 25 2007

  • Additional round of WIN updates from Johannes
  • Added # to refs association array entries to enable dynamic HREF creation via Javascript
  • Improved speed of dynamic insertion of HREFs into Javascript refs lists
  • Added timers in C++ and Javascript to facilitate timing the different steps during incremental display
  • Additional 20% HTML tag reduction

1.8.8 Release 1.2.8 Feb 7 2007

  • Added revNumber attributes for Tech, Wafer, Design
  • Updated latest .sln file for WIN version
  • Changed dynamic conversion of associations that reference many Objects to HREFs to insert the HTML HREF for only the link clicked [as an HTML 'overlay']
  • Added Collection subsetting to address performance challenges for large designs.

1.8.9 Release 1.2.9 Feb 13 2007

  • Added code to support incremental data loading on 64 bit platforms (encoding/decoding Object addresses from Javascript needed to accound for type conversions between ints and longer pointer sizes).
  • Deleted rogue blank line showing at the end of incremental Collection wads when count mod maxcollentries == Release 0.

1.8.10 Release 1.2.10 Mar 27 2007

  • Fixed bug to recognize $ENVVAR if CMap system call used instead of DLL as display tool
  • Fixed alignment of OID overlays in dynamic marking of lists of HREFs; also cured problem of blank popup when clicking on the "count=" part of that list, instead of an OID
  • Added incremental, per-collection regex

1.8.11 Release 1.2.11 Mar 28 2007

  • Fixed javascript OID overlay positions to be relative to adjacent element to cure dis-alignment when expanding/collapsing sections above.
  • Added missing retval enum return values in matchesRegexObjType to prevent compile error on Win platform (thanks, Johannes).
  • Fixed javascript to distinguish between <A> tags used with class styles in titles and those used with no class as overlay markers for OIDs in HREF lists.

1.9 Release 1.3 Apr 2 2007

  • Updated UserGuide.
  • Ported to 226p052
  • Misc. type casts to prevent warnings on WIN platform [thanks, Johannes]

1.9.1 Release 1.3.1 Apr 12 2007

  • Added code to enable oadoc path to be dynamically reconfigurable within the same gdb run (between oad() calls), and to support both http: and local file system entries. Deleted the dependency on sym links for local doc trees.
  • Changed configuration so
    • docroot separate from output XML/HTML directories and individually specifiable from .si2oadoptions
    • docroot checks manifest of needed files
  • Enabled shell variable, symbol expansion for all paths in options.
  • Added in code to validate output and docroot directories, print detailed error reasons, and force output=console if either ends up bad.
  • Added code to bind primary DM file [aka "Design"] to a CellView on-demand.
  • Fixed cheeseball hard-coded array allocation for CachedIters to dynamic allocation (after a testcase illustrated that a *lot* more of them could be needed than originally suspected).
  • Added deleteoutputpath option to auto-delete the output directory when finished.

1.9.2 Release 1.3.2

  • Added quit.html to display after RETURN CONTROL so Firefox doesn't delete the last display's contents on termination of the server's socket connection.
  • Added code to re-create the outputpath in case deleteoutputpath=t and the user makes another oad() call from the same debugger command line session.
  • Added code to enable OPEN of a Lib's Tech in the case it has not yet been opened.
  • Fixed validation of docroot which would report all check files missing after the first one determined to be missing.
  • Moved code to set verbose option first so no messages are missed (if option so requests)
  • Added code to check when attempting to bind an Inst to its master and if the master does not exist on disk, or fails to bind for some interesting reason (like it has a different logical Lib name than the Lib actually containing it and lib.defs does not map the two onto the same physical path) an intelligible error message is displayed instead of an empty popup.
  • Changed the way auto-cleanup of the RTM is done. Added code to keep a list of all masters/Occs/PNs bound/expanded/loaded into the RTM by oad() and then only after the RETURN-TO-CONSOLE button is pressed will the list be examined and the Objects in it deleted from the RTM. This makes it foolproof {I hope!} to click in multiple opened popups with no fear any handles have gone south by premature deletion of such Objects. (Note: WG was planning to use a button on each popup to put the decision to purge in the user's hands. But this seemed too much to ask the user to keep track of in the case of multiple popups with interlocking handle references.)

1.9.3 Release 1.3.3 05/02/07

  • Started fleshing out UserGuide details about using various options:
    • docroot
    • outputpath
    • $PID and shell meta expansion
  • Converted the UserGuide from .doc (proprietary) to .odt (open) format.
  • Added Apache LICENSE.txt to release packaging.
  • Integrated Johannes' code to cope with UNIX filesystem tests and path expansion on the WIN side.
  • Missing quit.html added to release package.
  • Missing UserGuide PDF added to package.

1.9.4 Release 1.3.4 05/05/07

  • Suppressed the ... for incremental Collection entries on the last batch when no more entries remain in the iter. However, can't do this when regex involved because we do not know until the whole Collection has been processed how many will match the regex.
  • Put in data structures for array sorting. Not turned on yet, however.
  • Added some info about the various dynamic bind options available to the UserGuide.

1.9.5 Release 1.3.5

  • Corrected -help in si2dis and improved coherence (Tracker#984).
  • Moved check for / "cancel" char out of writeConfigFile and into promptWriteConfig where it should have been (Tracker#985).
  • Added support for --options as well as -options in si2dis
  • Put in sort capability as user-defined DLLs, enabling sort on any set of Object attributes, loadable dynamically via the .si2oadoptions dllsorters setting.

1.9.6 Release 1.3.6

  • Added Johannes' updates for the Win version.
  • Enabled re-click with CONTROL key on a Collection "+" (or the unfolded "-" indicator) to allow (even after the Collection has been opened already with or without sort and/or regex)
    • resorting with a different DLL sort routine
    • filtering with a different regex
  • Tested a little, but it's kinda squishy when the regex is bad and it probably doesn't work right if the same Collection is open in different windows at the same time.
  • Added code to blank out the regexChoices window to avoid the temptation to use it again (which would not work and can cause trouble). Still cannot kill the window without causing a SIGPIPE in the server, whether doing it from the popup or the parent.

1.9.7 Release 1.3.7

  • Fixed occasional SEGV when docroot set to 0 (ie, use load location of .so)
  • Fixes for those configurations that prefix hex output formats with a 0x (thanks Steve)
  • Fixes for 64bit platforms (wherein addresses can be more than 8 hex characters)
    • Converted %x to %p in .cpp code so handles work (thanks Steve)
    • Upgraded Javascript to handle longer handles properly (and those with 0x)
  • Disabled active link on ID handles (since that is the target, not a reference) so clicking on them now does nothing.
  • Added NULL initialization for MAX_SORT_DLLS in sortDLLs array to prevent SEGV in case where that array is not initialized magically by the OS to 0's (thanks Rege) (Tracker#997)
  • Fixed UserGuide rogue contents entries holdover from Word format (thanks Susan)
  • Fixed lack of return value in si2oadsortinfotype.cpp (thanks Johannes)
  • Fixed occasional messages reporting:
 Inconsistency detected by ld.so: dl-open.c: 604: _dl_open:
 Assertion `_dl_debug_initialize (0, args.nsid)->r_state == Release RT_CONSISTENT' failed!
  • Fixed occasional messages reporting:
 [si2oad] ***ERROR: Unable to remove outputpath = /home/d/si2oad.3547 [rc=32512]
  • Fixed buffer overrun in freeCachedIters() sprintf to mesg causing occasional SEGV.
  • Eliminated all but 1 repeated initialization of the si2oadoptions global by explicit unset of the PRELOAD env var in the constructor itself to prevent propagation of that to all system() calls. Still remains one duplicate initialization caused by gdb on load before the first call to oad().
  • Fixed XML parse failure in the case (eg, OccInstHeader) where a combination of doredundants and dofalsebools options set to false, along with a maxownerlevels=1, resulted in an open tag left on the 'master' relationship association group.

1.9.8 Release 1.3.8

  • Fixed error in doredundants=f case causing missing XML end tag due to the test for it occurring not in the main tag entry, but after that was already closed and the "object" contents had begun with StartAssGroup (such as in the master entry of OccInstHeader).
  • Worked around SEGV in case of maxownerlevels/maxcollentries = 0/0 causing SEGV deep in oaSparseEntryHashTbl territory by eliminating cast of Iter to BaseIter to do a reset().
  • Put in skeleton to eventually enable filter of implicit objects.
  • UserGuide additions to the sortDLLs documentation, plus better elaboration on several of the options.

1.9.9 Release 1.3.9

  • Improved message formats at the verbose=2 level.
  • Fixed bug corrupting display after re-sort in some situations
  • Enabled re-regex/re-sort of a Collection that was left without a + from a prior regex

1.9.10 Release 1.3.10

  • Added Lib reference to Design output (except for StdVia Masters)
  • Added incremental collection code for Designs in a Lib
  • Added incremental collection code for AppObjects

1.9.11 Release 1.3.11

  • Added alwayssort option: if t then all Collections sorted by default using first sorterDLL
  • Fixed crash happening on some Collections
  • si2oadSortUniversal sorter DLL added as example of multi-key sort

1.9.12 Release 1.3.12

  • Fix SortUniversal.cpp to
    • use qsort() to fix performance
    • check for null name from getNameFromObj() before trying to strdup() it
  • Fix CTL-click bug causing SEGV after empty Collections are re-opened
  • WIN: Add .vcproj file for WIN version of si2oadSortUniversal (and update .sln)

1.10 Release 1.4

  • Roll-up of upgrades to 1.3
  • Fixed oaInst attributes:
    • Deleted duplicate numBits report
    • Added placementStatus, priority, usage
  • Fix LOAD of PN

1.10.1 Release 1.4.1

  • DM4 port (added all new DM4 model Objects)
  • Fixed bug that caused duplicate Collection members in a display when
     maxownerlevels>1
 and maxcollentries>0 (but less than the number in the Collection)
 and alwayssort=f
  • Added several attributes and Collections to various Objects that were either missing or result from new methods added in the last release.
  • Moved order of names of ref attributes before generic inherited Objs.
  • Fixed several refs that had names but were not getting them out into the display.
  • Added , sep char for Subsets (whose members were space-separated, making it unclear where the boundaries of the attribute containing them were).
    • Added code to default to " " but enable any string for future uses like this.
  • Updated UserGuide
    • Fixed table and figure styles to auto number properly
    • Added list of all oaObjects not covered yet by the tool
     WaferDesc
     Frame
     Reticle
     ReticleRef
     WaferFeature
     StepperMap
     Image
     FrameInst
     DesignInst

1.10.2 Release 1.4.2

  • Deleted extra attribute for Master of CustomVia.
  • Deleted extra attribute for Master of InstHeader.
  • Fixed several errors in the BIND commands when a master Design or Module was missing. Also unified the way error messages were presented in these cases for all such binds, and routed a copy to the GUI as well as the console to make it easier to see what is going on.
  • Fixed several errors in the EXPAND commands when a master Occurrence was missing. Also unified the way error messages were presented in these cases for all such binds, and routed a copy to the GUI as well as the console to make it easier to see what is going on.
  • Fixed bug in si2oadSortUniversal on 64-bit platforms: width of pointer was hard-coded to 4.
  • Added way to change filter flags for: nstIter, InstTermIter, TermIter, NetIter.
  • Verified Firefox 2.0.0.11 on SuSE 10.1 32-bit and 64-bit.
  • Eliminated EXCEPTION on getNameFromObj due to collision of ScanChainSet oaTypeEnum with GroupDef (having been recoded as one of the new oaAbstractTypeEnums).
  • Enlarged default font size to "medium" from "small" at request of customer.
  • Change the way refs were overwritten to account for different CSS default settings, parsing the stylesheets list dynamically (as opposed to having to remember to reset the fontFamily and fontSize in both the .css and .js files for future changes).
  • Updated WIN32 vcprog and sln with Johannes' latest versions.
  • Deleted erroneous template instantiation for siiSubset<oaGroupDef*> (thanks, Johannes).
  • Changed regex error handling to route error message to the choices window, instead of burying them in the console log.
  • Fixed duplicate oaArc bbox attribute causing XML error.
  • Elminiated dupe Occurrence expansion in OccModuleInstHeaders
  • Eliminated dupe isBound attribute in OccModuleInstHeaders
  • Stand-alone si2dis: added oaObserver<LibDefList> to catch lib.defs problems on OpenLibs().
  • Added missing OccBusNetDefs to Occurrence.
  • Moved name attribute of OccNets near front of list of attributes.
  • Added missing appType attribute for oaParam of AppParam type.
  • Deleted *_vc8.vcproj.GLOBAL.*.user VS files in both insertDLL/ and regex-0.12/ trees.
  • VS proj and sln files updated through v1.4.1 (not 1.4.2 yet!)
  • Moved OccInstHeaders list out to Design level to match its actual OA scope.
  • Added #ifdef support for v226 (DM3).

1.10.3 Release 1.4.3

  • delete ' from occInst'sOcc label
  • delete ~ and OLD and cdslc files from package
  • Add WIN32 comments.
  • Add TITLE consisting of oaObject type name and name attribute, if any.

1.10.4 Release 1.4.4

  • Add delete of cdslck and server.xml files from design data to clean target.
  • Clarified message about default options when no .si2oadoptions can be found on the command line and in the UserGuide.
  • Prevented XML collision of the "domain" attribute of oaFeature with that of oaObject.

1.10.5 Release 1.4.5

  • Posted WIN version code including (as "Redistributed Components"):
    • insertDLL library
    • Gnu Regex library
    • Added minimal help in the UG for install
  • CTL-Clicking on the + of an Object instead of a Collection should not bring
 up the regex/sort dialog and certainly should not try and activate those.
 Result was a blank space in the GUI output. Prevented this action for Object nodes.

1.10.6 Release 1.4.6

  • Change LCV default separators from = to / (but can be changed back, or to anything
 else in .si2oadoptions with the "delimLCV" option.
  • Fixed up a bunch of stuff in the GUI
    • Prevented CTL-click on several nodes, adding helpful messages to explain to the user why the click had no effect and where to go to get some. Nodes protected:*** refs= attributes*** individual attributes
      • buildInfos (not supported: no owner Object)
      • timeStamps (not supported: not treated like a Collection)
      • Root si2oadebug node!
    • Added code to auto close the regex/sort popup
      • when the parent oaD window is closed
      • when another click event happens in the main GUI
    • Added code to allow reuse of the regex/sort popup (only on the Collection clicked). This is *much* more convenient now, since you can incrementally keep adding/changing the regex/sort criteria without having to re-click and re-enter and remember where you were when the window blanked out on you.
      • A regex error is now reported in the status line, without messing up the expression typed in, so that expression can be edited from where it is so far.*** The SUBMIT button now names the clicked Collection node, so the user cannot forget which node was clicked.
  • Reset verbose levels on some messages (like "cached iter" info) to level 2 to reduce the console clutter when starting up the GUI.
  • Moved event capture to PRE element wrapper to prevent click events on the scroll bars or the top header from intruding into the javascript to reduce pointless overhead and to simplify debugging the javascript.
  • Tested environments now include:
 Bits       gcc       OS                        Firefox     Mozilla    Konqueror
 64         4.1.2     SuSE 10.2                 2.0.0.10    n/a        3.5.5
 32         4.1.0     SuSE LINUX 10.1 (i586)    1.5.0.4
 32         3.2.3     RHEL 3                    n/a         1.4        *3.1.3-5.2 (*regex pop-up failed)

1.10.7 Release 1.4.7

  • Draft of Tcl interface to oad( oaObject *)

1.10.8 Release 1.4.8

  • Fixed distracting "highlight + select" of portions of the display happening sometimes on click and CTL-click events that spawn ALERT boxes (firefox only) by changing to onclick event.
  • Switched to using HTML DOM element for regex error message insertion into popup because users might have UNCHECKED the setting for: Preferences/Content/EnableJavascript/Advanced/"Allow scripts to:"/"Change the Status Bar" and not realize it, thereby defeating use of the status bar for the regex error. Worse, the View/StatusBar top level menu choice might be unchecked and there would not even be a status bar on the popup to set.
  • Deleted duplicate javascript status settings in several window attribute lists.
  • Eliminated runtcl.sh script layer of goo. Now spawn tclsh directly from the Makefile.
  • Added some config comments to help with path setting for the Tcl components.
  • Added another overload for oad to the TCL interface to test the .i file and to enable resetting options without leaving the TCL session.

1.10.9 Release 1.4.9

  • Added test for SWIG version in Makefile and warning about min version required to compile si2oadtcl.i
  • Separated out "tcl:" as an independent target so those who do not care about it will not stumble with SWIG and TCL environment failures.
  • Only the load of si2oadtcl.so is necessary (it automatically resolves the dependency on libsi2oadebug.so)
  • Tested environments now include:
 Bits       Compiler      OS                        Firefox     Mozilla    Konqueror
 64         gcc 4.1.2     SuSE 10.2                 2.0.0.10    n/a        3.5.5
 32         gcc 4.1.0     SuSE LINUX 10.1 (i586)    1.5.0.4     n/a        n/a
 32         gcc 3.2.3     RHEL 3                    n/a         1.4        *3.1.3-5.2 (*regex pop-up failed)
            VS 2005       WIN XP                    n/a         1.7.13.    n/a

1.11 Release 1.5

  • Fixed cast of TYPE_OPTVAL (si2oadwww.cpp) to be reinterpret (because on WIN the #define for it results in an attempt to static_cast int* to char* (instead of to void* on UNIX).
  • Changed arg #2 type in checkMasterBind() to oaBoolean to prevent type conversion warnings on VS.
  • Johannes performed the edits and added code necessary to cut loose dependence on the GNU regex lib.

1.11.1 Release 1.5.1

  • If both dll and exe options are set for a viewer, the dll will be preferred but now a warning is printed so the user is alerted to the conflict. Previously, the dll was picked silently, causing some mystery if the user was focused on setting the exe option yet it wasn't having any effect.
  • Clicking on the ... for appType Params now properly loads an external viewer instead of SEGV. Works for all possible owners of such Params:
    • Insts in 3 Domains
    • InstHeaders in 3 Domains
    • Designs
  • Added more diagnostic console messages when external viewer settings are screwed up.
  • Added support for +-i/+-s case sensitivity overrides in GUI regex name box.
  • Fixed bug causing first open of Collection with CTL key (before it had been opened before without the key) to say "What is my collName???"
  • Fixed missing options casesensitive setting to propagate to name regex entered in GUI pop-up.
  • Added envtest target to help diagnose env and make var setting problems.

1.11.2 Release 1.5.2

  • Added release of Lib read access at end of si2oad.cpp's traversal of contents to prevent upgrade Exception if the app code then wants to do something that requires write access to that lib. Added code to check if LibAccess is needed for DMObject access, add to list, then clear any such added LibAccess from RTM on close of GUI.
  • Fixed TextDisplay code to cope with a valid AttrDisplay that had (because this is not checked by the API implementation) specified an Object that was not one of those compatible with the AttrDisplay values (ie, not a Net, Term, Inst, InstTerm, Design, or Assignment).
  • Cured bug that could cause SEGV if no Designs were open in the Session when an attempt to open existing CellViews (only when incremental display options were set to 1/1).
  • Got rid of unused variables 'masterText', 'wafer' in si2oadwww.cpp and 'master' si2oadxml.cpp.
  • Fixed si2distest/Makefile so it does not override the LIBRARY and LIB_OADTCL.
  • Added check for TCL_HOME and derive the include and lib directories from that, if it is set.
  • Updated proj files with new versions from Johannes.

1.11.3 Release 1.5.3

  • Added code to make usedInDBs= references hot links for AppDefs.
  • Solved problem of some combinations of sort/regex, followed by open of other Collections, inserting the wrong Collection.
    • Changed Javascript method of identifying Collections by position to name.
    • Eliminated code sections that dealt with Collection identification by position.
    • Added 'O' attribute to disambiguate Collections of owned Objects vs a few that are refs only. Seems like the minimal method and might also be defended as a clear indication to the user why some Objects are unfolded in certain places and not others (where they are referenced but not owned). Also is minimal impact solution on tag volume.
    • Improved readability of some Javascript sections, including more comments.
    • Added alert() warning when trying to CTL-click (for sort/regex) Collections that are not owned Objects.
  • Fixed problem causing SEGV during certain orders of opening Design Collections due to a false expectation of an IterCache having been created.
  • Finished making tool name changes to documentation and code to make them all consistent as Si2oaD or oaD.
  • Fixed SEGV caused when certain orders of CTL-click with regex expressions that do not match anything, followed by another CTL-click would cause SEGV.
  • Fixed incremental insertion of erroneous subsets of Objects in a Collection after a remnant regex from a prior such attempt failed to get reset to NULL for a subsequent CTL-click in a different Collection.
  • Added appropriate const_casts whose omission was tolerated by gcc 4.1.0 and 4.1.2 but not by VS.
  • Added XML/HTML syntax style design to UserGuide.
  • Fixed timers on several Javascript GUI operations.
  • Had to add an "O" attribute to disambiguate owned collections (Terms) from collections of refs (OccInsts) for Javascript. I could, instead, add more data either in the JS or in the server to keep track of which Collections could and which could not be incrementally displayed

1.11.4 Release 1.5.4

  • Fixed BIND of Design to CellView primary.
  • Fixed path problems in WIN version for option settings: docroot, outputpath, oadocs
    • Fixed WIN32 for use of drive letters (and mapped drives)
    • Multiple and incorrect separators in filesystem path names in option settings.
  • Fixed several decl warnings from gcc4.2.1 in si2oad.cpp
  • Added check for no Occurrence passed to OwnedOccInstHeaders
  • In stand-alone si2dis:
    • Enabled use of explicit path to libDefs file with arbitrary name
    • Fixed bug preventing proper execution with omission of arg4 (libpath) in some cases
    • Added check for SI2DIS_NOPROMPT to enable use of si2dis in scripts with no std::cin reads
  • Fixed spelling errors in the default list of sorter DLL names in si2oadglob.cpp
  • Added tests for release IDs to prevent call to getAssignedNet(), which SEGVs in OA releases <= DM4p017
  • Added check for DM4p007 and earlier, when it was OK to put an InstTerm in more than one scanChainInst, for scanChainInst test in test1.cpp
  • Updated quit.html to self.close() for browsers that do not honor window.close() from popups.

1.11.5 Release 1.5.5

  • Fix to WIN version of si2dis.cpp eliminating include of unistd.h (Johannes)
  • Fix to si2oad.cpp to remove duplicate "override" attribute (Peter Niday)
  • Fix to eliminate () from "assignedNet" attribute name (which causes SAXParseException in xerces).
  • Set the default Tcl lib in Makefile to l

1.11.6 Release 1.5.6

  • Eliminated "occInstHeaders" entry when there are none.
  • Eliminated duplicate print of Occurrence for OccModuleInsts.

1.12 Release 1.6

  • Fixed Association type to Int4 (from String) on AttrTypeEnums causing errors in some Win compilers.
  • Verified with p028
  • With FF3.0 wrong font size is overlaying the refs= links in Collections that are lists of refs to other Objects. Fixed the Javascript to force font style characteristics that match those defined in the CSS for the display.

1.12.1 Release 1.6.1

  • Verified with p034, 64bits
  • getAssignedNet() still broken in p034 -- added code to detect latest OA version ID and skip
  • Added SKIPTCL Makefile var conditional to enable skipping TCL part of build for environments that don't have TCL and don't need it.
  • Changed order of attributes on Marker output so increasingly longer Strings print later on the line.
  • Added SUSE10.3 32bit binary pack

1.12.2 Release 1.6.2

  • Fixed bugs in ConstraintGroup GUI display causing opening of owned Collections (members, constraints) to blank out the multiple lines in the GUI.
  • Fixed similar bug in Constraint
  • Added script generation
  • Finished out remaining "redundant" attributes for oaObject (since they are not so redundant if the Object itself is the root of the call -- as discovered when trying to link to the parent "database" of a ConstraintGroup recently)
  • Change code to print out allowedObjs, allowedValues, and allowedDBs even if Subset is empty (was skipping these attributes in this case before).
  • Finished fixing UserGuide on Wiki format:
    • Break apart huge mono-page into more editable pieces less likely to break wiki browser editing limitations.
    • Deleted the .odt and .pdf versions of the UserGuide (since this wiki is now the latest and only version)
    • Added in README.txt a pointer to the current master UserGuide on the oadebug wiki.
    • Add missing figures.
    • Fix links to sections, tables, figs.
    • Add roadmap.
    • Add change log history.
    • Add in changes made since original conversion from ODT to wiki.
  • Separate out the WIN version as a separate release package
  • Add code to handle oaLayerHeader. Was completely missing!
  • Fix bugs in GUI display of member collections of Constraints and ConstraintGroups.
  • Add shell scrpit generation.
  • Finish remaining "redundant" attributes for oaObject – since the enable traversal when some lower level owned Object is the arg to the oad() call.

1.12.3 Release 1.6.3

  • Fixed bug in ScanChain: do not try to get MaxBits if no partitionName
  • p037 qualification
  • TechHeaders not printing out properly for incremental Tech graph.
  • Added name of Lib to list of (incremental Tech) TechHeaders refs.
  • Changed missing UserGuide.pdf in docroot to a WARNING instead of an ERROR.
  • Added auto_open_tech option for oaLib (owned Object), oaDesign (ref only), oaRoute::isContiguous()
    • Route isContiguous() will bind Tech. Changed to check auto_open_tech option and maybe plant OPENTECH active HTML sentinel in output.
    • Added OPENTECH active HTML sentinel for Lib, Design
  • Eliminate 'bold' style on inline dynamic HREF creation of ref lists (not same width as 'normal' in some browsers, so not overlaying exactly in-place onclick).
  • Add Session revNumbers to top level <Si2oaD> tag.
  • Shape's shieldedNet1 had dupe name of shieldedNet2 (didn't show up until do_null_obj set or there actually were shieldedNets for the Shape).
  • Added version stamp to output.
  • Option changes to si2dis.
    • Added much more forgiveness to arg processing and more error checking
    • Added -verbose option for more info about status of processing.
    • Added LibDefList traversal for verbose info about lib.defs processing
    • -t option now displays Tech instad of other containers.
    • Now if View is / (don't care) the Cell will be displayed.
    • If Cell and View are / the Lib is displayed.
    • No need to specify trailing / characters (including with -lcv option)
  • WIN version: VS2008
    • Updated project files
    • Included binary package: exe + dlls for XP

1.12.4 Release 1.6.4

  • Add XSLT for various XMLHttpRequest actions (Firefox tested only)
so that all active HTML functions work for xsltype=browser option.
  • Improve cross checking of options
  • Update help for new options recently added
  • Add verbose option
  • Correct handling for display of Session, entire Lib, entire Cell
  • Check for isStdViaMaster before trying to get Tech.
  • Fix help message: -t and -v option info printed as though an extra arg was expected.

1.12.5 Release 1.6.5

  • Add oaUtil for command line arg processing (so si2dis works like OA translators)
When building from source, use the OADUTIL compile DEFINE to get this behavior:
  make install CXXOPTS=OAUTIL
  • Fix bug writing out .si2oadoptions: missing # on lines with iter flags option values
  • Improve readability of options file output generation.

1.13 Release 1.7

  • oaUtil version working on Win with VS2008
  • Added code to enable \\network\path locations in .si2oadoptions values.
  • Added dynamic HTML BIND of Tech from its DMFile.
  • Added Javascript to support Crome browser (v2.0.172.33) on WinXP (sp2)

1.13.1 Release 1.7.1

1.13.1.1 install/config

  • Added finer granularity for INSTALL directory selection.DIR_INSTALL_OAD = ..
 DIR_INSTALL  = $(DIR_INSTALL_OAD)
 DIR_BIN      = $(DIR_INSTALL_OAD)/bin
 DIR_LIB      = $(DIR_INSTALL_OAD)/lib
 DIR_ETC      = $(DIR_INSTALL_OAD)/etc
 DIR_EXE      = $(DIR_BIN)         # Mix si2dis and its scripts in the bin/ dir loose with all the other stuff there.
 DIR_SO       = $(DIR_LIB)/si2dis  # Segregate the .so libs under an si2dis/ subdir in the lib/ directory.
 DIR_DOCROOT  = $(DIR_ETC)/si2dis  # Segregate the docroot files under an si2dis/ subdir in the etc/ directory.
  • Added ? char as a substitute for the directory from which the main libsi2oadebug.so was loaded to use as a prefix for:
    • all the PlugIns
    • docroot

1.13.1.2 oad

  • Fixed Pin accessDir to list all of the directions ORed into the value. Added small test case to the si2distest/test1.cpp file.
  • isContiguous attribute value is reported as NoTechInLib (if that is the situation). But that value and the attr name were reversed. Fixed.
  • Changed defalut delimLCV to / instead of =
  • Rewrote AssociationRefWithNameMap to handle cases where obj passed in is NULL: now always writes the wrapper AssGroup tags (instead of leaving them off to mess up the XML) and will report the NULL ref, but not try to get its name.
    • groundSensitivity
    • module attribute for an oaModule
  • Fixed EXPAND occurrence sentinel being planted redundantly at the end of an OccInst as bare name=value pair, in the middle of owned Objects, messing up the XML.
  • Fixed OccInst master Association XML getting messed up with extra lcv attribute being planted between tags.

1.13.1.3 si2dis

  • Deleted last remnants of non-oaUtil options processing.
  • Added aliases for libdefs option: libDefFile, libDefs, libDef
  • Added attempt to open a LibDir/ in . with same name as -lib provided

1.13.2 Release 1.7.2

  • p044
  • Pulled out Makefile code to delete hex IDs and other run-specific info from an XML output file to allow stand-alone use in regression testing.
  • Added missing refs Collections to oaModule:
 Terms
 Terms by Position
 InstTerms
  • Converted long list of hex oids for various Object-ref Collections into folded lists. Added names to the attributes of each to assist in identification. This should reduce the XML overhead for Objects with large numbers of refs to other Objects:
 Block     :  InstTerms   , Terms
 Occurrence:  OccInstTerms, OccTerms
 Net       :  Shapes
 LPPHeader :  Shapes
 ...and some others
  • For Shapes refs Collections, the shape class name has been added. For InstTerms refs, the Name of the parent Inst has been added.
  • NOTE: Example data directories are a separate download package. Unpack them in the /$UNPACKROOT/si2disDATE directory. They are no longer wrapped in their own si2disDATE/ directory to make unpacking in the release tree simpler.

1.13.3 Release 1.7.3

  • Added code to enable passing multiple name=value option overrides (for .si2oadoptions) to stand-alone si2dis since the oaUtil ignores all but the last when you reuse the same -keyword.
  • Added inst-name prefix to InstTerm refs Collections to make them more useful.
  • Added Pins and remaining refs classes to the vertical display format making them incremantally accessible at RT (useful for large Designs).

1.13.4 Release 1.7.4

  • Add sort/regex to r Collections.
  • Fix: Some 'o' Collections were showing all elements even when maxcollentries=1.

1.13.5 Release 1.7.5

  • Fixed script generation to enable rewrap with new PREFIX.
  • Moved templates for OwnedFeatures, OwnedCollections into new si2oadcoll.h file directly included in si2oad.cpp, the only module using them, so that the mass of explicit template instantiations for the various combos of container and member can be deleted (necessary before because decls and use were in different compilation modules).
  • Added 'complete set of Observers for Tech conflicts, LibDefs, etc.
  • Enabled list of Observers to be included, instead of just one.
  • Enabled dllsorters and dllobservers list of DLL names to work with or without the .so/.dll extension included in a name.
  • Configured error/conflict Observers module as .so so it can be loaded with oad, not just si2dis.
  • Added all-L/C aliases for si2dis libdefs option.
  • Eliminated printCmdLine from the setup() function for si2dis (because of the redundant aliases printout).
  • Improved format consistency of debug messages.

1.13.6 Release 1.7.6

  • p049 qualification
  • Make xsltype default "browser" (so it will work out of the box even if Xalan has not been installed).
  • Order prop values up front in the list.
  • Set oaUtil App Output and version to XML 1.0/utf-8 and added p-build version tail to the Input type.
  • Force off -x permission for all but .sh, .csh, .tcl files in distribution source tree.
  • Added releaseNotes info for design size testing.
  • Fix template arg types for oadu() LookupTbl types.
  • Add {} around nested if() test to eliminate warnings of "ambiguity" on some compilers.
  • Factor out WIN and REGEX defs into separate modules so they don't have to get inserted into compilation units that don't need them.
  • WIN32 VS2008 version:
    • Update VS2008 build files.
    • Enable auto browser spawn in WIN version on oad() call.

1.14 Release 1.8

  • Fixes Makefile target for Install lib/bin dir creation that overrode the def in makefile.defs (thereby generating a gmake warning).
  • Added dacdemo data to exampleData distribution package.
  • Added option for displaying Collections even if they are empty.
  • Switched output stream in si2oadObserve code to cout to mix better with console output.
  • Reported to Cadence option alias problem (oaUtil) that reports both aliases for each option (that has an alias) on the run line. Leave as is in the code awaiting fix in the OA release.

1.14.1 Release 1.8.1

  • Added dynamic WRAP/noWRAP capability (button at top).
  • ModObjects getting parent Module and topModule attrs from both "parent" relationship and from the individual relationships.
<master bound='t' lcv='Lib/Gate/schematic' design='#0x' module='#0x'/>
<parent design='#0x' lcv='Lib/Sample/schematic' module='#0x' topModule='#0x'/>

<master design='#0x' lcv='Lib/Gate/schematic' bound='t'/>  <---If unbound the BIND links now apperar on
<master module='#0x' bound='t'/>                           |   separate lines (if WRAP, avoids ambiguity)
<parent design='#0x' lcv='Lib/Sample/schematic'/>          <---Eliminated dupe module parent attributes
<module ref='#0x' name='Sample'/>                          |   recorded here via ModObject inheritance.
<topMod ref='#0x' name='Sample'/>
  • Separated master Design and Module relationships into two separate line attributes to avoid ambiguity of two different BIND commands in the same click target.
  • ModInst missing inherit ModObject layer.
  • Moved AppDef's usedInDBs attribute out of single name=value primary list (since it can be multiple values and looks very confusing if so mixed in with other single n/v pairs).
  • Replaced pixel navigation for BIND in Javascript to cope with indeterminate multi-line breaks of WRAP.
  • Exception change in p054: Attempt to create oaViaDef2DTblValue with a Tbl that is already owned changed from oacInvalidDefaultValueForTblValue to oacValueAlreadyOwned.

1.14.2 Release 1.8.3

  • Added in AIX code support (contributed by IBM).
  • Made replaced use of defines for LONG_LONG_MAX and ULONG_LONG_MAX with LLONG_MAX and ULLONG_MAX on WIN32 and Linux and INT64_MAX and UINT64MAX on AIX.
  • Reconfigured install target to enable location within OA hierarchy and compatible location elsewhere including separate PLATFORM, OA_BITS, OA_MODE paths.
  • Fixed bug: error recognizing "0" used for "absent" data or cmap Display DLL in .si2oadoptions file.
  • Added IPcell info (name, Guid, handle) for Pcell Designs.
  • Fixed output orderings:
    • Moved InstHeader isSuper attribute before group attrs.
    • Moved bound attr for OccInstHeader before group attrs.
  • Added empty string default values for AIX initialization in si2disErrObserver.cpp
  • Set make defaults to: opt, 64 bit
  • Set .si2oadoptions defaults to:
   console=gui    maxownerlevels=1    verbose=1    maxcollentries=10
   t for all filters (except: loadnetworks, expandocc)

1.14.3 Release 1.8.4

  • John McGehee's upgrades to makefile.defs:
    • New warning messages to aid setting make variables
    • Better organization
    • Conditional overrides to enable both env var settings and local makefile overrides
    • .PHONY listings for all non-file targets to improve make performance
    • Explicit [un]install_oa targets for PREFIX=$ROOT_OA
    • SKIPTCL check now for explicit 1 value (instead of just "defined")
  • Assure creation of distrib leaves si2oadtcl.cpp more recent than .i and .h to avoid need of SWIG to rebuild it out of box.
  • Delete extra / in path for $Origin locations (si2oadglob.cpp) of DLLs and docroot location.

1.14.4 Release 1.8.5

  • Added DMFileSystemName attribute for Lib.
  • Move TAGS file from OA install root to PREFIX/data (good if you can't write to the OA install tree!)
  • Added for CMap and Data viewer DLL loading code a check: If user did not include the .so on the end of the file, add it for him.
  • Fixed LD_LIBRARY_PATH order in .gdbinit to look in PREFIX before ROOT_OA to get latest build .so's in PREFIX, esp. if you had older ones in ROOT_OA, too.
  • Added a flag to skip EndObject processing when Collection displays get truncated (due to max* options settings) to prevent containerStackDepth from getting decremented < 0, making level 3 diag messages appear more logical and easier to follow.
  • Improved several debug message formats:
    • Prefix with function name
    • Push more to higher levels of debug.
  • Enable sending console SIGTERM to nanoserver to interrupt a sort.
 EXAMPLE: (while sort is active)
          kill -15 `ps -a | grep si2dis | awk '{print $1}'`
  • Added newsorter to sort by LayerNum: si2oadSortLayer
 NOTE: 2 sorter DLLs use slow bubble sort (used for debugging SIGTERM)
       These will be changed to qsort next release.

1.14.5 Release 1.8.6

  • Think I have a more positive QUIT. Time will tell.
  • Added code in the javascript to put a popup when clicking on a link that requires the server after the connection to the server has been terminated. explaining this to the user (who has many such windows open and forgets which were terminated).
  • Added button ABORT to kill sort (as alternate to SIGTERM).
  • Threaded the socket accept() to enable mutiprocessing of client requests.
  • Moved etags targets out of the build: target. Is optional now, so out of the way for those who don't have etags or those who don't use it (infidels!).

1.14.6 Release 1.8.7

  • p059 qualification
  • Mutexed nanoserver for OA RTM access only.
  • Threaded javascript.
  • GUI
    • Gave the finger to the buttons and other links on the page.
    • Added status popup.
    • Deleted show/hide times (always .001 because FF does it async)
  • Fixed "browser will open" message on console to name the correct path.
  • Added Doxygen tree

1.14.7 Release 1.8.8

  • Fixed load of si2oadtcl.so into tclsh and use in GUI (output) mode: "undefined symbol" errors occurred on dlopen() of Sorter modules in GUI mode during load initialization of the list of sorters defined in .si2oadoptions. Any symbols Sorters referenced that were in libsi2oadebug.so (i.e., the main enchilada) could not be resolved.

1.14.8 Release 1.8.9

  • Changed name of Tcl module to siioadtcl (since Tcl algorithm for creating Init routine out of packageName stops at any non-alpha char).
  • Slight improvement of efficiency by testing req.status in the callback closure, avoiding call to handleIncrementalLoad only if STATUS_HTTP_OK.
  • More threading of Javascript: pass node ids into request object. ClickedElem was getting passed as an event, which was OK single threaded; but now the event gets changed by the next XmlHttpRequest. Now a "sort/regex" dialog window can be reused on the same Collection with different settings repeatedly without getting confused about which node to replace in the DOM.
  • More documentation; added:
    • A top-level README.txt
    • More help to the TOPLEVEL/si2dis/README.txt
    • A TOPLEVEL/si2distest/README.txt
  • Posted example data tarball in:
   https://www.si2.org/openeda.si2.org/project/showfiles.php?group_id=29#p54
  • Add abortsignal to .si2oadoptions to enable apps to decide which SIG to use for Sorter DLL abort (via command-line kill). Setting 0 disables signal use entirely.

1.14.9 Release 1.8.10

  • Changed to RLTD_LAZY to eliminate need to link siioadtcl.so with DLLs.
  • Some sockets not getting closed. Eventually would use up all the sockets in a process.
  • Linked -loaWafer with si2oadebug.so to avoid need to do it for siioadtcl.so

1.15 Release 1.9

  • Tested with p064.
  • Pushed more debug messages to higher verbose level to better separate debug output.
  • Fixed GNUREGEX define for Win version.
  • Added USEWAFER make option to affect compile and link. If not defined non-null, eliminates from the model Wafer references that require the OA lib, -loaWafer. Also eliminates them from the makefile build processes.
    • binding primaries from CellView if they are Wafers
    • LayerMaps
    • oaMfgLayerArray
  • Eliminated calls to statusNewCurItem() in .js -- with threading, more will have to be done to prevent interspersion of different message frags in status output.
  • Fixed compile warning in gcc 4.4.1 in si2oad.cpp: Deleted attempt to use (non-existent) oaString constructor around char (the 'reason' variable).
  • Updated (si2oadcoll.h) with latest OA release buildInfo check for SEGV when calling getAssignedNet for OccInstTerm: Still SEGVs (if there are ConnectDefs around).
  • Fixed findUnimplementedClasses.sh
  • Updated CSS rules
    • Made -/+ for collapse/expand characters stand out better with
      • red color
      • border outline
      • different (crosshairs) cursor from that for adjacent OA docs class ref link (pointer). TO CONSIDER: Adding space after +/- to separate better from class name links; but this is more HTML characters to load.
    • Eliminated many places where cursor changed to hand or hover caused underlining on things that were not really links by changing hover curser styles to "text".
      • Used attribute selector to prevent 'id' attributes from looking like links
      • Better delineated link parts of the title at the top
      • Got rid of hand cursor except over specific values that were links in many elements.
  • Default oadocs location in .si2oadoptions to the same OA install ROOT used to build the code (instead of the si2.org online docs).
  • Clarified statement of backward compatibility on OAD download page.
  • Fixed missing newline on close() log message from xmitFile.
  • Make default doc location the OA ROOT.

1.16 Release 1.10

  • p064 tested
  • Added #ifdef for selecting HTTP/1.0 [default] or HTTP/1.1 protocols in nanoserver (si2oadwww).
  • Converted send() code to sendfile() to avoid extra overhead of kernel/user space context switches during HTTP transmissions.
  • Messages
    • Made format more readable by fixing size of tool/func name ID columns.
    • Pushed several messages to higher verbose levels to get smoother increasing granularity as verbose value increases.
    • Fixed missing tool/func name ID prefix in PrintObj.
  • Fixed comm problem RST causing buf data remaining in socket buffer not to get flushed to client.
  • Added code to report but gracefully skip non-existent files requested as a result of an OA doc page (like /data/OA/p064/doc/oa/html/print.css on just about every class page).
  • Eliminated /quit.html layer in favor of direct /quit adding code to pass 204 to gracefully terminate for such a client request.
  • Added 204 response for /abort messages to terminate sorts.
  • Comm problem: When sending /quit (not quit.html) client hangs "Waiting for localhost...". Added a reply with no entity-body.
  • refs= attribute name getting deleted on dynamic change to <A> links (Example: In oaTech, values, oaViaDefArrayValue list of refs to ViaDefs)
  • Added R-click context-sensitive menus for +/-, Collection name, oaObject name elements. CTL-click still works.

1.16.1 Release 1.10.1

  • p064 tested
  • #ifdef for WIN32 to select a DLL data displayer was backwards (it would pick notepad on Linux).
  • Data display DLL handle getting overwritten by CMap displayer DLL handle.
  • Context-sensitive Menu (CSM)
    • Made labels more verbose.
    • For +/- label use one of: EXPAND or COLLAPSE in the CSM, based on current state.
    • Eliminate transparent background.
  • L-click no longer opens OA class page (must use CSM for that). But left in place all other L-click and CTL-click actions as they were (for backward compatibility).
  • For both owned Object and Collection lines, L or R click can be done anywhere from the leading +/- through the Obj/Coll name.
  • More debug message (verbose) improvements.
  • More updates to wiki User Guide.

1.17 Release 1.11

  • p064, p067 tested
  • Fixed bug in refs Coll HTML rewrite: check for existing rewrite and avoid doing it again.
  • Change format of Def's Objs and bits for BusNet, BusTerm, VectorInst in each of the 3 Domains.
  • Fixed: non-expandable OA Object nodes not showing Docs CSM.
  • Unified code for AssociationRefsCollectionNameMap and OwnedCollections.
  • OccInstHeaders after lead node missing
    • "o" Collection type identifier.
    • count of number of Headers in Collection

1.18 Release 1.12

  • p067 tested
  • Add parent, session options to si2dis
  • Add Layer ref attribute to layerHeader
  • Added DBUperUU to Tech
  • Fixed window TITLE
  • Code added to nanoserver to track open HTML documents in OAD browser windows and auto-close when last one is unloaded
  • Updated main project page on OpenEDA
    • Added links to the OAD views of the AnalogSymbols
    • Fixed styles so links stand out in color and on hover
  • New logic to context-sensitive menus (CSM)
    • align bottom of clicked element entry and left edge at cursor point.
    • show either Collapse or Expand depending on which applies based on current state
    • added links (as context-appropriate) for
      • sort/regex-filter dialog
      • OA class page (the doc page link) reference
  • Note: version ID for OAD already was in the first <Si2oaD> node as the first attribute
  • Eliminated need for abort.html and quit.html, sending them as XmlHttpRequest messages that need no content reply

1.19 Release 1.13

  • p067 tested
  • Made status window auto-update onclick anywhere in the window. Why hunt for a button?
  • Enabled context-menu (R-click) for Collection lines that no longer have a leading +/- because they were regexed to death.
  • Fixed:
    • Status message for send() over socket reporting "# bytes tried" incorrectly.
    • Thread-unsafe strerror() calls (which occasionally resulted in gcc free errors), converting to safe versions.
    • Javascript insertion of wrong node in Collections when requesting item after the last one in a sort/regex list.
    • Blank line being left at end of Collection in some regex cases.
    • Deleted redundant socked shutdown and close in last-oad-document-unload case (causing error on already closed socket)

1.20 Release 1.14

  • p067 tested
  • Add option filename to save URL that will quit nanoserver (if opened in browser).
  • Fixed wrap/nowrap in FF versions >= 3.5 and Seamonkey versions >=2.0
  • Added test whether nanoserver was killed so clicking links that require it in a remnant oad browser produce intelligible alert.
  • Significantly fixed the STATUS window.
  • Enhanced the CSM:
    • hover highlights the active line
    • no more bold
    • use serif font to stand out from non-serif in main window view
    • cursor now gives you the finger
    • background white
    • border now black
  • Adjusted validateDocroot: delete dependencies on abort[quit].html add status.html
  • Fixed max/min for long long types across platforms (I hope!)

2 Release 2.0

  • p067 tested
  • Fixed template warning, "case label value exceeds maximum value for type", reported by gcc 4.4.1 for AssociationEnum template in si2oadxml.cpp when T=oaCategory.
  • oaOccInstTerm::getAssignedNet still broken in p067. Updated lastBuildWithOccInstTermSEGV in si2oadcoll.h accordingly.
  • Tracker #1300: Fixed Prop to order value attribute after name, EXCEPT for AppProp (the value of which could be very long)
  • Fixed AppDef to order value attribute after name and before AppDef OID reference. EXCEPT: For oaDataAppDef left size before value, in case maxextdata set large, size won't get lost.
 name=myDataAppDefType size=24 value=61393861733039643837616a68612000...
  • Added checks for most action requests to notify user if server was already closed, instead of generating a JS error and doing nothing.
  • Session option in struct info not getting initialized, so option coming back random, usually NOT zero, so entire Session being displayed even though -lcv specified.
  • Add missing escapes before nested quotes in regex expression for echo comments in testreleaseguts.sh
  • Create a .si2oadoptions-test version to fix option settings for testrelease.sh

2.1 Release 2.1

  • OA22.41p004 tested
  • Fixed: from/to inductor out of postition for MutualInductor
  • Eliminated more "debug" messages from verbose=0
  • DMData:
    • Added links from DMFiles that are DMDatas to open Objects in display
    • Added links from DMContainers to their DMDatas to open Objects in display
    • Added OPENDMDATA hot keywords to display if DMDatas exist but not open (both in DMFile and in DMContainer sections)
    • Added checks to prevent DMData access for DMFileSys Views
  • Makefiles
    • Added code to guess better what the BITS and MODE might be. Many makes only require Si2_ROOT_OA setting now, unless override desired.
    • Clarify makefile.defs warning messages about var set problems
  • Add URL to UserGuide in oado("h") interactive call for help
  • New si2oadoptions:
    • autoopendmd Forces open of DMDatas if they exist on disk
    • autoskipdmd Skips descension into all DMDatas during traversal.
  • Stand-alone si2dis wrapper
    • Added "usage" summary and link to UserGuide in oaUtil front-end
    • Improved look
    • Overrode the -v description to format better
    • Add options to si2dis command-line
      • dmd
      • dmdskip
  • Added more documentation for internal functions.
  • Fixed missing comma delim in si2oadOptions::nsNames[] element initialization
  • Improved README.txt
  • Fix example data: delete cdslck file embedded.
  • Add test for oad build without having to download example.
  • Added si2distest/dmdata.cpp testcase

2.2 Release 2.3

  • Prevent SEGV when using name regex on unnamed object Collection: The regex will always match in this case.
  • Hooked all debug/error messages (in the si2dis stand-alone front-end) through MsgAdapter class so
    • the -logFile option works
    • error and warning counts are totalled and reported in the Trailer
  • Reorganized si2dis so
    • only decls are in the .h (like a normal header)
    • the main() is in si2dis.cpp (like a normal, root .cc)
  • Updated the wiki UserGuide
  • Changed default oad verbose to 0 (to reduce console clutter when verbose=0)
  • Elevated a few more messages from verbose 0 to 1 and 1 to 2.
  • Wrap mode propagates correctly to child windows now.

2.2.1 Release 2.3.1

  • Handle missing Pcell evaluator in superMaster traversal.

2.2.2 Release 2.3.2

  • Prevent CSM for complex attribute lines.
  • Eliminate debug message.
  • Add brief doc for regex expressions on command line

2.2.3 Release 2.4

  • Re-implement oaUtil for p004 only: use original version for 072 stream (where -q won't work because oaUtil virtual function additions were not applied to that stream)
  • Display TechHeaders under Tech owner: Displayed only as Array of refs, they did not appear anywhere in the display, until opened "on-demand" in a separate window.
  • Display incremental TechHeaders hierarchically, each LOCAL-only list at a given level.
  • Make the TechHeader refLibName the "main" Object name, so it will display without requiring expansion of the folded TechHeader line (though TechHeaders are unnamed)
  • Move lcv attribute for CellView to head of line to show even without unfolding Object contents.

2.2.4 Release 2.4.1

  • More coherent alert errors when xmlHttpRequest fails because server crashed
  • Threading updates
    • Add #ifdef USE_NATIVELOCK to enable use of NativeLock; else pthread_mutex
    • Add include of oaILockFactory.inl for USE_NATIVELOCK to get getId() symbols in opt library link cases.

2.2.5 Release 2.4.2

  • Replaced "autoskip" reference to message about autoopendmd being true in options.
  • Fixed assertion failures with MT thread use models via pthread_rwlock.
  • Fixed crash when doing dynamic open of DMDatas.

2.2.6 Release 2.5

  • makefile.defs
    • Added makefile code to detect whether linking with pre2.41 threadsafe OA or not and add appropriate link libs and DEFINES for the code.
    • Set default SED to sed instead of /usr/bin/sed in makefile.defs Same for the other common shell tools
    • Delete x permission on all the makefile components
    • convert to := more of the make assignments that definitely don't need reevaluation by referencing Makefiles.
  • oad
    • Missing newline in message out of oadCollInfo::oadCollInfo
    • Delete superfluous Collection name message (level 2 verbose) from oadCollInfo

2.2.7 Release 2.6

  • Make
    • Clarify build/install targets, dependencies of script files in root makefile.defs
      • Separate creation of si2scriptmodel into build_scripts target needed only once
      • Deliver pre-made si2scriptmodel with OAD packages to eliminate need by customer to reference oa2lef skeleton and build that model.
    • Skip creation of .csh and .sh scripts (leave only OA translator wrapper)
    • Fix makefile.defs to use := for the common UNIX utility vars (SED, MKDIR, RM, etc.)
  • Options
    • Change options parsing to
      • allow embedded whitespace in option values.
      • force all data for a single option to be on one line (no carry-overs to multiple lines)
    • Add browseropts to enable addition/override of args for browser command-line
  • Browser spawn: Add table of default "known good" command-line args for supported browsers.
    • Set the default arg for Firefox to "-new-window" to insure oad starts
      • in a separate window (instead of buried in a tab somewhere)
      • in the current workspace (for multi-workspace desktops)
    • Create placeholders for chrome and iexplore
  • Diagnostic messages: Add options parsing messages to verbose=1
  • Threads: Added RW mutex around API functions with implicit SingleThreadUseModel assertions:
 oaTech::find()         // when a DMData exists in the directory
 oaTech::exists()       // when a DMData exists in the directory
 oaCMap::getCMap(blok)  // always, since this function has get-or-create semantics

2.2.8 Release 2.7

  • Added liboaWafer.so to link line for siioadtcl.so if USEWAFER==1
  • Added check of non-127 IP addresses and use URL in options file only as override. This is useful when the nanoserver runs on a different machine than that of the browser, so localhost has a different IP. This guesses the first non-127.0.0.1 IP is the IP of the nanoserver, making that the default URL for the browser (instead of localhost, which would be wrong in this case). Try in si2oadheader.js to detect in the browser whether localhost is the same IP as that provided from the nanoserver, redirecting to localhost (which is expected to bring a performance benefit) unless the URL option overrides this.
  • Removed spurious diagnostic messages still printing in the 2.6 release

2.2.9 Release 2.7.1

  • Add http:// prefix to 'url' option setting by user (if it isn't there)
  • Add code to si2oadwww.cpp IP detect loop to continue printing all non-localhost IPs for multi-NIC card machines, even after first one is picked for defaultIP, to give the user (with verbose set > 0) an idea of what to hard-code in the 'url' option in case the first IP doesn't work.
  • Fixed SEGV in case of opening an Object reference when no collection name has yet been requested for one of that Object's owned Collections.

2.3 Release 2.8

  • Delete 0x prefix from popups (some platforms have that already in hex values passed to Javascript.
    • Bind master Module of Object=0x
    • Bind master Design of Object=0x
    • Bind master primary of Object=0x
    • Load (unload on quit) ParasiticNetwork for AP=0x, Net=0x
  • Update onclick link for HELP button to the UserGuide sub-page of the wiki. The wiki was reorganized recently, so that original link is now to a more generalized "top-level" page that includes other tools besides oaD.
  • Browser security features now causing
    Error: Permission denied for <http://localhost:49549> to get property Window.document
 Deleted attempt to get size of windows opened "cross-domain" (i.e., not localhost, meaning any OA doc class pages, HELP buttons, external links). Was only used for statusLog anyway.
  • Added missing newline to "Expected LibDMData to be open!" diag message on browser Error Console.
  • Sort/Filter on empty collection hosing up the GUI!
  • Prevented "nodeUattrList is null" error message on browser Error Console.
  • Added "Try CTL-click on leading Object or Collection name." hint for vain attempts to click in the middle of attribute lists.
  • Added warning alert for r-click on empty Collections.
  • Added r-click support (formerly only CTL-click could be used) for non-empty Collections missing the leading +/- because a prior regex had 0 matches.
  • Prevent ctl-click on empty Collections from opening a sort/regex menu.
  • Simplified some of the logic structure.
  • Added BIND master of Inst capability to CSM: R-click detects existence of master node and auto-creates a menu action with the right node/oid info bound into an attached closure.

2.3.1 Release 2.8.1

  • Changed makefile.defs because newer OA libs tack on a compiler name and version string (e.g., in 2241p014: "_gcc44x") to the PLATFORM base ("like linux_rhel40"). This was unexpected for certain targets that cause mkdir executions of INSTALL_LIB and INSTALL_BIN dirs if sysname is not set (because Si2_ROOT_OA was unset or improperly set). This left empty garbage directory entries in $(PREFIX)/lib and bin that would never get cleaned. Now, warning messages print, and no dir is created, if sysname cannot be found and Si2_PLATFORM is not explicitly set.
  • Set some character value (text indicating an error) for the getDirLibsLoadedFrom() return for the one corner case [a bad libsi2oadebug.so moduleName return from dladdr()] that heretofore returned uninitialized memory.
  • If docroot set to NULL via .si2oadoptions, a null pointer was passed to strdup() causing SEGV. Now in this case, a default value is coerced: "$Origin/../../../data/si2dis"
  • makefile.defs: Fixed string/make quoting of $ in an error message using the string, "$Origin".
  • Fixed si2oadOptions::maybeGetEnvVar() to return a default "error directory" string instead of 0x0 in the case a bogus env var name is used in .si2oadoptions file.
Personal tools