View Issue Details

IDProjectCategoryView StatusLast Update
0025748Open CASCADEOCCT:Foundation Classespublic2022-01-26 16:30
ReporterabvAssigned Toabv 
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Target Version7.5.0Fixed in Version7.5.0 
Summary0025748: Foundation Classes - Parallel version of progress indicator
DescriptionIn order to provide progress indication functionality in algorithms working in parallel mode (BOP, BRepMesh), it is necessary to make progress indicator (classes Message_Progress*) capable of working in parallel threads.
Steps To Reproduceperf fclasses progr_par
TagsNo tags attached.
Test case numberNot required

Attached Files

  • bug25478_perf.xlsx (11,510 bytes)

Relationships

related to 0025113 closedbugmaster Community Mesh - Progress indication and user break functionality for BRepMesh component 
parent of 0031763 closedbugmaster Open CASCADE Foundation Classes - reporting of progress within parallel algorithms 
parent of 0031813 closedabv Open CASCADE Data Exchange, RWGltf_GltfJsonParser - debug assertion in progress scope on reading glTF1.0 files 
parent of 0031842 closedbugmaster Community Coding Rules, BOPAlgo - eliminate CLang warning -fsanitize=undefined reference binding to null pointer 
parent of 0032396 newmsv Open CASCADE Tests - unstable test case perf/fclasses/progr_par 
related to 0030697 closedbugmaster Open CASCADE Draw Harness - Draw_Printer should not be set to Message::DefaultMessenger() by default 
related to 0025896 closedabv Community Modeling Algorithms - UserBreak raising uncatchable exception in boolean operations 
related to 0030871 closedabv Community Data Exchange - Add a minimal progress indication for writing STEP and IGES files 
related to 0025482 closedabv Open CASCADE Data Exchange - Usage of progress indicator by a translation process of a STEP file into DECAF document 
related to 0031092 closedapn Open CASCADE Foundation Classes - incorrect last output value for Infinite progress indicator 
related to 0031190 closedbugmaster Open CASCADE Modeling Algorithms - progress indication in GeomPlate is inconsistent 
related to 0031504 closedbugmaster Open CASCADE Data Exchange - Wrong output of progress indicator when writing to stl. 
related to 0025530 closedbugmaster Open CASCADE Data Exchange - high-level API should take progress indicator 
related to 0025698 closedbugmaster Community Modeling Algorithms - Implementation of progress feedback in pave filler 
related to 0031942 closedbugmaster Open CASCADE Modeling Algorithms - add possibility to abort the BRepExtrema_DistShapeShape algorithm 
Not all the children of this issue are yet resolved or closed.

Activities

git

2018-06-20 11:54

administrator   ~0076845

Branch CR25748 has been created by msv.

SHA-1: 21a68e71d603039611304c2a68b385c37287b968


Detailed log of new commits:

Author: msv
Date: Wed Jun 20 11:54:41 2018 +0300

    0025748: Parallel version of progress indicator
    
    The fix revises the progress indication mechanism. Now, the class Handle(Message_ProgressIndicator) performs the only function of calling back to user application. It just accumulates the progress provided by progress scopes.
    
    The new class Message_ProgressScope serves to represent a scope of execution. The new instance of it is created to provide progress advancement of a new coming operation. The scopes are nested to each other to reflect the nested nature of operations.
    
    All codes involving progress indication have been updated to new API.

git

2018-06-21 13:05

administrator   ~0076866

Branch CR25748 has been updated by msv.

SHA-1: df083f1fd8a7647b189776260534167270ec0f0d


Detailed log of new commits:

Author: msv
Date: Thu Jun 21 13:04:43 2018 +0300

    # Improved version of indicator and scope.
    # More codes are moved to new API.

git

2018-07-10 20:53

administrator   ~0077434

Branch CR25748_1 has been created by msv.

SHA-1: c89b4b85c527c84e723f42e8d8079a9f5d2d6c8a


Detailed log of new commits:

Author: msv
Date: Wed Jun 20 11:54:41 2018 +0300

    0025748: Parallel version of progress indicator
    
    The fix revises the progress indication mechanism. Now, the class Handle(Message_ProgressIndicator) performs the only function of calling back to user application. It just accumulates the progress provided by progress scopes. The counter is protected by mutex for thread-safety.
    
    The new class Message_ProgressScope serves to represent a scope of execution. The new instance of it is created to provide progress advancement of a new coming operation. The scopes are nested to each other to reflect the nested nature of operations. Each instance of progress scope can call the method Increment of the progress indicator concurrently with other scopes, which make the work of the overall mechanism thread-safe.
    
    All OCCT algorithms involving progress indication have been updated to new API.
    
    Improvements in Draw_ProgressIndicator:
    
    - Console mode has been added in order to make possible to put the progress into cout instead of draw interpreter.
    - Treatment of Ctrl-Break signal has been added. Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.

git

2018-07-10 23:14

administrator   ~0077439

Branch CR25748_1 has been updated by msv.

SHA-1: 5d09214f94d19fd57f2283fd9d11646b7b7ba9db


Detailed log of new commits:

Author: msv
Date: Tue Jul 10 23:13:53 2018 +0300

    #correct compilation error

git

2018-07-12 15:20

administrator   ~0077529

Branch CR25748_1 has been updated forcibly by msv.

SHA-1: 4fd60394052d7ea81389416d68011bdcc46cc423

git

2018-07-13 08:40

administrator   ~0077561

Branch CR25748_1 has been updated forcibly by msv.

SHA-1: 63d200d4d3c1e03c1ba0062ed899bcc79d53903e

git

2018-07-13 18:19

administrator   ~0077588

Branch CR25748_1 has been updated forcibly by msv.

SHA-1: 05365f941b15c0e2714dd705221d820a28243e81

git

2018-07-16 12:52

administrator   ~0077652

Branch CR25748_2 has been created by msv.

SHA-1: 87033320e01ee9f7a56c73bc59153afc0e7c356d


Detailed log of new commits:

Author: msv
Date: Wed Jun 20 11:54:41 2018 +0300

    0025748: Parallel version of progress indicator
    
    The fix revises the progress indication mechanism. Now, the class Handle(Message_ProgressIndicator) performs the only function of calling back to user application. It just accumulates the progress provided by progress scopes. The counter is protected by mutex for thread-safety.
    
    The new class Message_ProgressScope serves to represent a scope of execution. The new instance of it is created to provide progress advancement of a new coming operation. The scopes are nested to each other to reflect the nested nature of operations. Each instance of progress scope can call the method Increment of the progress indicator concurrently with other scopes, which make the work of the overall mechanism thread-safe.
    
    All OCCT algorithms involving progress indication have been updated to new API.
    
    Improvements in Draw_ProgressIndicator:
    
    - Console mode has been added in order to make possible to put the progress into cout instead of draw interpreter.
    - Treatment of Ctrl-Break signal has been added. Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.

git

2018-07-17 17:33

administrator   ~0077747

Branch CR25748_2 has been updated forcibly by msv.

SHA-1: c201ed8ca8bae7307ecd21d4c9e70541b3412452

msv

2018-07-17 17:42

developer   ~0077749

Please review the branches in occt and products.
Jenkins tests are now executed http://jenkins-test-11.nnov.opencascade.com:8080/view/CR25748_2-CR25748_1-msv/view/COMPARE/

git

2019-05-07 11:19

administrator   ~0084216

Branch CR25748_3 has been created by msv.

SHA-1: 92d57ddcdcd47bfce8ade716a42d2eda07998c42


Detailed log of new commits:

Author: msv
Date: Wed Jun 20 11:54:41 2018 +0300

    0025748: Parallel version of progress indicator
    
    The fix revises the progress indication mechanism. Now, the class Handle(Message_ProgressIndicator) performs the only function of calling back to user application. It just accumulates the progress provided by progress scopes. The counter is protected by mutex for thread-safety.
    
    The new class Message_ProgressScope serves to represent a scope of execution. The new instance of it is created to provide progress advancement of a new coming operation. The scopes are nested to each other to reflect the nested nature of operations. Each instance of progress scope can call the method Increment of the progress indicator concurrently with other scopes, which makes the work of the overall mechanism thread-safe.
    
    All OCCT algorithms involving progress indication have been updated to new API.
    
    Improvements in Draw_ProgressIndicator:
    
    - Console mode has been added in order to make possible to put the progress into cout instead of draw interpreter.
    - Treatment of Ctrl-Break signal has been added. Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.

msv

2019-05-07 17:24

developer   ~0084232

Please review.

msv

2019-05-07 17:25

developer   ~0084233

Tests results http://jenkins-test-12.nnov.opencascade.com/view/CR25748-CR25748-MSV/view/COMPARE/

kgv

2019-05-12 17:26

developer   ~0084293

   // Print textual progress info
-  if ( myTextMode )
+  if (myConsoleMode)
+    cout << text << endl;
+  else if (myTextMode)
     Message::DefaultMessenger()->Send (text, Message_Info);

Do we have any use cases, where printing progress to Draw_Printer instead of std::cout will be of any use apart from synthetic test case bugs/fclasses/bug28478?

+  if (OSD_Thread::Current() != myThreadId)
+    // avoid showing in another thread

What are consequences of this check - no any progress in case if algorithm performs all jobs in non-main thread (or unpredictable progress from main thread when using OSD_Parallel::For())?
I suppose that the main purpose for this check is a crash on using Tcl-interpretor from multiple threads (which is not that a blocking issue in case of std::cout).

