View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0024487 | Open CASCADE | OCCT:Coding | public | 2013-12-20 13:15 | 2020-12-03 17:32 |
Reporter | Assigned To | ||||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Product Version | 6.7.0 | ||||
Target Version | 7.0.0 | Fixed in Version | 7.0.0 | ||
Summary | 0024487: Getting rid of generic CDL classes | ||||
Description | In context of planned elimination of WOK and CDL it is necessary to get rid of generic CDL classes in OCCT or at least to minimize their number as possible. The problem is that generic classes are defined through CDL and instantiated to C++ via macro substitution. Each instantiation is represented by two automatically generated files (hxx and cxx) which define this substitution and #include original code. This will be difficult to track and maintain without WOK. Other major problem with generic classes is that they are practically not usable in debugging: debugger does not recognize relation between source code and symbols in object code. The steps to be done are: 1. Build a list of existing generic classes and check where each is used 2. Classes which are not used (and other unused stuff found in the process) to be removed 3. Generic classes used in single place should be converted to plan C++ classes 4. Instantiations of TCollection classes should be replaced by NCollection equivalents 5. Remaining classes should be converted to C++ templates or kept as-is (in any case GXX files should be removed from inc folder) | ||||
Tags | No tags attached. | ||||
Test case number | |||||
parent of | 0024545 | closed | bugmaster | Open CASCADE | Convertation of the generic classes to the non-generic (XmlObjMgt) |
parent of | 0024547 | closed | apn | Open CASCADE | Convertation of the generic classes to the non-generic (math) |
parent of | 0024552 | closed | bugmaster | Open CASCADE | Convertation of the generic classes to the non-generic (BndLib) |
parent of | 0023959 | closed | Open CASCADE | Getting rid of generic classes in Visualization | |
parent of | 0023997 | feedback | Open CASCADE | Getting rid of generic classes in DataExchange | |
parent of | 0024553 | closed | bugmaster | Open CASCADE | Deleting obsolete/unused ".gxx" files from "GCPnts" |
parent of | 0024742 | closed | Open CASCADE | Remove rarely used collection classes | |
parent of | 0024748 | closed | apn | Open CASCADE | Remove unused instantiations of collection classes |
parent of | 0024750 | closed | Open CASCADE | Replace instantiations of TCollection generic classes by NCollection templates | |
parent of | 0024778 | closed | apn | Open CASCADE | Convertation of the generic classes to the non-generic. Part 9 |
parent of | 0024773 | closed | apn | Open CASCADE | Convertation of the generic classes to the non-generic. Part 7 |
parent of | 0024761 | closed | apn | Open CASCADE | Convertation of the generic classes to the non-generic. Part 5 |
parent of | 0024763 | closed | apn | Open CASCADE | Convertation of the generic classes to the non-generic. Part 6 |
parent of | 0024774 | closed | apn | Open CASCADE | Convertation of the generic classes to the non-generic. Part 8 |
parent of | 0024734 | closed | apn | Open CASCADE | Convertation of the generic classes to the non-generic. Part 4 |
parent of | 0024683 | closed | apn | Open CASCADE | Convertation of the generic classes to the non-generic. Part 1 |
parent of | 0024727 | closed | bugmaster | Open CASCADE | Convertation of the generic classes to the non-generic. Part 3 |
parent of | 0024662 | closed | Open CASCADE | Removing unused "generic" classes. Part 3 | |
parent of | 0024663 | closed | Open CASCADE | Removing unused "generic" classes. Part 4 | |
parent of | 0024660 | closed | apn | Open CASCADE | Removing unused "generic" classes. Part 1 |
parent of | 0024661 | closed | Open CASCADE | Removing unused "generic" classes. Part 2 | |
parent of | 0024708 | closed | Open CASCADE | Convertation of the generic classes to the non-generic. Part 2 | |
parent of | 0024859 | closed | Open CASCADE | Replace SortTools by STL equivalents | |
parent of | 0026850 | closed | Open CASCADE | Replace nested instantiations of TCollection generic classes by NCollection templates | |
parent of | 0031975 | closed | bugmaster | Open CASCADE | Coding Rules - get rid of generic classes in Adaptor3d_GenHSurface |
related to | 0024866 | new | Open CASCADE | Single definition of axis-aligned bounding box should be used across OCCT | |
related to | 0028966 | closed | bugmaster | Community | Coding Rules - remove Adaptor2d_HCurve2d, Adaptor3d_HCurve and Adaptor3d_HSurface classes |
related to | 0031025 | closed | bugmaster | Community | Coding - declared but unimplemented methods BRepBlend_AppSurf |
child of | 0024002 | closed | Open CASCADE | Overall code and build procedure refactoring | |
child of | 0024784 | closed | apn | Open CASCADE | Move documentation in CDL files to proper location |
Not all the children of this issue are yet resolved or closed. |
|
Changes are ready for review in CR24487 branch. |
|
I have redefined this issue as general for dealing with generic classes; particular fixes are to be done within separate issues, children of this one |
2014-01-22 16:08 manager |
gxx_used_by.txt (258,130 bytes) |
|
I have attached file gxx_used_by.txt, which is result of executing the following command on the current master: > cd inc; ls -1 *.gxx | gawk '{print($1); system("grep " $1 " ../src/*/* ../drv/*/* ../inc/* /dev/null")}' >../gxx The log thus shows where each of GXX files found in inc folder is used. The files which are not used anywhere (e.g. AppBlend_Line.gxx) and relevant classes can be removed immediately, I suppose (to be checked: perhaps they are still used indirectly somehow? e.g. pure abstract classes...) The files used once (such as AppParCurves_Variational.gxx) highlight generic classes which are first candidates for conversion to plain C++ classes. The files referred from src and/or inc folder (such as GCPnts_AbscissaPoint.gxx) most likely do not correspond to real CDL generic classes but just a way to abuse WOK. They should be analyzed on case-by-case basis. |
|
Considered as fixed with OCCT 7.0 since there are no CDL there. Remains of generic classes will be removed later in the frames of separate issues. |
|
Branch CR24487 has been deleted by inv. SHA-1: e4131afd2009b2d79a8b204bd27f92a2b0535538 |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-12-20 13:15 |
|
New Issue | |
2013-12-20 13:15 |
|
Assigned To | => abv |
2013-12-20 13:37 |
|
Note Added: 0027272 | |
2013-12-26 10:59 |
|
Status | new => resolved |
2014-01-04 14:07 |
|
Assigned To | abv => dln |
2014-01-04 14:07 |
|
Status | resolved => assigned |
2014-01-11 11:58 |
|
Category | OCCT Release:BUILD => OCCT:Coding |
2014-01-21 11:37 |
|
Relationship added | parent of 0024545 |
2014-01-21 14:09 |
|
Relationship added | parent of 0024547 |
2014-01-21 14:55 |
|
Status | assigned => resolved |
2014-01-21 14:56 |
|
Status | resolved => assigned |
2014-01-22 13:51 |
|
Relationship added | parent of 0024552 |
2014-01-22 14:12 |
|
Assigned To | dln => abv |
2014-01-22 14:12 |
|
Status | assigned => resolved |
2014-01-22 14:25 |
|
Relationship added | child of 0024002 |
2014-01-22 14:27 |
|
Relationship added | parent of 0023959 |
2014-01-22 14:28 |
|
Relationship added | parent of 0023997 |
2014-01-22 14:55 |
|
Relationship added | parent of 0024553 |
2014-01-22 15:13 |
|
Severity | integration request => minor |
2014-01-22 15:13 |
|
OS | Windows => |
2014-01-22 15:13 |
|
OS Version | 7 => |
2014-01-22 15:13 |
|
Platform | x64 => |
2014-01-22 15:13 |
|
Target Version | 6.7.1 => 7.0.0 |
2014-01-22 15:13 |
|
Summary | Convertation of the generic classes to the non-generic and non-cdl (from: math, XmlObjMgt and BndLib) => Convertation of the generic classes to the non-generic and non-cdl |
2014-01-22 15:13 |
|
Description Updated | |
2014-01-22 15:15 |
|
Note Added: 0027601 | |
2014-01-22 15:15 |
|
Assigned To | abv => dln |
2014-01-22 15:15 |
|
Status | resolved => assigned |
2014-01-22 15:33 |
|
Summary | Convertation of the generic classes to the non-generic and non-cdl => Getting rid of generic CDL classes |
2014-01-22 16:08 |
|
File Added: gxx_used_by.txt | |
2014-01-22 16:16 |
|
Note Added: 0027606 | |
2014-03-20 13:03 |
|
Relationship added | parent of 0024742 |
2014-03-21 11:20 |
|
Relationship added | parent of 0024748 |
2014-03-21 15:37 |
|
Relationship added | parent of 0024750 |
2014-04-01 16:41 | kgv | Relationship added | child of 0024784 |
2014-04-10 14:46 | kgv | Relationship added | parent of 0024778 |
2014-04-10 14:46 | kgv | Relationship added | parent of 0024773 |
2014-04-10 14:47 | kgv | Relationship added | parent of 0024761 |
2014-04-10 14:47 | kgv | Relationship added | parent of 0024763 |
2014-04-10 14:47 | kgv | Relationship added | parent of 0024774 |
2014-04-10 14:47 | kgv | Relationship added | parent of 0024734 |
2014-04-10 14:47 | kgv | Relationship added | parent of 0024683 |
2014-04-10 14:47 | kgv | Relationship added | parent of 0024727 |
2014-04-10 14:48 | kgv | Relationship added | parent of 0024662 |
2014-04-10 14:48 | kgv | Relationship added | parent of 0024663 |
2014-04-10 14:48 | kgv | Relationship added | parent of 0024660 |
2014-04-10 14:50 | kgv | Relationship added | parent of 0024661 |
2014-04-10 14:55 | kgv | Relationship added | parent of 0024708 |
2014-04-18 17:15 |
|
Relationship added | parent of 0024859 |
2014-04-23 09:17 | kgv | Relationship added | related to 0024866 |
2015-11-08 08:19 |
|
Relationship added | parent of 0026850 |
2015-12-25 19:29 |
|
Note Added: 0049608 | |
2015-12-25 19:29 |
|
Status | assigned => closed |
2015-12-25 19:29 |
|
Assigned To | dln => abv |
2015-12-25 19:29 |
|
Resolution | open => fixed |
2015-12-25 19:29 |
|
Fixed in Version | => 7.0.0 |
2016-05-20 12:24 | git | Note Added: 0054244 | |
2017-08-03 12:03 | kgv | Relationship added | related to 0028966 |
2019-10-03 12:48 | kgv | Relationship added | related to 0031025 |
2020-12-03 17:32 | kgv | Relationship added | parent of 0031975 |