Open CASCADE Technology 8.0.0 Release Candidate 3 #917
dpasukhi
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Open Cascade is delighted to announce the release of Open CASCADE Technology version 8.0.0 Release Candidate 3 to the public.
Overview
Version 8.0.0-rc3 is a candidate release incorporating 157 improvements and bug fixes compared to version 8.0.0-rc2, bringing the total improvements since version 7.9.0 to over 290 changes.
This release focuses on:
Standard_Mutextostd::mutexconstexpr/noexceptannotations throughout the codebaseWhat is a Release Candidate
A Release Candidate is a tag on the master branch that has completed all test rounds and is stable to use. Release candidates progress in parallel with maintenance releases, with the difference that maintenance releases remain binary compatible with minor releases and cannot include most improvements. The cycle for a release candidate is planned to be 5-10 weeks, while maintenance releases occur once per quarter.
What's New in OCCT 8.0.0-rc3
Foundation Classes
Math Functions Modernization
stdequivalents #833: The following functions are now deprecated and will be removed in future releases:ACos(),ASin(),ATan(),ATan2()→ usestd::acos,std::asin,std::atan,std::atan2Sinh(),Cosh(),Tanh()→ usestd::sinh,std::cosh,std::tanhASinh(),ACosh(),ATanh()→ usestd::asinh,std::acosh,std::atanhSqrt(),Log(),Log10(),Exp()→ usestd::sqrt,std::log,std::log10,std::expPow(),Abs(),Sign()→ usestd::pow,std::abs,std::copysignSin(),Cos(),Tan()→ usestd::sin,std::cos,std::tanFloor(),Ceiling(),Round()→ usestd::floor,std::ceil,std::roundIntegerPart()→ usestd::truncMin(),Max()→ usestd::min,std::maxNextAfter()→ usestd::nextafterThreading Modernization
Standard_Mutexwithstd::mutex#766: Migrated from legacy mutex implementation to standard C++ mutexes across all modules:std::lock_guardorstd::unique_lockinstead ofStandard_Mutex::Sentrystd::mutexinstead ofStandard_Mutexstd::unique_ptr<std::mutex>Geometric Primitives (
gp)gp_Dir::Dandgp_Dir2d::Denums for standard directions (X, Y, Z, NX, NY, NZ)constexpr/noexcept#798, #796, #790: Geometric primitives (circles, cones, cylinders, axes) now have constexpr constructorsStrings
EmptyString()methods #788: NewTCollection_AsciiString::EmptyString()andTCollection_ExtendedString::EmptyString()for efficient empty string accessTCollection_AsciiString#752: Pre-defined string optimization for better performanceMath Containers
math_Matrixandmath_Vector#841: Added move constructors and move assignment operators for efficient container transfersBSpline Optimizations
constexprand validation, optimized local callsOther Foundation Improvements
Bndpackage #839, #856: Bounding box optimizations and fixesBnd_B2andBnd_B3#838: Template-based implementationTopExppackage #831Quantitypackage #834NCollectionvector constructors #835NCollection_SparseArrayBase#804CSLibpackage with GTests #857Extremapackage #869PLib::Bin#777Precision.hxx#811ElSLib/ElCLib#813Modeling Data
GeomHashandGeom2dHashpackages #845: Hash functions for geometric curves and surfaces enabling efficient comparison and cachingModeling Algorithms
ChFi3d_Builder#892Shape Healing
FixFaceOrientation#584Data Exchange
Stream Support
DE_Wrapper#663: Stream-based read/write methods for STEP, STL, VRML, and other formats with validation utilitiesSTEP Improvements
property_definitionentitiesstd::string_viewfor STEP type names #784: Performance improvement usingstd::string_viewfor type recognitionStepTypeselection #786RWStepAP214#888Plugin System
Register/UnRegistermethods for configuration nodes,DE_MultiPluginHolderfor multiple registrationsVisualization
Build and Configuration
.gitignorewith explicit allowlist #787Testing
ShapeAnalysis_CanonicalRecognitionunit tests #720Standard_ArrayStreamBufferunit tests #708BRepOffsetAPI_ThruSections_Testwith B-spline support #891Bug Fixes
Modeling
ShapeUpgrade_UnifySameDomaincrash #876BRepBuilderAPI_GTransformface stretch crash #875BSplCLib_Reverse#863BRepFilletAPI_MakeFillet::Addhang #859BRepFilletAPI_MakeChamfercrash #743BRepOffsetAPI_MakePipeShellcrash #740IntAna_IntQuadQuad::NextCurve#703fixshape#623UnifySameDomain#624Bnd_Box::CornerMaxincorrect implementation #664BOPAlgo_PaveFiller_6#864Shape Healing
ShapeConstruct_ProjectCurveOnSurface#894Data Exchange
STEPCAFControl_Readerhang #733Mesh
Application Framework
NamedShapewhenTNaming_UsedShapesis missing #760Visualization
AIS_ViewCube#727Draw
Migration Guide
Deprecated Math Functions
All OCCT math wrapper functions that duplicate C++ standard library functionality are now deprecated. While they still work, you should migrate to
std::equivalents:Complete Mapping
ACos(x)std::acos(x)ASin(x)std::asin(x)ATan(x)std::atan(x)ATan2(y, x)std::atan2(y, x)Cos(x)std::cos(x)Sin(x)std::sin(x)Tan(x)std::tan(x)Cosh(x)std::cosh(x)Sinh(x)std::sinh(x)Tanh(x)std::tanh(x)ACosh(x)std::acosh(x)ASinh(x)std::asinh(x)ATanh(x)std::atanh(x)Sqrt(x)std::sqrt(x)Log(x)std::log(x)Log10(x)std::log10(x)Exp(x)std::exp(x)Pow(x, y)std::pow(x, y)Abs(x)std::abs(x)Sign(a, b)std::copysign(a, b)Floor(x)std::floor(x)Ceiling(x)std::ceil(x)Round(x)std::round(x)IntegerPart(x)std::trunc(x)Min(a, b)std::min(a, b)Max(a, b)std::max(a, b)NextAfter(x, y)std::nextafter(x, y)Note:
ACosApprox()is also deprecated; usestd::acos()instead.Standard_Mutex Migration
Replace legacy mutex usage with standard C++ threading primitives:
For optional/heap-allocated mutexes:
PLib_Base Removal
PLib_Baseabstract base class has been removed.PLib_JacobiPolynomialandPLib_HermitJacobiare now value types (not Handle-based):PLib_DoubleJacobiPolynomial Removal
The
PLib_DoubleJacobiPolynomialclass has been completely removed. If you were using it, you'll need to refactor your code to usePLib_JacobiPolynomialdirectly.TopTools_MutexForShapeProvider Removal
The
TopTools_MutexForShapeProviderclass has been removed. Usestd::mutexwith shape providers directly.OSD_MAllocHook Removal
The
OSD_MAllocHookclass and the Draw commandmallochookhave been removed. Use platform-specific memory debugging tools instead (Valgrind, AddressSanitizer, etc.).QANCollection Package Removal
The
QANCollectionpackage (test utilities for collections) has been removed. Use GTest-based tests insrc/*/GTests/directories instead.Transfer_TransferDeadLoop Deprecation
The
Transfer_TransferDeadLoopexception class is deprecated. Dead loop detection now uses local status flags instead of exceptions. The class is kept for backward compatibility but should not be used in new code.StepData_ReadWriteModule::StepType() API Change
The
StepType()method now returnsconst std::string_view&instead ofTCollection_AsciiString:Using Standard Direction Enumerations
New convenient enumerations for standard directions:
Empty String Access
Use the new static methods for efficient empty string access:
Removed Functionality
OSD_MAllocHookclassPLib_BaseclassPLib_DoubleJacobiPolynomialPLib_JacobiPolynomialTopTools_MutexForShapeProviderstd::mutexQANCollectionpackageStandard_Mutex(effectively)std::mutexDeprecated Functionality
ACos,Sin, etc.)std::equivalentsACosApprox()std::acos()Transfer_TransferDeadLoopexceptionPerformance Improvements Summary
constexprand validation #897std::string_view#784Documentation
Extensive documentation improvements including:
Acknowledgments
We thank all contributors who helped make this release possible through their code contributions, bug reports, and testing.
New Contributors
Full Changelog: V8_0_0_rc2...V8_0_0_rc3
This discussion was created from the release V8_0_0_rc3.
Beta Was this translation helpful? Give feedback.
All reactions