+  const Message_ProgressScope& GetRootScope() const
+  {
...
+  //! Returns the name of the scope (may be null)
+  Standard_CString GetName() const
+
+  //! Returns parent scope (null for top-level scope)
+  const Message_ProgressScope* GetParent() const
+
+  //! Returns the maximal value of progress in this scope
+  Standard_Real GetMax() const
+
+  //! Returns the current value of progress in this scope
+  Standard_Real GetValue() const
+
+  //! Get start position of this scope on total progress scale
+  Standard_Real GetStart() const
+
+  //! Get end position of this scope on total progress scale
+  Standard_Real GetEnd() const

Shouldn't this be RootScope()/End()/Parent()/Start()?

+  //! Sets the name of the scope.
+  Standard_EXPORT void SetName(Standard_CString theName);
..
+
+  //! Creates a sub-scope covering current step of the parent scope, 
+  //! and selects parameters of the current scale. The top most scope 
+  //! must be got using the method GetRoopScope() of Message_ProgressIndicator.
+  Standard_EXPORT Message_ProgressScope(const Message_ProgressScope& theParent,
+                                        Standard_CString theName,
+                                        Standard_Real theMin = 0, Standard_Real theMax = 100,
+                                        Standard_Real theStep = 1, Standard_Boolean isInfinite = false)
...
+  Standard_CString   myName;        //!< Name of the operation being done in this scope, or null

This should be well-documented that the given name will NOT be copied, hence application should never pass string from a temporary variable.

+public: //! @name Destrucion, allocation

Destrucion

+  mutable Standard_Real myPosBySS;  //!< Current position reserved by sub-scopes
+  mutable Standard_Integer myNbChild; //!< Number of children - used to control code consistency

I suppose that the main reason for these fields to be mutable is to pass Message_ProgressScope as const reference, which in turn is done to allow defining default argument value "const Message_ProgressScope& theProgress = Message_ProgressScope()". I think its worth to be documented.

kgv

2019-05-12 22:37

developer   ~0084294

Last edited: 2019-05-12 22:38

Example of usage in parallel process:
+//!
+//! @code{.cpp}
+//! struct Task
+//! {
+//!   Data* Data;
+//!   Message_ProgressScope Progr;
+//!
+//!   Task(const Data& theData, Message_ProgressScope& theProgr)
+//!     : Data(theData), Progr(theProgr, NULL, 0, 1, 1) {}
+//!
+//!   void operator()(Task& theTask) const
+//!   {
+//!     if (theTask.Progr.More())
+//!     {
+//!       // ... process data
+//!       theTask.Progr.Next();
+//!     }
+//!   }
+//! };
+//! {
+//!   std::vector<Data*> aData; // somehow got data
+//!   std::vector<Task> aTasks;
+//!
+//!   Message_ProgressScope aPS(aRootPS, "Data processing", 0, aData.size(), 1);
+//!   for (Standard_Integer i = 0; i < aData.size(); ++i)
+//!     aTasks.push_back(Task(aData[i], aPS));
+//!   
+//!   OSD_Parallel::ForEach(aTasks.begin(), aTasks.end(), Task());
+//! }
+//! @endcode
...
+void Message_ProgressIndicator::Increment(const Standard_Real theStep,
+                                          const Message_ProgressScope& theScope)
 {
+  Standard_Mutex::Sentry aSentry(myMutex);
+  myPosition = Min(myPosition + theStep, 1.);
+  Show(Standard_False, theScope);

Since proposed API requires explicit barrier at spawning and passing to multiple threads, I would expect this mutex NOT to be used by default - it is unneeded by majority of algorithms / waste of time. Instead, the parallelization can be assigned to Progress Indicator first time algorithm is about to spawn working threads and forking progress to them.

The new parallelization design relies on the idea that enumerated entities are of significant size to spawn individual Progress Sentry for each such task - the main thread-safety idea is possibility to sub-divide Progress Sentry further within nested algorithms. But this mechanism cannot be used for OSD_Parallel::For() on big amount of small elements due to extra overhead of individual Progress Sentries and serialization via global mutex in Progress Indicator itself. For such small tasks with unpredictable balancing (within perfect balancing algorithm might spawn Progress Sentry per working thread by equally splitting full range), thread-safe updating of single shared Progress Sentry will be still responsibility of local to algorithm code - in exactly the same way, as existing Progress Indicator API.

git

2019-05-16 17:47

administrator   ~0084407

Branch CR25748_3 has been updated forcibly by msv.

SHA-1: 864a80af9414e0b3b351b69e30745b83899f2fa2

git

2019-05-17 09:31

administrator   ~0084411

Branch CR25748_3 has been updated forcibly by msv.

SHA-1: 2f2d36be0b37a6ea656dadfd077756dd77f4fa17

msv

2019-05-17 22:16

developer   ~0084436

I have updated the code according to KGV's remarks.
New test results are here: http://jenkins-test-12.nnov.opencascade.com/view/CR25748-CR25748-MSV2/view/COMPARE/

msv

2019-05-20 09:25

developer   ~0084469

Dear Andrey, please review the current version.

git

2019-08-29 11:52

administrator   ~0086518

Branch CR25748_4 has been created by abv.

SHA-1: 76bf385d511d8d94238e75769b13d0c5fcadc771


Detailed log of new commits:

Author: abv
Date: Thu Aug 29 08:11:25 2019 +0300

    Restored description of the changes in Upgrade Guide

Author: abv
Date: Wed Aug 28 19:57:56 2019 +0300

    Further revision:
    
    - Virtual methods of Message_ProgressIndicator (Show(), UserBreak(), Reset()) are made protected since they are for call by the class itself and its friend ProgressScope only
    - Method Message_ProgressIndicator::Show() is made returning void since its return value is not specified and not used anywhere
    - For scopes that are advanced by sub-scoping rather than direct calls to Next(), method Message_ProgressScope::Value() returns current value estimated from value of global progress
    - Restored support of infinite scopes for sub-scoping
    - Copy constructor and assignment operator are prohibited for Message_ProgressScope
    - Documentation comments revised

Author: abv
Date: Tue Aug 27 18:56:22 2019 +0300

    # Amendments to the original version:
    
    1. Method RootScope() is replaced by method Start() that now also calls Reset(), to improve semantics (make it clear that this method should be called only once to start progress tracking).
    2. Arguments of method Show() are swapped to allow progress scope to be passed with second argument being default; additional method Show() w/o argument is added for compatibility (if someone called it that way).
    3. Method IsProgress() renamed to IsActive() to improve semantics.
    4. Counter field Message_ProgressScope::myNbChild and method removeScope() are removed -- it is not thread safe if children can be destroyed in another thread. Same-purpose check is made comparing myProgess field of this and parent scopes.
    5. Restored DRAW command OCC25748 for measuring performance of progress indicator on empty cycles (borrowed from initial commit circa 2018).

Author: abv
Date: Tue Aug 27 14:09:46 2019 +0300

    Rename of Message_ProgressSentry to Message_ProgressScope is recorded in upgrade.dat

Author: abv
Date: Tue Aug 27 15:34:29 2019 +0300

    # Unification of names: theProgr -> theProgress

Author: abv
Date: Tue Aug 27 14:10:28 2019 +0300

    # Unification of names: thePI -> theProgress

Author: abv
Date: Tue Aug 27 14:08:50 2019 +0300

    # Upgrade after rebasing on current master

Author: msv
Date: Thu May 16 17:39:47 2019 +0300

    #Considering remarks

Author: msv
Date: Wed Jun 20 11:54:41 2018 +0300

    0025748: Parallel version of progress indicator
    
    The fix revises the progress indication mechanism. Now, the class Handle(Message_ProgressIndicator) performs the only function of calling back to user application. It just accumulates the progress provided by progress scopes. The counter is protected by mutex for thread-safety.
    
    The new class Message_ProgressScope serves to represent a scope of execution. The new instance of it is created to provide progress advancement of a new coming operation. The scopes are nested to each other to reflect the nested nature of operations. Each instance of progress scope can call the method Increment of the progress indicator concurrently with other scopes, which makes the work of the overall mechanism thread-safe.
    
    All OCCT algorithms involving progress indication have been updated to new API.
    
    Improvements in Draw_ProgressIndicator:
    
    - Console mode has been added in order to make possible to put the progress into cout instead of draw interpreter.
    - Treatment of Ctrl-Break signal has been added. Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.
    
    # Conflicts:
    # src/Draw/Draw_ProgressIndicator.cxx
    # src/GeomPlate/GeomPlate_BuildPlateSurface.cxx
    # src/TopTools/TopTools_ShapeSet.cxx
    # src/TransferBRep/TransferBRep_Reader.cxx
    # src/ViewerTest/ViewerTest_ViewerCommands.cxx
    # src/XSDRAWSTEP/XSDRAWSTEP.cxx

git

2019-08-30 02:46

administrator   ~0086544

Branch CR25748_4 has been updated by abv.

SHA-1: c109b1d4535b2d6b18da026a6f73df07d3b7377e


Detailed log of new commits:

Author: abv
Date: Thu Aug 29 19:43:04 2019 +0300

    Compatibility with VS 2010

git

2019-08-30 09:01

administrator   ~0086546

Branch CR25748_4 has been updated by abv.

SHA-1: cf2bda848878b507d1220c2e8b71f17d3fcf88d6


Detailed log of new commits:

Author: abv
Date: Fri Aug 30 08:58:32 2019 +0300

    # fix compiler warnings (order of initialization of class fields in constructor)

git

2019-08-30 12:49

administrator   ~0086549

Branch CR25748_4 has been updated by abv.

SHA-1: 9dd702ae4346ca5bcd9d61281d6587248d68a6eb


Detailed log of new commits:

Author: abv
Date: Fri Aug 30 12:45:50 2019 +0300

    Attempt to avoid rounding problems on Linux

git

2019-08-30 23:19

administrator   ~0086562

Branch CR25748_4 has been updated by abv.

SHA-1: f2dba2f2068ff1df1a4df9d5ad8410e01ce09d99


Detailed log of new commits:

Author: abv
Date: Fri Aug 30 23:16:22 2019 +0300

    Correction of build issues; public method Show() is moved to Message_ProgressScope

git

2019-08-31 12:35

administrator   ~0086569

Branch CR25748_4 has been updated forcibly by abv.

SHA-1: e29a148a09fd9b31f428d3e196e2e95c61fa807c

abv

2019-08-31 17:22

manager   ~0086574

Last edited: 2019-08-31 18:04

Mikhail, I have reviewed ans amended the patch - please see branch CR25748_4 (and CR25748_3) on master. It is not squashed yet so you can inspect my changes.

This version passed Jenkins tests, see job CR25748_4.

There is a slow down reported on synthetic test case perf fclasses progress:
Linux: 6.24 / 2.64 [+136.36%]
Windows: 3.8125 / 2.921875 [+30.48%]
This could be expected (due to progress counter protected by mutex) and can be considered OK.

Attached Excel file contains measurements of effect of progress indicator on synthetic test case consisting of many (10 M) simple tasks, executed in both sequential and parallel modes (test command OCC25748 restored from initial version of the patch). Conclusion is that changes did not lead to noticeable decrease of performance (they are within measurement error) even on such small tasks.

abv

2019-08-31 18:01

manager  

bug25478_perf.xlsx (11,510 bytes)

git

2019-09-01 11:22

administrator   ~0086590

Branch CR25748_4 has been updated by abv.

SHA-1: 3b996e4b4e91f9cfef0066bbc9b381a4ff569a7a


Detailed log of new commits:

Author: abv
Date: Sun Sep 1 11:14:59 2019 +0300

    Progress indicator is added in StlAPI_Writer

Author: abv
Date: Sun Sep 1 11:14:47 2019 +0300

    Redundant arguments Start and Step (almost always used to be 0 and 1, respectively) are removed from Message_ProgressScope constructor

Author: abv
Date: Sat Aug 31 18:02:45 2019 +0300

    Test command OCC25748 is improved to report total time

git

2019-09-01 13:17

administrator   ~0086592

Branch CR25748_4 has been updated forcibly by abv.

SHA-1: a87070338f5eacdef0bd31f5891439b600e46a82

git

2019-09-01 23:35

administrator   ~0086600

Branch CR25748_4 has been updated forcibly by abv.

SHA-1: fabc05333584096f78681e4134e0cf5cad278fb7

abv

2019-09-02 07:50

manager   ~0086605

Hello Mikhail,

The patch has been slighly updated (see above); Jenkins tests are OK (CR25748-abv).

Yet I still have a doubt regarding whether the current implementation is sufficietly good to be considered as final (by API). I feel and observe in practice that its logic is not clear and it is difficult to use it properly.

The main problem in my mind is that ProgressScope can be incremented by two different methods: calling Next() and creation of sub-scopes, and it is not obvious at all that when you create sub-scope this has the same effect as Next(). Even more, when you pass scope to a function, you cannot know if it will use it (creating sub-scope) or not, thus you must call Next() explicitly in addition (to be on the safe side). Within implementation of the function you can easily create more than one sub-scope, which will result in multiple steps of the passed scope.

The possibility to improve could be:
- Make Next() the only way to advance project scope
- Next() should not advance immediately but return temporary object (say, ProgressRange) that takes responsibility of making the specified step at its destruction
- ProgressScope shall require ProgressRange as argument to its constructor. When constructed from range, it shall disarm the range object (so it will not advance the progress) and thus take responsibility of advancement.

The API will then change as follows:
- Method Start() of ProgressIndicator will return ProgressRange
- "const ProgressRange&" will be used to pass progress object to functions
- Method Next() shall be used (possibly with an argument denoting step) whenever sub-scope is created or function with progress support is called
- Method SetStep() and relevant field can be removed from ProgressScope class

Let's discuss this

msv

2019-09-02 18:46

developer   ~0086668

Upon discussion we decided to move target to 7.5.0, as the current version of the patch needs to be improved further.

git

2019-11-25 12:38

administrator   ~0089199

Branch CR25748_5 has been created by abv.

SHA-1: 5d27948db2504f93604545ed4382b6be912c53ac


Detailed log of new commits:

Author: msv
Date: Wed Jun 20 11:54:41 2018 +0300

    0025748: Parallel version of progress indicator
    
    Progress indication mechanism is refactored to support incrementing progress within multithreaded algorithms.
    
    The class Message_ProgressIndicator is only an interface to the user application.
    It accumulates the progress provided by progress scopes.
    The counter is protected by mutex for thread-safety.
    
    The new class Message_ProgressScope replacing Message_ProgressSentry should be used to advance the progress.
    The scopes are nested to each other to reflect the nested nature of operations.
    
    All OCCT algorithms involving progress indication have been updated to new API.
    
    Improvements in Draw_ProgressIndicator:
    - Separate console mode has been added in order to make possible to put the progress into cout instead or in addition to the draw interpreter, instead of trigger option "-tclOutput".
    - Treatment of Ctrl-Break signal has been added. Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.

abv

2019-11-25 16:49

manager   ~0089208

The patch is rebased on current master, branch CR25748_5 and tested, see Jenkins job CR25748-abv

git

2019-12-20 08:17

administrator   ~0089665

Branch CR25748_5 has been updated by abv.

SHA-1: af4a61ea7c7e4d030942e91ecccd5189c8ce0bb4


Detailed log of new commits:

Author: abv
Date: Fri Dec 20 08:14:26 2019 +0300

    Correction of test scripts

git

2019-12-25 11:48

administrator   ~0089750

Branch CR25748_6 has been created by akaftasev.

SHA-1: 9739275520cfddb2c4222345303366b901f7671f


Detailed log of new commits:

Author: KafAndrey
Date: Wed Dec 25 11:44:00 2019 +0300

    create new branch

Author: KafAndrey
Date: Fri Dec 20 16:14:26 2019 +0300

    Add class Message_ProgressRange to friend to Message_ProgressIndicator
    
    Change usage of Increment() on Message_ProgressScope with Message_ProgressRange class

Author: KafAndrey
Date: Fri Dec 20 15:44:41 2019 +0300

    Add class Message_ProgressRange which bring function of incrementation of Message_ProgressIndicator when calls Close()
    
     This class contain step of incrementation and pointer to parent Message_ProgressScope class, which create range class
    In first time this class creates in Message_ProgressScope with null step and when calls method Next() update scale by zero step and recreate Range class with not-null step
    In next calls of Next() - update scale with last step and recreate again

Author: KafAndrey
Date: Wed Dec 11 14:30:13 2019 +0300

    Merge remote-tracking branch 'origin/CR25748_5'
    
    # Conflicts:
    # src/RWStl/RWStl.cxx
    # src/RWStl/RWStl_Reader.hxx

Author: ma haidong
Date: Tue Dec 10 01:00:59 2019 +0800

    0031231: Samples - the command "donl" in ModelingDemo.tcl should be "donly"
    
    Fixed misprint in Tcl sample script.

git

2020-01-15 13:17

administrator   ~0089897

Branch CR25748_7 has been created by msv.

SHA-1: 5c1ae3aa94259c8c6dd67dd696d4bbf6ef797b9f


Detailed log of new commits:

Author: KafAndrey
Date: Fri Dec 20 16:14:26 2019 +0300

    Add class Message_ProgressRange to friend to Message_ProgressIndicator
    
    Change usage of Increment() on Message_ProgressScope with Message_ProgressRange class

Author: KafAndrey
Date: Wed Dec 25 11:44:00 2019 +0300

    create new branch

Author: KafAndrey
Date: Fri Dec 20 15:44:41 2019 +0300

    Add class Message_ProgressRange which bring function of incrementation of Message_ProgressIndicator when calls Close()
    
     This class contain step of incrementation and pointer to parent Message_ProgressScope class, which create range class
    In first time this class creates in Message_ProgressScope with null step and when calls method Next() update scale by zero step and recreate Range class with not-null step
    In next calls of Next() - update scale with last step and recreate again
    
    # Conflicts:
    # src/RWStl/RWStl.cxx
    # src/RWStl/RWStl_Reader.hxx

git

2020-01-15 13:33

administrator   ~0089898

Branch CR25748_6 has been updated by akaftasev.

SHA-1: 2127663aaf38c52b5dacb54999187477770eef4c


Detailed log of new commits:

Author: KafAndrey
Date: Wed Jan 15 13:30:30 2020 +0300

    edit code with using Message_ProgressRange class

Author: KafAndrey
Date: Fri Dec 27 14:21:48 2019 +0300

    now method Start() of Message_ProgressIndicator return Message_ProgressRange
    
    method Next() of Message_ProgressScope too
    add move constructor and operator = to Message_ProgressRange
    delete Message_ProgressRange from private fiend of Message_ProgressScope

Author: KafAndrey
Date: Wed Dec 25 12:54:52 2019 +0300

    add files Message_ProgressRange.hxx and Message_ProgressRange.cxx to FILES to configurate by cmake

git

2020-01-15 14:58

administrator   ~0089899

Branch CR25748_7 has been updated by akaftasev.

SHA-1: 7548d03ec82ed7c0d1ffe32a17a50d5aa68ecd0d


Detailed log of new commits:

Author: KafAndrey
Date: Wed Jan 15 14:54:33 2020 +0300

    add Message_ProgressRange to FILES
    
    # Conflicts:
    # src/Message/Message_ProgressRange.cxx
    # src/Message/Message_ProgressRange.hxx
    
    # Conflicts:
    # src/Message/Message_ProgressRange.hxx

git

2020-01-24 13:17

administrator   ~0090042

Branch CR25748_7 has been updated forcibly by akaftasev.

SHA-1: 716db615488943d5e57ec86d6a611821a3c15403

git

2020-01-24 16:27

administrator   ~0090050

Branch CR25748_7 has been updated by akaftasev.

SHA-1: 68213b8616e8eb5468e69b52fee25f9446c49505


Detailed log of new commits:

Author: KafAndrey
Date: Fri Jan 24 16:23:12 2020 +0300

    add description to Message_ProgressRange class

git

2020-01-29 15:15

administrator   ~0090141

Branch CR25748_7 has been updated by akaftasev.

SHA-1: 6c44212fa139e8380361365140316d301dad9721


Detailed log of new commits:

Author: KafAndrey
Date: Wed Jan 29 15:10:50 2020 +0300

    edit code
    
    all tests pass

git

2020-07-21 21:23

administrator   ~0093242

Branch CR25748_8 has been created by msv.

SHA-1: 9c1fd143b69aab96ffe4df80a046921b10e89211


Detailed log of new commits:

Author: msv
Date: Tue Jul 21 20:37:05 2020 +0300

    #Corrected version

Author: akaftasev
Date: Tue Jan 21 16:44:44 2020 +0300

    New code with introduction of Message_ProgressRange class

Author: abv
Date: Fri Dec 20 08:14:26 2019 +0300

    Correction of test scripts

Author: msv
Date: Wed Jun 20 11:54:41 2018 +0300

    0025748: Parallel version of progress indicator
    
    Progress indication mechanism is refactored to support incrementing progress within multithreaded algorithms.
    
    The class Message_ProgressIndicator is only an interface to the user application.
    It accumulates the progress provided by progress scopes.
    The counter is protected by mutex for thread-safety.
    
    The new class Message_ProgressScope replacing Message_ProgressSentry should be used to advance the progress.
    The scopes are nested to each other to reflect the nested nature of operations.
    
    All OCCT algorithms involving progress indication have been updated to new API.
    
    Improvements in Draw_ProgressIndicator:
    - Separate console mode has been added in order to make possible to put the progress into cout instead or in addition to the draw interpreter, instead of trigger option "-tclOutput".
    - Treatment of Ctrl-Break signal has been added. Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.

git

2020-07-22 11:41

administrator   ~0093246

Branch CR25748_8 has been updated by msv.

SHA-1: 2fbec0b4884cb6f1664d4d57804276065ef068c3


Detailed log of new commits:

Author: msv
Date: Wed Jul 22 11:44:05 2020 +0300

    #consider remarks
    #continue updating dependent files

git

2020-07-22 21:30

administrator   ~0093250

Branch CR25748_8 has been updated by msv.

SHA-1: 4f1e090a33825f7c39b5bd6387b4865083cbd47f


Detailed log of new commits:

Author: msv
Date: Wed Jul 22 21:29:33 2020 +0300

    #complete updating dependent files
    #make progress scope and range fully inline

git

2020-07-23 16:43

administrator   ~0093264

Branch CR25748_8 has been updated by msv.

SHA-1: 69360811cc0755860fc5ec0efa42f251b4ffd543


Detailed log of new commits:

Author: msv
Date: Thu Jul 23 10:22:57 2020 +0300

    #return back UserBreak() and Show()

git

2020-07-23 18:11

administrator   ~0093268

Branch CR25748_8 has been updated by msv.

SHA-1: e8b1b1930bb7b572c48acdd570dfa19eb39b418b


Detailed log of new commits:

Author: msv
Date: Thu Jul 23 18:13:42 2020 +0300

    #compilation warning

git

2020-07-23 23:04

administrator   ~0093271

Branch CR25748_8 has been updated by msv.

SHA-1: 955c7f3b426b3d5f2e094319a2cd2f41e35e85b2


Detailed log of new commits:

Author: msv
Date: Thu Jul 23 23:06:44 2020 +0300

    #fix runtime error, for that duplicate methods UserBreak, More and IsActive in ProgressRange

git

2020-07-24 15:27

administrator   ~0093294

Branch CR25748_8 has been updated by msv.

SHA-1: d8ebb4259a6658a603da414a80312652ca9bd711


Detailed log of new commits:

Author: msv
Date: Fri Jul 24 15:30:06 2020 +0300

    #Correct error in wrapping csharp
    #correct test cases

git

2020-07-24 16:41

administrator   ~0093296

Branch CR25748_8 has been updated by msv.

SHA-1: b4a3d60b495d0afcb6689213c0553c481dc983ed


Detailed log of new commits:

Author: msv
Date: Fri Jul 24 16:32:24 2020 +0300

    #return back some changes in STL to make tests worked

git

2020-07-24 16:54

administrator   ~0093297

Branch CR25748_8 has been updated by msv.

SHA-1: 13cd63ea50b33b5f59280182af4f0cac48a88c05


Detailed log of new commits:

Author: msv
Date: Fri Jul 24 16:56:49 2020 +0300

    Add test case for parallel work of the progress

git

2020-07-24 18:44

administrator   ~0093301

Branch CR25748_8 has been updated by msv.

SHA-1: b5106107e2dd5bda493761db2195fc94aafffce8


Detailed log of new commits:

Author: msv
Date: Fri Jul 24 18:46:02 2020 +0300

    #correct help of XProgress

msv

2020-07-24 19:26

developer   ~0093303

This patch brings a slight performance decrease of the progress indicator:

On Linux:
CPU perf fclasses progress: 5.93 / 2.68 [+121.27%]

On Windows:
CPU perf fclasses progress: 3.75 / 2.8125 [+33.33%]

But this is just for empty cycles.

With a load the decrease is not visible. I have created a new test that makes multiplication of matrices in a loop with progress indication (draw command OCC25748).

Here are the results of work in sequential mode.

Small load: 10 mln matrices of 2x2
time: 0.96 / 0.89

Average load: 1 mln matrices of 10x10
time: 1.90 / 1.91

git

2020-07-24 19:39

administrator   ~0093305

Branch CR25748_8 has been updated forcibly by msv.

SHA-1: afdb592823d52a9b6ffc85e37e4da97bea7a722f

msv

2020-07-24 19:41

developer   ~0093306

Branches were squashed and rebased.

msv

2020-07-27 11:53

developer   ~0093368

Andrey, please rebase on master.

git

2020-07-29 13:51

administrator   ~0093387

Branch CR25748_8 has been updated forcibly by akaftasev.

SHA-1: 85704e0ec7b56a099637089b179c804a15036f1b

git

2020-08-07 17:11

administrator   ~0093449

Branch CR25748_8 has been updated forcibly by akaftasev.

SHA-1: 7afc81acce0ba652cf39e2dc6c4e22bade8ef675

git

2020-08-10 13:01

administrator   ~0093463

Branch CR25748_8 has been updated forcibly by akaftasev.

SHA-1: ef8dde9e2852b7f77aee1bd29e1db1ca7774d9e7

git

2020-08-26 14:06

administrator   ~0093639

Branch CR25748_8 has been updated forcibly by akaftasev.

SHA-1: 380c5997da6d6c035d01c755a2879e151766664e

akaftasev

2020-08-26 18:13

developer   ~0093646

For info of rebasing:
http://jenkins-test-12.nnov.opencascade.com/view/CR25748-master-akaftasev/view/COMPARE/

msv

2020-08-27 10:14

developer   ~0093658

src/BinLDrivers/BinLDrivers_DocumentStorageDriver.cxx
- 292: why here aPS.Next() is called twice in iteration?

src/BinTools/BinTools_ShapeSet.cxx
- 318, 575: these lines are extra.
- 364: change aPS to aPSinner

src/XSControl/XSControl_TransferWriter.cxx
- 169: change theShape to aShape

git

2020-08-27 13:53

administrator   ~0093662

Branch CR25748_9 has been created by akaftasev.

SHA-1: 9d4f1b5127d698e0bf79deb35a2790b5d28afd91


Detailed log of new commits:

Author: emv
Date: Fri Jul 10 14:19:31 2020 +0300

    0025748: Parallel version of progress indicator
    
    Progress indication mechanism is refactored to support incrementing progress within multithreaded algorithms.
    
    The class Message_ProgressIndicator is only an interface to the user application.
    It accumulates the progress provided by progress scopes.
    The counter is protected by mutex for thread-safety.
    
    The new class Message_ProgressScope replacing Message_ProgressSentry should be used to advance the progress. The scopes are nested to each other to reflect the nested nature of operations. The new class Message_ProgressRange should be used to pass the progress to sub-scopes.
    
    All OCCT algorithms involving progress indication have been updated to new API.
    
    Improvements in Draw_ProgressIndicator:
    - Separate console mode has been added in order to make possible to put the progress into cout instead or in addition to the draw interpreter, instead of trigger option "-tclOutput".
    - Treatment of Ctrl-Break signal has been added. Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.
    
    Added new test case 'perf fclasses progr_par' for testing of parallel work of the progress.

git

2020-09-01 23:06

administrator   ~0093838

Branch CR25748_9 has been updated forcibly by akaftasev.

SHA-1: c423785069bbaf1b7e625d155cc7ccddf4c7feee

git

2020-09-02 19:55

administrator   ~0093927

Branch CR25748_9 has been updated forcibly by msv.

SHA-1: c2b7745a95314fa2eb4c5bc8e96eff49635b5c31

git

2020-09-02 20:53

administrator   ~0093939

Branch CR25748_9 has been updated forcibly by msv.

SHA-1: 9b078558a86f5cfa3bec852ca87127bc06a4dea0

msv

2020-09-02 22:10

developer   ~0093941

For integration:
occt - CR25748_9
products - CR25748_7

kgv

2020-09-02 22:32

developer   ~0093943

+Classes Message_ProgressSentry and Message_ProgressScale have been removed; new classes Message_ProgressScope and Messge_ProgressRange replce them and should be used as main API classes to organize progress indication in the algorithms.

replce -> replace.

Please also consider moving progress indicator changes in front of section " Message_Messenger interface change", so that changes in Message package will be grouped.

git

2020-09-02 22:51

administrator   ~0093944

Branch CR25748_9 has been updated forcibly by msv.

SHA-1: 8c42c25e1593746d7277b3f52bdb8edbb73fa62e

msv

2020-09-02 22:52

developer   ~0093945

Remark has been considered.

kgv

2020-09-02 23:21

developer   ~0093947

-bool RWGltf_GltfJsonParser::Parse (const Handle(Message_ProgressIndicator)& theProgress)
+bool RWGltf_GltfJsonParser::Parse (const Message_ProgressRange& theProgress)
 {
-  Message_ProgressSentry aPSentry (theProgress, "Reading Gltf", 0, 2, 1);
+  Message_ProgressScope aPS (theProgress, "Reading Gltf", 2);
 #ifdef HAVE_RAPIDJSON
   {
     if (!gltfParseRoots())
     {
       return false;
     }
+    if (!aPS.More())
+    {
+      return false;
+    }
+    aPS.Next();

There is no point updating the progress after gltfParseRoots() step.
I guess two steps put into this progress sentry is an artifact - it should have only one step.

kgv

2020-09-02 23:29

developer   ~0093951

Last edited: 2020-09-02 23:30

-  {Progress: 0% Triangles: 0 / 20000}

Is it specific to text progress indicator,
or GUI version too will not show that algorithm has started work on "Triangles" until at least one triangle is incremented?

msv

2020-09-03 09:46

developer   ~0093957

There are two jobs in Parse - gltfParseRoots and gltfParseScene. Do you think that gltfParseRoots is not worth to be considered?

msv

2020-09-03 09:47

developer   ~0093958

Which percentage for each of these two calls do you suggest?

msv

2020-09-03 10:00

developer   ~0093959

>Is it specific to text progress indicator,
>or GUI version too will not show that algorithm has started work on "Triangles" until at least one triangle is incremented?

In order to decrease the overhead of progress scope creation I removed the call to indicator's Show() method with force flag in the ProgressScope constructor. It means that now the first update of the indicator (regardless text or gui) after creation of a new scope will be done after it cumulates enough value to show. If a developer wants indicator to start show something on its creation he can call the method Show directly before entering the algorithm.

kgv

2020-09-03 13:34

developer   ~0093976

> Do you think that gltfParseRoots is not worth to be considered?
This is correct - gltfParseRoots() is negligible (just a preliminary step) compared to gltfParseScene(), so there is no use having them as dedicated progress steps (with any proportions).

git

2020-09-03 14:41

administrator   ~0093985

Branch CR25748_9 has been updated by msv.

SHA-1: f32d72db8cbf161f36f43789c7127a47f6d17424


Detailed log of new commits:

Author: msv
Date: Thu Sep 3 14:44:23 2020 +0300

    #consider remark

Author: msv
Date: Thu Sep 3 11:08:00 2020 +0300

    #correct description

msv

2020-09-03 14:42

developer   ~0093986

I have corrected gltf parser.

kgv

2020-09-04 14:03

developer   ~0094011

Why method Message_ProgressSentry::Relieve() has been removed?

git

2020-09-04 14:42

administrator   ~0094012

Branch CR25748_10 has been created by kgv.

SHA-1: 6880fe3cfb7a95bb976a9b015c701aeac44741ab


Detailed log of new commits:

Author: kgv
Date: Fri Sep 4 14:15:28 2020 +0300

    # define dummy Message_ProgressSentry for updating old code in more directed way
    # restore method Message_ProgressScope::Relieve()

git

2020-09-04 14:52

administrator   ~0094013

Branch CR25748_10 has been updated forcibly by kgv.

SHA-1: 3700d404e0022f82144e3c34e5ffda0932cccd07

kgv

2020-09-04 15:01

developer   ~0094014

Message_ProgressScope now holds myName as a raw pointer to string making it not direct replacement to Message_ProgressSentry, which took care about copying the string - this should be at least mentioned in upgrade guide, or existing code may start crashing after porting.

git

2020-09-04 16:28

administrator   ~0094016

Branch CR25748_10 has been updated by kgv.

SHA-1: 59f03efcf08462fec860c9acab999df60acf4c05


Detailed log of new commits:

Author: kgv
Date: Fri Sep 4 16:31:33 2020 +0300

    # remove misleading method Message_ProgressRange::UserBreak(),
    # which cannot be used as expected

kgv

2020-09-04 16:32

developer   ~0094017

Last edited: 2020-09-04 16:32

There is a logical issue with method Message_ProgressRange::UserBreak() - it is unreliable for testing user abortion state right after passing Message_ProgressRange to Message_ProgressScope, as it NULLyfies parent scope.

Andrey suggested that Message_ProgressRange should not have this method at all (supposedly Message_ProgressScope should be always used for that purpose), but building OCCT fails - there are numerous broken places that should be corrected. like the following case:
void GeomPlate_BuildPlateSurface::ComputeSurfInit(const Message_ProgressRange& theProgress)
{
...
      myPlate.SolveTI(2, ComputeAnisotropie(), theProgress);
      if (theProgress.UserBreak()) /// !< here UserBreak() will always return FALSE ignoring abortion state!


git

2020-09-04 16:56

administrator   ~0094019

Branch CR25748_10 has been updated by kgv.

SHA-1: 09ac8f9d26755a93ebd227cee0214d427bb872e1


Detailed log of new commits:

Author: kgv
Date: Fri Sep 4 16:59:41 2020 +0300

    # Draw_ProgressIndicator::Show() - protect from calls from non-GUI thread

git

2020-09-04 17:40

administrator   ~0094021

Branch CR25748_10 has been updated by kgv.

SHA-1: ad2741e531a961441474d7d92ac1330b1d098134


Detailed log of new commits:

Author: kgv
Date: Fri Sep 4 17:43:32 2020 +0300

    # extend upgrade Guide with a code sample

git

2020-09-04 19:47

administrator   ~0094023

Branch CR25748_10 has been updated forcibly by msv.

SHA-1: e7e4e0aaa882a7f91965180bfc68f7b6e5129f81

msv

2020-09-04 19:49

developer   ~0094024

Please review the latest changes in CR25748_10 in occt.

git

2020-09-04 20:33

administrator   ~0094025

Branch CR25748_10 has been updated by msv.

SHA-1: 06257e53cad3fddfa6fd9cdce47b116e2b30a823


Detailed log of new commits:

Author: msv
Date: Fri Sep 4 20:35:38 2020 +0300

    #raise exception in the case of repeated using of ProgressRange

msv

2020-09-04 21:01

developer   ~0094032

Test results http://jenkins-test-12.nnov.opencascade.com/view/CR25748-master-akaftasev/view/COMPARE/

abv

2020-09-05 07:58

manager   ~0094037

Last edited: 2020-09-05 08:01

kgv:
> Message_ProgressScope now holds myName as a raw pointer to string making it not direct replacement to Message_ProgressSentry, which took care about copying the string - this should be at least mentioned in upgrade guide, or existing code may start crashing after porting.

If we need to support dynamically allocated strings as arguments, we can provide additional methods accepting std::string or (and?) TCollection_AsciiString or (and?) whatever else string types, whose will store a dynamically allocated copy of the string, while basic method accepting const char* will remain keeping just pointer.

msv:
> raise exception in the case of repeated using of ProgressRange

Please avoid raising exceptions on such occasions: it is a programming error, not runtime, thus should be visible to developer only, not kill the program in the hands of the end user. Use Standard_ASSERT instead.

kgv:
> There is a logical issue with method Message_ProgressRange::UserBreak() - it is unreliable for testing user abortion state right after passing Message_ProgressRange to Message_ProgressScope, as it NULLyfies parent scope.

Nullification of the parent scope was used in order to indicate that the range is disarmed. If now we have a separate field for that (myWasUsed), then we can avoid nullification of the pointer, and thus UserBreak() could be kept.

kgv

2020-09-05 08:58

developer   ~0094038

Last edited: 2020-09-05 08:59

abv:
> If we need to support dynamically allocated strings as arguments,
> we can provide additional methods accepting std::string
> or (and?) TCollection_AsciiString or (and?)
While having method taking `TCollection_AsciiString` sounds nice, having another method taking `const char*` and having completely different meaning would only complicate API further.

What we could try is instead handle specifically `const char[]` input via templates to avoid extra allocations and copies in this particular and common scenario.
Like it is tricked by RapidJSON library, for example:
template<size_t N> GenericStringRef(const char (&theString)[N])


kgv

2020-09-05 09:01

developer   ~0094039

abv:
> Please avoid raising exceptions on such occasions:
> it is a programming error, not runtime,
> thus should be visible to developer only,
> not kill the program in the hands of the end user.
> Use Standard_ASSERT instead.
Mikhail, if there is a lot of OCCT test failing for this reason (I hope, that patch does not introduce new places),
then I propose adding protection mechanism and debugging OCCT / OCC Products in scope of a dedicated issue.

kgv

2020-09-05 09:03

developer   ~0094040

> abv:
> Nullification of the parent scope was used in order to indicate that the range is disarmed.
> If now we have a separate field for that (myWasUsed),
> then we can avoid nullification of the pointer,
> and thus UserBreak() could be kept.
This would be perfect - it will allow propagating old code using UserBreak() of Message_ProgressIndicator almost transparently and will avoid creating confusing empty Scopes as a workaround.

msv

2020-09-05 14:17

developer   ~0094133

abv:
>Please avoid raising exceptions on such occasions: it is a programming error, not
>runtime, thus should be visible to developer only, not kill the program in the hands of
>the end user. Use Standard_ASSERT instead.

kgv:
>Mikhail, if there is a lot of OCCT test failing for this reason (I hope, that
>patch does not introduce new places),
>then I propose adding protection mechanism and debugging OCCT / OCC Products in
>scope of a dedicated issue.

Indeed, there are a lot of exceptions due to this error. Moreover, there are a lot of regressions due to changes of shapes. It seems sometime exception is caught inside the reader, and therefore some subshapes are skipped.
So, inserting assert instead of exception is also not good, as all developers will suffer from such patch.
I like KGV's idea to leave the protection mechanism (deactivated) and fix all errors in dedicated issue.

abv:
>Nullification of the parent scope was used in order to indicate that the range is
>disarmed. If now we have a separate field for that (myWasUsed), then we can avoid
>nullification of the pointer, and thus UserBreak() could be kept.

Good idea.

kgv:
>What we could try is instead handle specifically `const char[]` input via templates
>to avoid extra allocations and copies in this particular and common scenario.
>Like it is tricked by RapidJSON library, for example:
>template<size_t N> GenericStringRef(const char (&theString)[N])

It will not help. RJS's Ref object is valid only while the original object is alive. So, it does not differ from the simple const char*.

git

2020-09-05 15:01

administrator   ~0094134

Branch CR25748_10 has been updated forcibly by msv.

SHA-1: a27ba23bcb46e511919db692e340cfd4e2bd45e7

git

2020-09-05 15:06

administrator   ~0094141

Branch CR25748_10 has been updated forcibly by msv.

SHA-1: ce30a1c55b804aa7f82bb1e1cb2b024c7d16da2e

msv

2020-09-05 15:32

developer   ~0094144

Test results http://jenkins-test-12.nnov.opencascade.com/view/CR25748-CR25748-MSV/view/COMPARE/

msv

2020-09-05 15:33

developer   ~0094145

Branches:
occt - CR25748_10
products - CR25748_10

abv

2020-09-06 07:02

manager   ~0094156

msv:
> It will not help. RJS's Ref object is valid only while the original object is alive. So, it does not differ from the simple const char*.

The point is, if I understand correctly, to have a method accepting char* that will make a copy of the string (to be safe) but additional template method accepting char[N] that would assume that the argument is literal and thus just store the pointer.

kgv

2020-09-07 10:14

developer   ~0094178

abv:
> The point is, if I understand correctly,
> to have a method accepting char* that will make a copy of the string
> (to be safe) but additional template method accepting char[N]
> that would assume that the argument is literal
> and thus just store the pointer.
Yes, this is my idea - shouldn't be cumbersome to implement, if it is actually reliable in C++.

msv

2020-09-07 10:50

developer   ~0094185

Do you propose to do this in the scope of the current patch? I have no more time to spend on it.

msv

2020-09-07 11:17

developer   ~0094188

We discussed with Ulyana, and came to conclusion that it is better to create a new bug for further enhancement of progress indicator.
Please take this patch as it is, as I see no more problems with it.

kgv

2020-09-07 11:56

developer   ~0094192

> Do you propose to do this in the scope of the current patch?
> I have no more time to spend on it.
Is see no point postponing this change - either we implement it now or just give up on breaking existing code on porting to new OCCT.

git

2020-09-07 15:49

administrator   ~0094200

Branch CR25748_10 has been updated by kgv.

SHA-1: 93b4f394a068ef0d96d1550e84886629de11ed28


Detailed log of new commits:

Author: kgv
Date: Mon Sep 7 15:52:33 2020 +0300

    # Message_ProgressScope, added constructor taking TCollection_AsciiString copied by value

git

2020-09-07 17:37

administrator   ~0094205

Branch CR25748_10 has been updated forcibly by kgv.

SHA-1: eb62b74b64b83dd430a41600676a104fed1b1c53

kgv

2020-09-07 21:23

developer   ~0094216

C# wrapper sample has been updated to avoid crash on disposing Message_ProgressRange within garbage collector thread.

msv

2020-09-07 22:56

developer   ~0094217

The method
 void SetName (const TCollection_AsciiString& theName)
misses setting of the flag myIsOwnName to true.

git

2020-09-07 22:56

administrator   ~0094218

Branch CR25748_10 has been updated forcibly by kgv.

SHA-1: de3a8a0a803a8f160a7c75cbcab065962d915035

git

2020-09-07 23:06

administrator   ~0094221

Branch CR25748_10 has been updated forcibly by kgv.

SHA-1: bc9efe3e8d4ef0793cbd98402eb9e1ca9df5ab3c

git

2020-09-07 23:09

administrator   ~0094222

Branch CR25748_11 has been created by kgv.

SHA-1: 0b684e9f182b9dddf6a56409af7c4c1eafbc3d49


Detailed log of new commits:

Author: msv
Date: Fri Jul 10 14:19:31 2020 +0300

    0025748: Parallel version of progress indicator
    
    Progress indication mechanism is refactored to support incrementing progress within multithreaded algorithms.
    
    The class Message_ProgressIndicator is only an interface to the user application.
    It accumulates the progress provided by progress scopes.
    The counter is protected by mutex for thread-safety.
    
    The new class Message_ProgressScope replacing Message_ProgressSentry should be used to advance the progress.
    The scopes are nested to each other to reflect the nested nature of operations.
    The new class Message_ProgressRange should be used to pass the progress to sub-scopes.
    
    All OCCT algorithms involving progress indication have been updated to new API.
    
    Improvements in Draw_ProgressIndicator:
    - Separate console mode has been added in order to make possible to put the progress into std::cout instead
      or in addition to the draw interpreter, instead of trigger option "-tclOutput".
    - Treatment of Ctrl-Break signal has been added.
      Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.
    
    Added new test case 'perf fclasses progr_par' for testing of parallel work of the progress.

kgv

2020-09-07 23:10

developer   ~0094224

>> void SetName (const TCollection_AsciiString& theName)
> misses setting of the flag myIsOwnName to true.
Fixed.

msv

2020-09-07 23:17

developer   ~0094225

Tests have been started.

git

2020-09-08 12:29

administrator   ~0094241

Branch CR25748_11 has been updated by kgv.

SHA-1: 76bf0025eba8e9c9202a7bceb51f51e27dc796c4


Detailed log of new commits:

Author: kgv
Date: Tue Sep 8 12:32:46 2020 +0300

    # protect incrementing progress on already disarmed Progress Range
    # (fix after introduction of Message_ProgressRange::myWasUsed flag)

git

2020-09-08 12:48

administrator   ~0094242

Branch CR25748_11 has been updated by kgv.

SHA-1: abc27a5fd765e7f6516475820e3af83ceb33b1ad


Detailed log of new commits:

Author: kgv
Date: Tue Sep 8 12:51:17 2020 +0300

    # RWGltf_CafReader - fixed using the same Progress Range twice

git

2020-09-08 14:22

administrator   ~0094251

Branch CR25748_12 has been created by kgv.

SHA-1: 94f310eec3471cfcb3a4dec0678b178c65603099


Detailed log of new commits:

Author: msv
Date: Fri Jul 10 14:19:31 2020 +0300

    0025748: Parallel version of progress indicator
    
    Progress indication mechanism is refactored to support incrementing progress within multithreaded algorithms.
    
    The class Message_ProgressIndicator is only an interface to the user application.
    It accumulates the progress provided by progress scopes.
    The counter is protected by mutex for thread-safety.
    
    The new class Message_ProgressScope replacing Message_ProgressSentry should be used to advance the progress.
    The scopes are nested to each other to reflect the nested nature of operations.
    The new class Message_ProgressRange should be used to pass the progress to sub-scopes.
    
    All OCCT algorithms involving progress indication have been updated to new API.
    
    Improvements in Draw_ProgressIndicator:
    - Separate console mode has been added in order to make possible to put the progress into std::cout instead
      or in addition to the draw interpreter, instead of trigger option "-tclOutput".
    - Treatment of Ctrl-Break signal has been added.
      Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.
    
    Added new test case 'perf fclasses progr_par' for testing of parallel work of the progress.

git

2020-09-08 16:28

administrator   ~0094256

Branch CR25748_11 has been updated forcibly by kgv.

SHA-1: a3089ec5e32722a06e92a1d5f9302b4fa80f50ff

git

2020-09-08 16:28

administrator   ~0094257

Branch CR25748_12 has been updated forcibly by kgv.

SHA-1: ce66636634471672f0227549f00e8b7c693b6205

msv

2020-09-09 10:01

developer   ~0094279

  if (theRange.myWasUsed)
  {
#ifdef RAISE_IF_REPEATED_USE
    throw Standard_ProgramError ("Mistake using Message_ProgressRange more than one time");
#endif
  }

Why you have left checking of condition out of preprocessor checking? Now there is useless checking of condition.

git

2020-09-09 10:02

administrator   ~0094280

Branch CR25748_12 has been updated by kgv.

SHA-1: cb7f69c9ae5ec810cdf0be0222209f45727ce5f9


Detailed log of new commits:

Author: kgv
Date: Wed Sep 9 10:05:31 2020 +0300

    # abv remarks for upgrade guide

kgv

2020-09-09 10:11

developer   ~0094281

Last edited: 2020-09-09 10:13

> Why you have left checking of condition out of preprocessor checking?
> Now there is useless checking of condition.
Practically there is no much difference - compiler optimizer will probably remove it anyway, and we will certainly should do something with it later.
On the other hand, having if() statement outside #ifdef ensures that it contains an existing variable name even when #ifdef is undefined.

I wanted to put some code within the if(), but decided to initialize myIsActive property straight ahead. I may revert this change, if there is such a preference.

msv

2020-09-09 10:36

developer   ~0094285

Code, generating a temporary string like "Two Stages" in above sample should be corrected.

Now this note is not actual.

kgv

2020-09-09 10:39

developer   ~0094286

> Code, generating a temporary string like "Two Stages"
> in above sample should be corrected.
Has been just pushed as "# abv remarks for upgrade guide".

git

2020-09-09 11:47

administrator   ~0094291

Branch CR25748_12 has been updated by kgv.

SHA-1: 85a1ded4f4f3b55cb65264d0803cdc04ed6ab3d3


Detailed log of new commits:

Author: kgv
Date: Wed Sep 9 11:50:43 2020 +0300

    # msv remark - remove obsolete upgrade guidence about temporary strings

git

2020-09-11 11:40

administrator   ~0094444

Branch CR25748_12 has been updated by abv.

SHA-1: 4fdad5be13fb6416ba949fbaa2fe5655c18bd8a4


Detailed log of new commits:

Author: abv
Date: Fri Sep 11 11:31:00 2020 +0300

    # Minor corrections
    
    - Description of progress scope usage and examples are revised in Message_ProgressScope.hxx comments
    - Advancement of progress scope in infinite mode is fixed to allow going behind specified max limit; test command OCC28478 is improved to test that
    - Show() is called in Start() to allow progress indicator to display initial state (0%)
    - Incorrect (multiple) usage of progress range is fixed
    - Macro-driven exception is replaced by assert in case if range is misused

git

2020-09-11 15:56

administrator   ~0094471

Branch CR25748_13 has been created by abv.

SHA-1: 4551481771d3118cbc5fa14186763e7dcf0a99b9


Detailed log of new commits:

Author: msv
Date: Fri Jul 10 14:19:31 2020 +0300

    0025748: Parallel version of progress indicator
    
    Progress indication mechanism is refactored to support incrementing progress within multithreaded algorithms.
    
    The class Message_ProgressIndicator is only an interface to the user application.
    It accumulates the progress provided by progress scopes.
    The counter is protected by mutex for thread-safety.
    
    The new class Message_ProgressScope replacing Message_ProgressSentry should be used to advance the progress.
    The scopes are nested to each other to reflect the nested nature of operations.
    The new class Message_ProgressRange should be used to pass the progress to sub-scopes.
    
    All OCCT algorithms involving progress indication have been updated to new API.
    
    Improvements in Draw_ProgressIndicator:
    - Separate console mode has been added in order to make possible to put the progress into std::cout instead
      or in addition to the draw interpreter, instead of trigger option "-tclOutput".
    - Treatment of Ctrl-Break signal has been added.
      Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.
    
    Added new test case 'perf fclasses progr_par' for testing of parallel work of the progress.

abv

2020-09-11 16:10

manager   ~0094476

Reviewed with minor corrections, please integrate:

OCCT branch: CR25748_13
Products branch: CR25748_13

Tests are OK, see Jenkins job CR25748_12-CR25748_12-KGV

git

2020-09-11 18:55

administrator   ~0094509

Branch CR25748_13 has been updated forcibly by abv.

SHA-1: 6d0bfc26fcd50813028cc3422582d32069e901bc

git

2020-09-12 10:04

administrator   ~0094528

Branch CR25748_13 has been updated by abv.

SHA-1: b5f97032651abd0d2128a32123974f9f34245735


Detailed log of new commits:

Author: abv
Date: Sat Sep 12 10:07:46 2020 +0300

    # Portability fixes for compilation with VS 2009 - 2013

bugmaster

2020-09-13 11:08

administrator   ~0094557

Combination -
OCCT branch : IR-2020-09-11
master SHA - d1b25684e9402d995dafec22fb98f83957d5fb76
a206de37fbfa0bf71bd534ae47192bbec23b8522
Products branch : IR-2020-09-11 SHA - a7e55a291cf6642cb4af945a999deeeb5f91272a
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 17333.360000000142 / 17325.800000000123 [+0.04%]
Products
Total CPU difference: 12056.720000000096 / 12079.64000000011 [-0.19%]
Windows-64-VC14:
OCCT
Total CPU difference: 18817.921875 / 18792.46875 [+0.14%]
Products
Total CPU difference: 13294.09375 / 13274.75 [+0.15%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2020-09-13 11:44

administrator   ~0094563

Branch CR25748_13 has been deleted by inv.

SHA-1: b5f97032651abd0d2128a32123974f9f34245735

git

2020-09-13 11:45

administrator   ~0094571

Branch CR25748_12 has been deleted by inv.

SHA-1: 4fdad5be13fb6416ba949fbaa2fe5655c18bd8a4

git

2020-09-13 11:46

administrator   ~0094588

Branch CR25748_11 has been deleted by inv.

SHA-1: a3089ec5e32722a06e92a1d5f9302b4fa80f50ff

git

2020-09-13 11:46

administrator   ~0094593

Branch CR25748_10 has been deleted by inv.

SHA-1: bc9efe3e8d4ef0793cbd98402eb9e1ca9df5ab3c

git

2020-09-13 11:46

administrator   ~0094600

Branch CR25748_9 has been deleted by inv.

SHA-1: f32d72db8cbf161f36f43789c7127a47f6d17424

git

2020-09-13 11:47

administrator   ~0094607

Branch CR25748_8 has been deleted by inv.

SHA-1: 380c5997da6d6c035d01c755a2879e151766664e

git

2020-09-13 11:47

administrator   ~0094618

Branch CR25748_7 has been deleted by inv.

SHA-1: 6c44212fa139e8380361365140316d301dad9721

git

2020-09-13 11:47

administrator   ~0094620

Branch CR25748_6 has been deleted by inv.

SHA-1: 2127663aaf38c52b5dacb54999187477770eef4c

git

2020-09-13 11:47

administrator   ~0094621

Branch CR25748_5 has been deleted by inv.

SHA-1: af4a61ea7c7e4d030942e91ecccd5189c8ce0bb4

git

2020-09-13 11:47

administrator   ~0094624

Branch CR25748_4 has been deleted by inv.

SHA-1: fabc05333584096f78681e4134e0cf5cad278fb7

git

2020-09-13 11:48

administrator   ~0094635

Branch CR25748_3 has been deleted by inv.

SHA-1: 2f2d36be0b37a6ea656dadfd077756dd77f4fa17

git

2020-09-13 11:49

administrator   ~0094649

Branch CR25748_2 has been deleted by inv.

SHA-1: c201ed8ca8bae7307ecd21d4c9e70541b3412452

git

2020-09-13 11:49

administrator   ~0094650

Branch CR25748_1 has been deleted by inv.

SHA-1: 05365f941b15c0e2714dd705221d820a28243e81

git

2020-09-13 11:49

administrator   ~0094651

Branch CR25748 has been deleted by inv.

SHA-1: df083f1fd8a7647b189776260534167270ec0f0d

Related Changesets

occt-products: master a7e55a29

2018-07-10 20:56:16

msv


Committer: bugmaster Details Diff
0025748: Foundation Classes - Parallel version of progress indicator

All algorithms involving progress indication have been updated to new API.

Support of progress indicator is added in interface OMFTools_MeshReader.
Affected Issues
0025748
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - dox/user_guides/jt_interface/jt_interface.md Diff File
mod - samples/csharp/ImportExportWPF/ImportTool.cs Diff File
mod - samples/csharp/ImportExportWPF/ProgressIndicator.cs Diff File
mod - samples/mfc/BFIT/BFIT/src/ImportExportDoc.cpp Diff File
mod - samples/mfc/BFIT/BFIT/src/MsgView.cpp Diff File
mod - samples/mfc/BFIT/BFIT/src/ProgressIndicator_GUIWrapper.h Diff File
mod - samples/mfc/BFIT/BFIT/src/Sample_AISPoints.cpp Diff File
mod - samples/mfc/BFIT/Common/ImportExport/ImportExport.cpp Diff File
mod - samples/mfc/BFIT/Common/OCC_3dView.cpp Diff File
mod - samples/mfc/xde/src/ImportExport.cpp Diff File
mod - samples/qt/OMF/inc/OMFSampleProgress.h Diff File
mod - samples/qt/Unfolding/src/ImportExport.cpp Diff File
mod - samples/qt/XDE/inc/XDESampleProgress.h Diff File
mod - samples/qt/XDE/src/ImportExport.cpp Diff File
mod - samples/qt/XDE/src/XDESampleProgress.cpp Diff File
mod - src/BestFitAPI/BestFitAPI_Algo.cxx Diff File
mod - src/BestFitAPI/BestFitAPI_Algo.hxx Diff File
mod - src/DXFCAFControl/DXFCAFControl_Reader.hxx Diff File
mod - src/DXFCAFControl/DXFCAFControl_Writer.cxx Diff File
mod - src/DxfControl/DxfControl_ActorWrite.hxx Diff File
mod - src/Geodesic/Geodesic_ShellDistances.cxx Diff File
mod - src/Geodesic/Geodesic_ShellDistances.hxx Diff File
mod - src/IFCCAFControl/IFCCAFControl_Reader.cxx Diff File
mod - src/IFCCAFControl/IFCCAFControl_Reader.hxx Diff File
mod - src/Jt/Jt_SceneGraph.cxx Diff File
mod - src/JTCAFControl/JTCAFControl_Reader.cxx Diff File
mod - src/JtData/JtData_FileReader.cxx Diff File
mod - src/JtData/JtData_FileWriter.cxx Diff File
mod - src/JtData/JtData_FileWriter.hxx Diff File
mod - src/JtData/JtData_Model.cxx Diff File
mod - src/JtNode/JtNode_Partition.hxx Diff File
mod - src/JtProperty/JtProperty_LateLoaded.cxx Diff File
mod - src/JtProperty/JtProperty_LateLoaded.hxx Diff File
mod - src/OMFTools/OMFTools_MeshReader.hxx Diff File
mod - src/OMFTools/OMFTools_MSHReader.cxx Diff File
mod - src/OMFTools/OMFTools_NASBaseReader.cxx Diff File
mod - src/OMFTools/OMFTools_NASBaseReader.hxx Diff File
mod - src/OMFTools/OMFTools_NASMeshReader.hxx Diff File
mod - src/OMFTools/OMFTools_NASParser.hxx Diff File
mod - src/OMFTools/OMFTools_NASReader.hxx Diff File
mod - src/OMFTools/OMFTools_SNECMAReader.cxx Diff File
mod - src/OMFTools/OMFTools_STLReader.hxx Diff File
mod - src/RVMCAFControl/RVMCAFControl_Reader.hxx Diff File
mod - src/RWPointCloud/RWPointCloud_Converter.cxx Diff File
mod - src/RWPointCloud/RWPointCloud_Converter.hxx Diff File
mod - src/RWPointCloud/RWPointCloud_StlReader.cxx Diff File
mod - src/SatControl/SatControl_ActorRead.cxx Diff File
mod - src/SatControl/SatControl_ActorRead.hxx Diff File
mod - src/SatControl/SatControl_ActorWrite.cxx Diff File
mod - src/SatControl/SatControl_ActorWrite.hxx Diff File
mod - src/ShapeConvert/ShapeConvert.cxx Diff File
mod - src/ShapeConvert/ShapeConvert_CanonicAPI.cxx Diff File
mod - src/ShapeConvert/ShapeConvert_CanonicAPI.hxx Diff File
mod - src/ShapeConvert/ShapeConvert_UnionFaces.cxx Diff File
mod - src/ShapeProcessAdv/ShapeProcessAdv_OperLibrary.cxx Diff File
mod - src/VolumeRender/VolumeRender_HistogramBuilder.cxx Diff File
mod - src/VolumeRender/VolumeRender_HistogramBuilder.hxx Diff File
mod - src/VolumeRender/VolumeRender_MetaWriter.cxx Diff File
mod - src/VolumeRender/VolumeRender_MetaWriter.hxx Diff File
mod - src/VolumeRenderTest/VolumeRenderTest.cxx Diff File
mod - src/XSDRAWIFC/XSDRAWIFC.cxx Diff File
mod - src/XSDRAWRVM/XSDRAWRVM.cxx Diff File
mod - src/XtControl/XtControl_ActorRead.cxx Diff File
mod - tests/omf/misc/license Diff File

occt: master 7e785937

2020-07-10 11:19:31

abv


Committer: abv Details Diff
0025748: Parallel version of progress indicator

Progress indication mechanism is refactored to support incrementing progress within multithreaded algorithms.

The class Message_ProgressIndicator is only an interface to the user application.
It accumulates the progress provided by progress scopes.
The counter is protected by mutex for thread-safety.

The new class Message_ProgressScope replacing Message_ProgressSentry should be used to advance the progress.
The scopes are nested to each other to reflect the nested nature of operations.
The new class Message_ProgressRange should be used to pass the progress to sub-scopes.

All OCCT algorithms involving progress indication have been updated to new API.

Improvements in Draw_ProgressIndicator:
- Separate console mode has been added in order to make possible to put the progress into std::cout instead
or in addition to the draw interpreter, instead of trigger option "-tclOutput".
- Treatment of Ctrl-Break signal has been added.
Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.

Added new test case 'perf fclasses progr_par' for testing of parallel work of the progress.
Affected Issues
0025748
mod - adm/upgrade.dat Diff File
mod - dox/dev_guides/upgrade/upgrade.md Diff File
mod - samples/CSharp/OCCTProxy/OCCTProxy.cpp Diff File
mod - samples/CSharp/OCCTProxy_D3D/OCCTProxyD3D.cpp Diff File
mod - src/BinDrivers/BinDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/BinDrivers/BinDrivers_DocumentRetrievalDriver.hxx Diff File
mod - src/BinDrivers/BinDrivers_DocumentStorageDriver.cxx Diff File
mod - src/BinDrivers/BinDrivers_DocumentStorageDriver.hxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.hxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentStorageDriver.cxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentStorageDriver.hxx Diff File
mod - src/BinMNaming/BinMNaming_NamedShapeDriver.cxx Diff File
mod - src/BinMNaming/BinMNaming_NamedShapeDriver.hxx Diff File
mod - src/BinTools/BinTools.cxx Diff File
mod - src/BinTools/BinTools.hxx Diff File
mod - src/BinTools/BinTools_Curve2dSet.cxx Diff File
mod - src/BinTools/BinTools_Curve2dSet.hxx Diff File
mod - src/BinTools/BinTools_CurveSet.cxx Diff File
mod - src/BinTools/BinTools_CurveSet.hxx Diff File
mod - src/BinTools/BinTools_ShapeSet.cxx Diff File
mod - src/BinTools/BinTools_ShapeSet.hxx Diff File
mod - src/BinTools/BinTools_SurfaceSet.cxx Diff File
mod - src/BinTools/BinTools_SurfaceSet.hxx Diff File
mod - src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_BOP.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_2.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_3.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_CheckerSI.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_MakerVolume.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Options.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Options.hxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Splitter.cxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Algo.hxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx Diff File
mod - src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx Diff File
mod - src/BRepBuilderAPI/BRepBuilderAPI_Sewing.hxx Diff File
mod - src/BRepTest/BRepTest_SurfaceCommands.cxx Diff File
mod - src/BRepToIGES/BRepToIGES_BREntity.cxx Diff File
mod - src/BRepToIGES/BRepToIGES_BREntity.hxx Diff File
mod - src/BRepToIGES/BRepToIGES_BRShell.cxx Diff File
mod - src/BRepToIGES/BRepToIGES_BRShell.hxx Diff File
mod - src/BRepToIGES/BRepToIGES_BRSolid.cxx Diff File
mod - src/BRepToIGES/BRepToIGES_BRSolid.hxx Diff File
mod - src/BRepToIGESBRep/BRepToIGESBRep_Entity.cxx Diff File
mod - src/BRepToIGESBRep/BRepToIGESBRep_Entity.hxx Diff File
mod - src/BRepTools/BRepTools.cxx Diff File
mod - src/BRepTools/BRepTools.hxx Diff File
mod - src/BRepTools/BRepTools_Modifier.cxx Diff File
mod - src/BRepTools/BRepTools_Modifier.hxx Diff File
mod - src/BRepTools/BRepTools_ShapeSet.cxx Diff File
mod - src/BRepTools/BRepTools_ShapeSet.hxx Diff File
mod - src/CDF/CDF_Application.cxx Diff File
mod - src/CDF/CDF_Application.hxx Diff File
mod - src/CDF/CDF_Store.cxx Diff File
mod - src/CDF/CDF_Store.hxx Diff File
mod - src/CDF/CDF_StoreList.cxx Diff File
mod - src/CDF/CDF_StoreList.hxx Diff File
mod - src/CDM/CDM_Application.hxx Diff File
mod - src/DBRep/DBRep.cxx Diff File
mod - src/DDocStd/DDocStd_ApplicationCommands.cxx Diff File
mod - src/Draw/Draw.cxx Diff File
mod - src/Draw/Draw.hxx Diff File
mod - src/Draw/Draw_ProgressIndicator.cxx Diff File
mod - src/Draw/Draw_ProgressIndicator.hxx Diff File
mod - src/Draw/Draw_VariableCommands.cxx Diff File
mod - src/GeomPlate/GeomPlate_BuildPlateSurface.cxx Diff File
mod - src/GeomPlate/GeomPlate_BuildPlateSurface.hxx Diff File
mod - src/GeomTools/GeomTools_Curve2dSet.cxx Diff File
mod - src/GeomTools/GeomTools_Curve2dSet.hxx Diff File
mod - src/GeomTools/GeomTools_CurveSet.cxx Diff File
mod - src/GeomTools/GeomTools_CurveSet.hxx Diff File
mod - src/GeomTools/GeomTools_SurfaceSet.cxx Diff File
mod - src/GeomTools/GeomTools_SurfaceSet.hxx Diff File
mod - src/IGESCAFControl/IGESCAFControl_Reader.cxx Diff File
mod - src/IGESCAFControl/IGESCAFControl_Reader.hxx Diff File
mod - src/IGESCAFControl/IGESCAFControl_Writer.cxx Diff File
mod - src/IGESCAFControl/IGESCAFControl_Writer.hxx Diff File
mod - src/IGESControl/IGESControl_ActorWrite.cxx Diff File
mod - src/IGESControl/IGESControl_ActorWrite.hxx Diff File
mod - src/IGESControl/IGESControl_Controller.cxx Diff File
mod - src/IGESControl/IGESControl_Controller.hxx Diff File
mod - src/IGESControl/IGESControl_Writer.cxx Diff File
mod - src/IGESControl/IGESControl_Writer.hxx Diff File
mod - src/IGESToBRep/IGESToBRep_Actor.cxx Diff File
mod - src/IGESToBRep/IGESToBRep_Actor.hxx Diff File
mod - src/IGESToBRep/IGESToBRep_BRepEntity.cxx Diff File
mod - src/IGESToBRep/IGESToBRep_BRepEntity.hxx Diff File
mod - src/IGESToBRep/IGESToBRep_CurveAndSurface.cxx Diff File
mod - src/IGESToBRep/IGESToBRep_CurveAndSurface.hxx Diff File
mod - src/IGESToBRep/IGESToBRep_Reader.cxx Diff File
mod - src/IGESToBRep/IGESToBRep_Reader.hxx Diff File
mod - src/math/math_Gauss.cxx Diff File
mod - src/math/math_Gauss.hxx Diff File
mod - src/math/math_Recipes.cxx Diff File
mod - src/math/math_Recipes.hxx Diff File
mod - src/Message/FILES Diff File
mod - src/Message/Message_ProgressIndicator.cxx Diff File
mod - src/Message/Message_ProgressIndicator.hxx Diff File
rm - src/Message/Message_ProgressIndicator.lxx Diff File
add - src/Message/Message_ProgressRange.hxx Diff File
rm - src/Message/Message_ProgressScale.cxx Diff File
rm - src/Message/Message_ProgressScale.hxx Diff File
rm - src/Message/Message_ProgressScale.lxx Diff File
add - src/Message/Message_ProgressScope.hxx Diff File
rm - src/Message/Message_ProgressSentry.cxx Diff File
mod - src/Message/Message_ProgressSentry.hxx Diff File
rm - src/Message/Message_ProgressSentry.lxx Diff File
rm - src/Message/Message_SequenceOfProgressScale.hxx Diff File
mod - src/PCDM/PCDM_Reader.hxx Diff File
mod - src/PCDM/PCDM_StorageDriver.cxx Diff File
mod - src/PCDM/PCDM_StorageDriver.hxx Diff File
mod - src/PCDM/PCDM_Writer.hxx Diff File
mod - src/Plate/Plate_Plate.cxx Diff File
mod - src/Plate/Plate_Plate.hxx Diff File
mod - src/QABugs/QABugs_11.cxx Diff File
mod - src/RWGltf/RWGltf_CafReader.cxx Diff File
mod - src/RWGltf/RWGltf_CafReader.hxx Diff File
mod - src/RWGltf/RWGltf_CafWriter.cxx Diff File
mod - src/RWGltf/RWGltf_CafWriter.hxx Diff File
mod - src/RWGltf/RWGltf_GltfJsonParser.cxx Diff File
mod - src/RWGltf/RWGltf_GltfJsonParser.pxx Diff File
mod - src/RWMesh/RWMesh_CafReader.cxx Diff File
mod - src/RWMesh/RWMesh_CafReader.hxx Diff File
mod - src/RWObj/RWObj.cxx Diff File
mod - src/RWObj/RWObj.hxx Diff File
mod - src/RWObj/RWObj_CafReader.cxx Diff File
mod - src/RWObj/RWObj_CafReader.hxx Diff File
mod - src/RWObj/RWObj_Reader.cxx Diff File
mod - src/RWObj/RWObj_Reader.hxx Diff File
mod - src/RWStl/RWStl.cxx Diff File
mod - src/RWStl/RWStl.hxx Diff File
mod - src/RWStl/RWStl_Reader.cxx Diff File
mod - src/RWStl/RWStl_Reader.hxx Diff File
mod - src/ShapeCustom/ShapeCustom.cxx Diff File
mod - src/ShapeCustom/ShapeCustom.hxx Diff File
mod - src/ShapeFix/ShapeFix.cxx Diff File
mod - src/ShapeFix/ShapeFix.hxx Diff File
mod - src/ShapeFix/ShapeFix_Shape.cxx Diff File
mod - src/ShapeFix/ShapeFix_Shape.hxx Diff File
mod - src/ShapeFix/ShapeFix_Shell.cxx Diff File
mod - src/ShapeFix/ShapeFix_Shell.hxx Diff File
mod - src/ShapeFix/ShapeFix_Solid.cxx Diff File
mod - src/ShapeFix/ShapeFix_Solid.hxx Diff File
mod - src/ShapeProcess/ShapeProcess.cxx Diff File
mod - src/ShapeProcess/ShapeProcess.hxx Diff File
mod - src/ShapeProcess/ShapeProcess_Context.cxx Diff File
mod - src/ShapeProcess/ShapeProcess_Context.hxx Diff File
mod - src/ShapeProcess/ShapeProcess_Operator.hxx Diff File
mod - src/ShapeProcess/ShapeProcess_OperFunc.hxx Diff File
mod - src/ShapeProcess/ShapeProcess_OperLibrary.cxx Diff File
mod - src/ShapeProcess/ShapeProcess_UOperator.cxx Diff File
mod - src/ShapeProcess/ShapeProcess_UOperator.hxx Diff File
mod - src/ShapeProcessAPI/ShapeProcessAPI_ApplySequence.cxx Diff File
mod - src/ShapeProcessAPI/ShapeProcessAPI_ApplySequence.hxx Diff File
mod - src/StdLDrivers/StdLDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/StdLDrivers/StdLDrivers_DocumentRetrievalDriver.hxx Diff File
mod - src/STEPCAFControl/STEPCAFControl_Reader.cxx Diff File
mod - src/STEPCAFControl/STEPCAFControl_Reader.hxx Diff File
mod - src/STEPCAFControl/STEPCAFControl_Writer.cxx Diff File
mod - src/STEPCAFControl/STEPCAFControl_Writer.hxx Diff File
mod - src/STEPControl/STEPControl_ActorRead.cxx Diff File
mod - src/STEPControl/STEPControl_ActorRead.hxx Diff File
mod - src/STEPControl/STEPControl_ActorWrite.cxx Diff File
mod - src/STEPControl/STEPControl_ActorWrite.hxx Diff File
mod - src/STEPControl/STEPControl_Controller.cxx Diff File
mod - src/STEPControl/STEPControl_Controller.hxx Diff File
mod - src/STEPControl/STEPControl_Reader.cxx Diff File
mod - src/STEPControl/STEPControl_Reader.hxx Diff File
mod - src/STEPControl/STEPControl_Writer.cxx Diff File
mod - src/STEPControl/STEPControl_Writer.hxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_Builder.cxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_Builder.hxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_MakeTransformed.cxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_MakeTransformed.hxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_TranslateShell.cxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_TranslateShell.hxx Diff File
mod - src/StlAPI/StlAPI_Writer.cxx Diff File
mod - src/StlAPI/StlAPI_Writer.hxx Diff File
mod - src/SWDRAW/SWDRAW_ShapeFix.cxx Diff File
mod - src/SWDRAW/SWDRAW_ShapeUpgrade.cxx Diff File
mod - src/TDocStd/TDocStd_Application.cxx Diff File
mod - src/TDocStd/TDocStd_Application.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_Builder.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_Builder.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeBrepWithVoids.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeBrepWithVoids.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrep.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrep.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrepAndBrepWithVoids.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrepAndBrepWithVoids.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeManifoldSolidBrep.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeManifoldSolidBrep.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeShellBasedSurfaceModel.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeShellBasedSurfaceModel.hxx Diff File
mod - src/TopTools/TopTools_LocationSet.cxx Diff File
mod - src/TopTools/TopTools_LocationSet.hxx Diff File
mod - src/TopTools/TopTools_ShapeSet.cxx Diff File
mod - src/TopTools/TopTools_ShapeSet.hxx Diff File
mod - src/Transfer/Transfer_Actor.gxx Diff File
mod - src/Transfer/Transfer_ActorDispatch.cxx Diff File
mod - src/Transfer/Transfer_ActorDispatch.hxx Diff File
mod - src/Transfer/Transfer_ActorOfFinderProcess.cxx Diff File
mod - src/Transfer/Transfer_ActorOfFinderProcess.hxx Diff File
mod - src/Transfer/Transfer_ActorOfProcessForFinder.hxx Diff File
mod - src/Transfer/Transfer_ActorOfProcessForTransient.hxx Diff File
mod - src/Transfer/Transfer_ActorOfTransientProcess.cxx Diff File
mod - src/Transfer/Transfer_ActorOfTransientProcess.hxx Diff File
mod - src/Transfer/Transfer_ProcessForFinder.hxx Diff File
mod - src/Transfer/Transfer_ProcessForFinder_0.cxx Diff File
mod - src/Transfer/Transfer_ProcessForTransient.hxx Diff File
mod - src/Transfer/Transfer_ProcessForTransient_0.cxx Diff File
mod - src/Transfer/Transfer_TransferOutput.cxx Diff File
mod - src/Transfer/Transfer_TransferOutput.hxx Diff File
mod - src/Transfer/Transfer_TransferProcess.gxx Diff File
mod - src/TransferBRep/TransferBRep_Reader.cxx Diff File
mod - src/TransferBRep/TransferBRep_Reader.hxx Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_NotesTool.hxx Diff File
mod - src/XmlDrivers/XmlDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/XmlDrivers/XmlDrivers_DocumentRetrievalDriver.hxx Diff File
mod - src/XmlDrivers/XmlDrivers_DocumentStorageDriver.cxx Diff File
mod - src/XmlDrivers/XmlDrivers_DocumentStorageDriver.hxx Diff File
mod - src/XmlLDrivers/XmlLDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/XmlLDrivers/XmlLDrivers_DocumentRetrievalDriver.hxx Diff File
mod - src/XmlLDrivers/XmlLDrivers_DocumentStorageDriver.cxx Diff File
mod - src/XmlLDrivers/XmlLDrivers_DocumentStorageDriver.hxx Diff File
mod - src/XmlMDF/XmlMDF.cxx Diff File
mod - src/XmlMDF/XmlMDF.hxx Diff File
mod - src/XmlMNaming/XmlMNaming_NamedShapeDriver.cxx Diff File
mod - src/XmlMNaming/XmlMNaming_NamedShapeDriver.hxx Diff File
mod - src/XSAlgo/XSAlgo_AlgoContainer.cxx Diff File
mod - src/XSAlgo/XSAlgo_AlgoContainer.hxx Diff File
mod - src/XSControl/XSControl_Controller.cxx Diff File
mod - src/XSControl/XSControl_Controller.hxx Diff File
mod - src/XSControl/XSControl_Reader.cxx Diff File
mod - src/XSControl/XSControl_Reader.hxx Diff File
mod - src/XSControl/XSControl_TransferReader.cxx Diff File
mod - src/XSControl/XSControl_TransferReader.hxx Diff File
mod - src/XSControl/XSControl_TransferWriter.cxx Diff File
mod - src/XSControl/XSControl_TransferWriter.hxx Diff File
mod - src/XSControl/XSControl_WorkSession.cxx Diff File
mod - src/XSControl/XSControl_WorkSession.hxx Diff File
mod - src/XSControl/XSControl_Writer.cxx Diff File
mod - src/XSControl/XSControl_Writer.hxx Diff File
mod - src/XSDRAWIGES/XSDRAWIGES.cxx Diff File
mod - src/XSDRAWSTEP/XSDRAWSTEP.cxx Diff File
mod - src/XSDRAWSTLVRML/XSDRAWSTLVRML.cxx Diff File
mod - tests/bugs/fclasses/bug28478 Diff File
mod - tests/bugs/fclasses/bug31092 Diff File
mod - tests/bugs/modalg_5/bug22747 Diff File
mod - tests/bugs/moddata_2/bug22572 Diff File
mod - tests/bugs/moddata_2/bug22746_1 Diff File
mod - tests/bugs/moddata_2/bug22746_2 Diff File
mod - tests/bugs/moddata_2/bug22746_3 Diff File
mod - tests/caf/progress/A1 Diff File
mod - tests/caf/progress/A2 Diff File
mod - tests/caf/progress/B1 Diff File
mod - tests/caf/progress/B2 Diff File
mod - tests/caf/progress/C1 Diff File
mod - tests/caf/progress/C2 Diff File
mod - tests/de_mesh/shape_write_stl/B1 Diff File
add - tests/perf/fclasses/progr_par Diff File

Issue History

Date Modified Username Field Change
2015-01-23 19:27 abv New Issue
2015-01-23 19:27 abv Assigned To => abv
2015-01-23 19:27 abv Relationship added related to 0025113
2015-03-27 21:35 abv Target Version 6.9.0 => 7.1.0
2016-11-01 06:41 abv Target Version 7.1.0 => 7.2.0
2017-07-27 09:43 abv Target Version 7.2.0 => 7.4.0
2018-06-20 11:54 git Note Added: 0076845
2018-06-20 11:55 msv Assigned To abv => msv
2018-06-20 11:55 msv Status new => assigned
2018-06-20 11:55 kgv Summary Parallel version of progress indicator => Foundation Classes - Parallel version of progress indicator
2018-06-21 13:05 git Note Added: 0076866
2018-07-10 20:53 git Note Added: 0077434
2018-07-10 23:14 git Note Added: 0077439
2018-07-12 15:20 git Note Added: 0077529
2018-07-13 08:40 git Note Added: 0077561
2018-07-13 18:19 git Note Added: 0077588
2018-07-16 12:52 git Note Added: 0077652
2018-07-17 17:33 git Note Added: 0077747
2018-07-17 17:42 msv Note Added: 0077749
2018-07-17 17:42 msv Assigned To msv => abv
2018-07-17 17:42 msv Status assigned => resolved
2018-07-17 17:42 msv Steps to Reproduce Updated
2019-05-07 09:03 msv Assigned To abv => msv
2019-05-07 09:03 msv Status resolved => assigned
2019-05-07 11:19 git Note Added: 0084216
2019-05-07 17:24 msv Note Added: 0084232
2019-05-07 17:24 msv Assigned To msv => kgv
2019-05-07 17:24 msv Status assigned => resolved
2019-05-07 17:25 msv Note Added: 0084233
2019-05-12 16:46 kgv Relationship added related to 0030697
2019-05-12 17:26 kgv Note Added: 0084293
2019-05-12 22:37 kgv Note Added: 0084294
2019-05-12 22:38 kgv Note Edited: 0084294
2019-05-13 12:25 kgv Assigned To kgv => abv
2019-05-16 17:47 git Note Added: 0084407
2019-05-17 09:31 git Note Added: 0084411
2019-05-17 22:16 msv Note Added: 0084436
2019-05-20 09:25 msv Note Added: 0084469
2019-08-29 11:52 git Note Added: 0086518
2019-08-30 02:46 git Note Added: 0086544
2019-08-30 09:01 git Note Added: 0086546
2019-08-30 12:49 git Note Added: 0086549
2019-08-30 23:19 git Note Added: 0086562
2019-08-31 12:35 git Note Added: 0086569
2019-08-31 17:22 abv Note Added: 0086574
2019-08-31 17:22 abv Assigned To abv => msv
2019-08-31 17:22 abv Status resolved => feedback
2019-08-31 18:01 abv File Added: bug25478_perf.xlsx
2019-08-31 18:04 abv Note Edited: 0086574
2019-09-01 11:22 git Note Added: 0086590
2019-09-01 13:17 git Note Added: 0086592
2019-09-01 23:35 git Note Added: 0086600
2019-09-02 07:50 abv Note Added: 0086605
2019-09-02 18:46 msv Note Added: 0086668
2019-09-02 18:46 msv Status feedback => assigned
2019-09-02 18:46 msv Target Version 7.4.0 => 7.5.0
2019-09-04 12:22 kgv Relationship added related to 0025896
2019-09-04 21:49 abv Relationship added related to 0030871
2019-09-04 21:53 abv Relationship added related to 0025482
2019-10-21 17:19 kgv Relationship added related to 0031092
2019-11-25 09:54 abv Relationship added related to 0031190
2019-11-25 12:38 git Note Added: 0089199
2019-11-25 16:49 abv Note Added: 0089208
2019-12-20 08:17 git Note Added: 0089665
2019-12-25 11:48 git Note Added: 0089750
2020-01-15 13:17 git Note Added: 0089897
2020-01-15 13:33 git Note Added: 0089898
2020-01-15 14:58 git Note Added: 0089899
2020-01-24 13:17 git Note Added: 0090042
2020-01-24 16:27 git Note Added: 0090050
2020-01-29 15:15 git Note Added: 0090141
2020-02-28 17:13 utverdov Assigned To msv => akaftasev
2020-02-28 19:12 msv Assigned To akaftasev => msv
2020-02-28 19:12 msv Status assigned => resolved
2020-06-05 17:23 kgv Relationship added related to 0031504
2020-07-21 21:23 git Note Added: 0093242
2020-07-22 11:41 git Note Added: 0093246
2020-07-22 21:30 git Note Added: 0093250
2020-07-23 16:43 git Note Added: 0093264
2020-07-23 18:11 git Note Added: 0093268
2020-07-23 23:04 git Note Added: 0093271
2020-07-24 15:27 git Note Added: 0093294
2020-07-24 16:41 git Note Added: 0093296
2020-07-24 16:54 git Note Added: 0093297
2020-07-24 18:44 git Note Added: 0093301
2020-07-24 19:26 msv Note Added: 0093303
2020-07-24 19:39 git Note Added: 0093305
2020-07-24 19:41 msv Note Added: 0093306
2020-07-27 11:52 msv Assigned To msv => akaftasev
2020-07-27 11:53 msv Note Added: 0093368
2020-07-27 11:53 msv Status resolved => assigned
2020-07-29 13:51 git Note Added: 0093387
2020-08-07 17:11 git Note Added: 0093449
2020-08-10 13:01 git Note Added: 0093463
2020-08-26 14:06 git Note Added: 0093639
2020-08-26 18:03 akaftasev Assigned To akaftasev => msv
2020-08-26 18:03 akaftasev Status assigned => resolved
2020-08-26 18:13 akaftasev Note Added: 0093646
2020-08-27 10:14 msv Note Added: 0093658
2020-08-27 10:14 msv Assigned To msv => akaftasev
2020-08-27 10:14 msv Status resolved => assigned
2020-08-27 13:53 git Note Added: 0093662
2020-09-01 23:06 git Note Added: 0093838
2020-09-02 19:55 git Note Added: 0093927
2020-09-02 20:53 git Note Added: 0093939
2020-09-02 22:10 msv Note Added: 0093941
2020-09-02 22:10 msv Assigned To akaftasev => abv
2020-09-02 22:10 msv Status assigned => resolved
2020-09-02 22:32 kgv Note Added: 0093943
2020-09-02 22:51 git Note Added: 0093944
2020-09-02 22:52 msv Note Added: 0093945
2020-09-02 23:21 kgv Note Added: 0093947
2020-09-02 23:29 kgv Note Added: 0093951
2020-09-02 23:30 kgv Note Edited: 0093951
2020-09-03 09:46 msv Note Added: 0093957
2020-09-03 09:47 msv Note Added: 0093958
2020-09-03 10:00 msv Note Added: 0093959
2020-09-03 13:34 kgv Note Added: 0093976
2020-09-03 14:41 git Note Added: 0093985
2020-09-03 14:42 msv Note Added: 0093986
2020-09-04 14:03 kgv Note Added: 0094011
2020-09-04 14:42 git Note Added: 0094012
2020-09-04 14:52 git Note Added: 0094013
2020-09-04 15:01 kgv Note Added: 0094014
2020-09-04 16:28 git Note Added: 0094016
2020-09-04 16:32 kgv Note Added: 0094017
2020-09-04 16:32 kgv Assigned To abv => msv
2020-09-04 16:32 kgv Status resolved => assigned
2020-09-04 16:32 kgv Note Edited: 0094017
2020-09-04 16:56 git Note Added: 0094019
2020-09-04 17:40 git Note Added: 0094021
2020-09-04 19:47 git Note Added: 0094023
2020-09-04 19:49 msv Note Added: 0094024
2020-09-04 19:49 msv Assigned To msv => kgv
2020-09-04 19:49 msv Status assigned => resolved
2020-09-04 20:33 git Note Added: 0094025
2020-09-04 21:01 msv Note Added: 0094032
2020-09-05 07:58 abv Note Added: 0094037
2020-09-05 08:01 abv Note Edited: 0094037
2020-09-05 08:58 kgv Note Added: 0094038
2020-09-05 08:59 kgv Note Edited: 0094038
2020-09-05 09:01 kgv Note Added: 0094039
2020-09-05 09:03 kgv Note Added: 0094040
2020-09-05 09:03 kgv Assigned To kgv => msv
2020-09-05 09:03 kgv Status resolved => assigned
2020-09-05 14:17 msv Note Added: 0094133
2020-09-05 15:01 git Note Added: 0094134
2020-09-05 15:06 git Note Added: 0094141
2020-09-05 15:32 msv Note Added: 0094144
2020-09-05 15:33 msv Note Added: 0094145
2020-09-05 15:33 msv Assigned To msv => abv
2020-09-05 15:33 msv Status assigned => resolved
2020-09-06 07:02 abv Note Added: 0094156
2020-09-07 10:14 kgv Note Added: 0094178
2020-09-07 10:50 msv Note Added: 0094185
2020-09-07 11:17 msv Note Added: 0094188
2020-09-07 11:56 kgv Note Added: 0094192
2020-09-07 15:49 git Note Added: 0094200
2020-09-07 17:37 git Note Added: 0094205
2020-09-07 21:23 kgv Note Added: 0094216
2020-09-07 22:56 msv Note Added: 0094217
2020-09-07 22:56 git Note Added: 0094218
2020-09-07 22:56 msv Assigned To abv => kgv
2020-09-07 22:56 msv Status resolved => assigned
2020-09-07 23:06 git Note Added: 0094221
2020-09-07 23:09 git Note Added: 0094222
2020-09-07 23:10 kgv Note Added: 0094224
2020-09-07 23:10 kgv Assigned To kgv => msv
2020-09-07 23:10 kgv Status assigned => resolved
2020-09-07 23:17 msv Note Added: 0094225
2020-09-08 10:08 msv Assigned To msv => abv
2020-09-08 12:29 git Note Added: 0094241
2020-09-08 12:48 git Note Added: 0094242
2020-09-08 14:22 git Note Added: 0094251
2020-09-08 16:28 git Note Added: 0094256
2020-09-08 16:28 git Note Added: 0094257
2020-09-09 10:01 msv Note Added: 0094279
2020-09-09 10:02 git Note Added: 0094280
2020-09-09 10:11 kgv Note Added: 0094281
2020-09-09 10:12 kgv Note Edited: 0094281
2020-09-09 10:13 kgv Note Edited: 0094281
2020-09-09 10:36 msv Note Added: 0094285
2020-09-09 10:39 kgv Note Added: 0094286
2020-09-09 11:47 git Note Added: 0094291
2020-09-10 15:00 abv Relationship added related to 0025530
2020-09-11 11:40 git Note Added: 0094444
2020-09-11 15:56 git Note Added: 0094471
2020-09-11 16:10 abv Note Added: 0094476
2020-09-11 16:10 abv Assigned To abv => bugmaster
2020-09-11 16:10 abv Status resolved => reviewed
2020-09-11 18:55 git Note Added: 0094509
2020-09-12 10:04 git Note Added: 0094528
2020-09-13 08:46 abv Relationship added parent of 0031763
2020-09-13 11:08 bugmaster Note Added: 0094557
2020-09-13 11:08 bugmaster Status reviewed => tested
2020-09-13 11:24 bugmaster Test case number => Not required
2020-09-13 11:24 abv Changeset attached => occt master 7e785937
2020-09-13 11:24 abv Assigned To bugmaster => abv
2020-09-13 11:24 abv Status tested => verified
2020-09-13 11:24 abv Resolution open => fixed
2020-09-13 11:44 git Note Added: 0094563
2020-09-13 11:45 git Note Added: 0094571
2020-09-13 11:46 git Note Added: 0094588
2020-09-13 11:46 git Note Added: 0094593
2020-09-13 11:46 git Note Added: 0094600
2020-09-13 11:47 git Note Added: 0094607
2020-09-13 11:47 git Note Added: 0094618
2020-09-13 11:47 git Note Added: 0094620
2020-09-13 11:47 git Note Added: 0094621
2020-09-13 11:47 git Note Added: 0094624
2020-09-13 11:48 git Note Added: 0094635
2020-09-13 11:49 git Note Added: 0094649
2020-09-13 11:49 git Note Added: 0094650
2020-09-13 11:49 git Note Added: 0094651
2020-09-14 09:40 msv Steps to Reproduce Updated
2020-09-18 21:48 abv Relationship added related to 0025698
2020-10-01 12:20 kgv Relationship added parent of 0031813
2020-10-12 17:47 kgv Relationship added parent of 0031842
2020-12-02 16:22 emo Fixed in Version => 7.5.0
2020-12-02 17:11 emo Status verified => closed
2021-05-25 13:29 kgv Relationship added parent of 0032396
2021-08-17 17:10 asuraven Relationship added related to 0031942
2021-12-17 18:41 bugmaster Changeset attached => occt-products master a7e55a29