ChipNDale (only) 2.4 released
Actually it happened on 04-Nov-86 (but was only messaged to DAToolsImplementors).
Designers: wait until your favorite tool set is available, but please put pressure on the tool implementors to do the conversion. There is no way to read in a file writen with version 2.4 into any older ChipNDale version.
Why a message before all the other tools are available: I can't wait any longer, since I am now thinking on getting the conversion to Cedar7.0 smothly and have to tell you about the archive and deletion plans in time.
Where it is
/DATools/DATools6.1/Top/CDDesign24.df
Usefull files are
/DATools/DATools6.1/CDCommon24/cd24.tioga
/DATools/DATools6.1/CDCommon24/cd24renames.tioga
ChipNDale 2.4 also uses new versions of TerminalIO, D2Basic, ColorMaps and CStitching
While the release time it might be of advantage to NOT put ColorMaps into your checkpoint.
Main attractions of this release
Concurrent IO of different designs. TokenIO supports streams as tokens.
Orientation is newly defined [does no more depend on object size].
Objects can have their origin at any point; No repositioning.
CDCells suports only one coordinate system [the former originCoords].
Sequences are used to represent cell contents.
Large clean up, smaller code size.
If you dont want to read it in detail look for the starred attractions *
If you are programming ChipNDale clients, it might be very useful to really check all points.
Global changes
Packages given up
CDFeedback I always stated that I wouldn't maintain it.
CDX coordinate system transfers are no more necessary
CDCallSpecific complexity/functionality was too large
CDLRUCache replaced by general package
CDOrient collapsed with CDBasics *
CDPolygons use CDCurves
CDMenus use general menu package, CDCommandOps and rarely CDPopUpMenus
CDChipmonkColors%.df who uses it?.
CDExtras usefull procedures distributed into other packages
CDTipEtc replaced by CDEnvironment
all the FooExtra's merged in
Not done
Parts of CMosA:
Old Chipmonk compatible objects do not have interactive commands.
Parts of NMos
Df file renamed to CDNMosA24,
Conversion of data structures is implemented,
Interactive commands which where not used by Tom or Shahram are not converted
CDRecognizer, CDOverlapRemover
Formally converted but not functional
[the semantical differences of orientation are not considered]
Lots of things not maintained by me.
Renaming
FooPtr => FooSpecific
cells can be represented using sequences *
safes trashing on cons cells for the dragon ifu chip
This code, while principially ugly, saves 600000 words of memory in the representation of the dragon ifu.
Conversion hint: See warning in detailed list.
Saves 8 gfi's, 2 mds *
2 gfi's by collapsing packages; the others by really reducing features
Package changes
CD
Rename: specificRef => specific
Replace: size => bbox *
Orientation and Transformation are lower level and imported *
design
New version feature accessible from clients; use boolean fields in CD, set with CDSequencer
Fields edited, changedSinceSaving [reserrved for sequencer]
PushRec.changed now in CellRec
Has fields for delayed redraws
Propertylist to implement undo caches
class
InternalReadProc knows atom
Field whether object class is created with CDAtomicObjects
drawing
Default device size is reduced to LAST[INT]/2 to prevent arithmetic overflow
Has a dummyInstance field
Showing selection for abstract devices
CDAtomicObjects
Rename: lev => layer
CDBasics
All the functionality from CDOrient *
Rename: NormalizeRect => ReInterpreteRect
Degenerated new proc
CDCells
No coordinate system choices **
Some procedures moved to CDCellsInteractions
SetSimplificationTreshhold has comment
CreateCell, IncludeInstance, EnumerateInstances: new procs
IncludeMode: dontReposition also implies dontNotify; dontPropagate renamed to make sure compiler find possible conflict spots. [for dontReposition I greped /datools/datools6.1/*]
Use of sequence and list to represent cells *
*Warning (Conversion hint): Use "grep .contents *.mesa!h" to find all use of cell interiors; check whether it is the contents of a pushed in design or a real cell. If it is a real cell use CDCells.EnumerateInstances instead.
The field contents does not describe the complete contents of a cell; this might cause some troubles in converting clients. It might be good to use grep to look for places using this field.
CDCellsInteractions
Module separates implementation of commands from implementation of data structures
CDCleanup
ReplaceFunny removed: it could only be implemented using PreTag and ReplaceTagged
CDCommandOps
Some procedures migrated to CDOps
DoWithResource replaces CallWithResource (no abortFlag feature)
CDDebug
New definitions useful for debugging only
CDDirectory
Expand and Another procs have different defaults return values
ReplaceObject: comment must say deals with instances but not with the directory.
DirectoryProc: Better class procedures to deal with renaming
CDEnvironment
New procedure RemoveSpaces
CDGenerate
Rename: Table => Context
Context not readonly; there were too many LOOPHOLE'S
CDInstances
new procedures Member, Length
CDImports
The dummy readonly design is accessible [but private]
Rename
CDImportsExtras => CDImportsBackdoor
ImportDesign => ImportEntry
New proc TrustedCreateImport
Working directory: check first in designs wDir, then in ChipNDale's wDir
CDInstances
Documentation such that you won't intermix Composed, DeComposed any more
CDIO
Handle for design; parallel IO possible **
CDMakeMenusImpl
Menus are made from a ChipNDale.MenuTable file...
Lots of tools start now from menus
CDMenuSpecials
SelectOneOf allows also list of ropes, type in
It removes duplicates
CDOps
Rename:
Redraw => ImmediateRedraw
DelayedRedraw => Redraw
PointedInstance is removed [it had only one client]
Some procedures from CDCommandOps
LambdaRope must not have a default for lambda
CDPanel
Cleaned up implementation
CDProperties
New procedures PutPropProp and GetPropProp *
RegisterAndInstall => Register; new parameters
CDRemote
New mechanism for using non-defaulted file names
CDSatellites
Comment is not property but font only!
On output (input) we do not enforce invariants but on call of GetSatellites the satellites are either cached, or if computed thats the time to enforce invariants
On pop the invariants are not enforced but on GetSatellites...
CDSequencer
Command.ref viewer instead of viewer.data field
New procedure to associate an abort flag
CheckAborted also checks commandtool stop button
CDSimpleRules
New mechanism for large contacts [the mechanism is there, not the implementation]
CDStretchyExtras
Replaced by CDStretchyBackdoor; new mechanism to return similar object
CDTexts
Rigid and flexible texts
Font no more readonly [some LOOPHOLE less]
Gone:
CDProperties.PutProp[rigidTextClass, $SisyphExtractProc, $ExtractNull];
CDProperties.PutProp[rigidTextClass, $SinixCMosBExtractProc, $ExtractNull];
CDTextsBackdoor
New package
CDViewer
It is now possible to open a viewer without opening a control panel
The procedure DesignOf also works for control panels, buttons inside control panels in addition to plain ChipNDale design viewers (uses the property $ChipNDaleDesign on the viewer or its parent)
CDViewerInternals
New package
CStitching
New proc EnumerateNeighborhood [gbb] (In definitions only)
D2Basic
Rename: Pos => Vector
D2Orient
New package exporting Orientation and Transformation in a ChipNDale independent way to
allow sharing Transformations between ChipNDale and other packages. Once in future
also procedures should be moved (and renamed) from CDBasics.
TerminalIO *
Log file
Edits on input are possible
Rename: Write~ => Put~
Less procedures
Timeout parameter on input is no more optional
TokenIO
Completely redone:
Concurrent IO for different designs is possible. *
Tokenized streams. *
Ropes use lru cacheing [saves 10% of file length].
UserProfile options
User profile options which have to do with files (tiptables, icons, menutables) have a prefix including a version number.
ChipNDale.OpenPanel: BOOL ← TRUE
If set to false, reading a design won't open a control panel
ChipNDale24.AutoLoad: BOOL
Switch whether technologies should be loaded automatically on need
ChipNDale24.AutoLoad.technologyKey: BOOL
Switch whether technology technologyKey should be loaded automatically on need
This switch, if set, overrules the ChipNDale.AutoLoad switch.
ChipNDale24.MenuTable: Default
File to load menu texts and help documentation
ChipNDale.SavePeriod: 0
Time in seconds ChipnDale waits before starting a background save
ChipNDale.AutoLoadImports:
TRUE
Whether imports should be directly loaded when file is read
Commands and properties
Background saving
For a particular design can be stopped using a property $CDxDontBackgroundSave with value $TRUE on the design.
Statistic command
<CTRL-middle> writes the font of single selected texts
Viewers
View mode can substitute or leave tioga fonts
The split viewer command does not automatically opens a control panel
[must use "control panel" entry in viewer pop up menu to create a control panel]
Control panels
Are never suppressed [for the benefit of Nectarine on CSMonitor]
InterpressPlot
Font substitution is done without file
Default scale option reads scale from property
PDPlot
Scan converts in device coordinates (instead cd coordinates)
Font substitution
Can draw outlines
Pop Up Menus
Menus can be defined from the menu entry definition files
Imports
Reading a design can load all imports, depending on options and user profile
Some commands are improved