ODE 0.16.6 Released

64 views
Skip to first unread message

Oleh Derevenko

unread,
Jan 16, 2025, 6:00:25 PMJan 16
to ode-...@googlegroups.com
Hi All,

So far, I've made 0.16.6 release. I have merged all changes to make/build-files and the recent changes to multi-threaded execution.

Oleh Derevenko

-- Skype with underscore

 




This e-mail may contain privileged and confidential information. If you are not the intended recipient, be aware that any use, disclosure, copying or distribution of this e-mail or any attachments is prohibited. If you have received this e-mail in error, please notify us immediately by returning it to the sender and delete this copy from your system. Thank you.

Vaillancourt

unread,
Jan 17, 2025, 10:43:42 AMJan 17
to ode-users
Thanks, our current plan is to integrate this new version it in our software in 1-2 months at most.

Alexandre Vaillancourt

Oleh Derevenko

unread,
Jan 18, 2025, 6:35:53 AMJan 18
to ode-...@googlegroups.com
While testing the multi-threaded boxes I once had a NULL-pointer exception when the demo application window was in background and I clicked on it to activate. But it was a release build without debug symbols and I could not see what the reason was. And it did not happen anymore after that.


Oleh Derevenko

-- Skype with underscore

 



From: ode-...@googlegroups.com <ode-...@googlegroups.com> on behalf of Vaillancourt <alexandre.vai...@gmail.com>
Sent: Friday, January 17, 2025 17:43
To: ode-users <ode-...@googlegroups.com>
Subject: [ode-users] Re: ODE 0.16.6 Released
 
--
You received this message because you are subscribed to the Google Groups "ode-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ode-users+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ode-users/0dfdcec7-0e6a-4857-a630-9794afb520a9n%40googlegroups.com.

Vaillancourt

unread,
Jan 24, 2025, 2:54:06 PMJan 24
to ode-users
Okay, I've been running a demo in x86 and x64 for several hours, going back to it once in a while and I did not get any issue.

Alexandre Vaillancourt

Leopold Palomo-Avellaneda

unread,
Jan 27, 2025, 1:50:15 PMJan 27
to ode-...@googlegroups.com
Oleh,

El 17/1/25 a les 0:00, 'Oleh Derevenko' via ode-users ha escrit:
> Hi All,
>
> So far, I've made 0.16.6 release. I have merged all changes to make/
> build-files and the recent changes to multi-threaded execution.

I have rebuild 0.16.6 and maybe is not 100 % ABI binary compatible. Here
is the report attached. Let us see if it arrives to the list.


Leopold

--
--
Linux User 152692 GPG: 05F4A7A949A2D9AA
Catalonia
-------------------------------------
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?
compat_report.html

Oleh Derevenko

unread,
Jan 28, 2025, 3:36:46 AMJan 28
to ode-...@googlegroups.com
Hi Leopold,

This thing lists internal symbols that are private in the library. They are visible in ELF format since they are declared "extern" but they, actually, are not the library exports. You should compare only what is declared in public headers under include/ode/

Oleh Derevenko

-- Skype with underscore

 



From: ode-...@googlegroups.com <ode-...@googlegroups.com> on behalf of Leopold Palomo-Avellaneda <l...@alaxarxa.net>
Sent: Monday, January 27, 2025 20:50
To: ode-...@googlegroups.com <ode-...@googlegroups.com>
Subject: Re: [ode-users] ODE 0.16.6 Released
 
[You don't often get email from l...@alaxarxa.net. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
--
You received this message because you are subscribed to the Google Groups "ode-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ode-users+...@googlegroups.com.

Leopold Palomo-Avellaneda

unread,
Jan 28, 2025, 3:46:54 AMJan 28
to ode-...@googlegroups.com
Hi Olev,


El 28/1/25 a les 9:36, 'Oleh Derevenko' via ode-users ha escrit:
[...]
>
> This thing lists internal symbols that are private in the library. They
> are visible in ELF format since they are declared "extern" but they,
> actually, are not the library exports. You should compare only what is
> declared in public headers under include/ode/

So, can I trust that it is binary compatible, right?

I have tested all the debian packages that use ode and work. The only
that has failed has been dart, but it has failed a test.

Cheers,

Oleh Derevenko

unread,
Jan 28, 2025, 3:53:39 AMJan 28
to ode-...@googlegroups.com
If you want to compare, you need to check out the header files from the old release you had, checkout the headers from this new release into another folder, and then perform file by file comparison to see what declarations were added/removed and if these changes would preserve compatibility.

Oleh Derevenko

-- Skype with underscore

 



From: ode-...@googlegroups.com <ode-...@googlegroups.com> on behalf of Leopold Palomo-Avellaneda <l...@alaxarxa.net>
Sent: Tuesday, January 28, 2025 10:46

To: ode-...@googlegroups.com <ode-...@googlegroups.com>
Subject: Re: [ode-users] ODE 0.16.6 Released
[You don't often get email from l...@alaxarxa.net. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]

--
You received this message because you are subscribed to the Google Groups "ode-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ode-users+...@googlegroups.com.

Leopold Palomo-Avellaneda

unread,
Jan 28, 2025, 5:56:26 AMJan 28
to ode-...@googlegroups.com
El 28/1/25 a les 9:53, 'Oleh Derevenko' via ode-users ha escrit:
> If you want to compare, you need to check out the header files from the
> old release you had, checkout the headers from this new release into
> another folder, and then perform file by file comparison to see what
> declarations were added/removed and if these changes would preserve
> compatibility.

Done!!!

I have used abidiff and although it shows removed functions, all are not
exposed public, so I guess it is compatible.

Leopold

--------------------------------------------------------------------

abidiff --drop-private-types --debug-info-dir1 8/usr/lib/debug/
--debug-info-dir2 n/usr/lib/debug/ --headers-dir1 8/usr/include/ode/
--headers-dir2 n/usr/include/ode/
8/usr/lib/x86_64-linux-gnu/libode.so.8.0.2
n/usr/lib/x86_64-linux-gnu/libode.so.8.2.0
Functions changes summary: 10 Removed (2 filtered out), 1 Changed (197
filtered out), 12 Added (2 filtered out) functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

10 Removed functions:

[D] 'function void compute_invM_JT<8>(volatile odeou::atomicord32*,
dReal*, unsigned int, const dReal*, const dxJBodiesItem*, dxBody*
const*, const dReal*)'
{_Z15compute_invM_JTILj8EEvPVjPdjPKdPK13dxJBodiesItemPKP6dxBodyS4_}
[D] 'method bool dxCondvarWakeup::MarkSignaledAllWaiters()'
{_ZN15dxCondvarWakeup22MarkSignaledAllWaitersEv}
[D] 'method bool dxCondvarWakeup::MarkSignaledAllWaitersMeaningful()'

{_ZN15dxCondvarWakeup32MarkSignaledAllWaitersMeaningfulEPNS_12dxWaiterInfoE}
[D] 'method bool dxCondvarWakeup::MarkSignaledFirstWaiter()'
{_ZN15dxCondvarWakeup23MarkSignaledFirstWaiterEv}
[D] 'method bool
dxCondvarWakeup::MarkSignaledFirstWaiterMeaningful()'
{_ZN15dxCondvarWakeup33MarkSignaledFirstWaiterMeaningfulEPNS_12dxWaiterInfoE}
[D] 'method void
dxCondvarWakeup::RegisterWaiterInList(dxCondvarWakeup::dxWaiterInfo*)'
{_ZN15dxCondvarWakeup20RegisterWaiterInListEPNS_12dxWaiterInfoE}
[D] 'method void
dxCondvarWakeup::UnregisterWaiterFromList(dxCondvarWakeup::dxWaiterInfo*)'
{_ZN15dxCondvarWakeup24UnregisterWaiterFromListEPNS_12dxWaiterInfoE}
[D] 'function unsigned int dxEstimateQuickStepMaxCallCount(unsigned
int, unsigned int)' {_Z31dxEstimateQuickStepMaxCallCountjj}
[D] 'function unsigned int dxEstimateStepMaxCallCount(unsigned int,
unsigned int)' {_Z26dxEstimateStepMaxCallCountjj}
[D] 'function bool dxProcessIslands(dxWorld*, const
dxWorldProcessIslandsInfo&, dReal, dstepper_fn_t,
dmaxcallcountestimate_fn_t)'
{_Z16dxProcessIslandsP7dxWorldRK25dxWorldProcessIslandsInfodPFvPK30dxStepperProcessingCallContextEPFjjjE}

12 Added functions:

[A] 'function void compute_invM_JT<21>(volatile odeou::atomicord32*,
dReal*, unsigned int, const dReal*, const dxJBodiesItem*, dxBody*
const*, const dReal*)'
{_Z15compute_invM_JTILj21EEvPVjPdjPKdPK13dxJBodiesItemPKP6dxBodyS4_}
[A] 'function void dJointAddPUTorques(dJointID, dReal, dReal)'
{dJointAddPUTorques}
[A] 'function void dWorldGetSteppingThreadingParameters(dWorldID,
dWorldSteppingThreadingParameters*)'
{dWorldGetSteppingThreadingParameters}
[A] 'function void dWorldSetSteppingThreadingParameters(dWorldID,
const dWorldSteppingThreadingParameters*)'
{dWorldSetSteppingThreadingParameters}
[A] 'method void dxCondvarWakeup::RegisterWaiterInList()'
{_ZN15dxCondvarWakeup20RegisterWaiterInListEv}
[A] 'method void dxCondvarWakeup::UnregisterWaiterFromList(bool)'
{_ZN15dxCondvarWakeup24UnregisterWaiterFromListEb}
[A] 'function unsigned int dxEstimateQuickStepMaxCallCount(unsigned
int, unsigned int, unsigned int)'
{_Z31dxEstimateQuickStepMaxCallCountjjj}
[A] 'function unsigned int dxEstimateStepMaxCallCount(unsigned int,
unsigned int, unsigned int)' {_Z26dxEstimateStepMaxCallCountjjj}
[A] 'method void dxJointUniversal::buildFirstBodyTorqueVector(dReal*,
dReal, dReal)' {_ZN16dxJointUniversal26buildFirstBodyTorqueVectorEPddd}
[A] 'function bool dxProcessIslands(dxWorld*, const
dxWorldProcessIslandsInfo&, dReal, dstepper_fn_t,
dmaxcallcountestimate_fn_t)'
{_Z16dxProcessIslandsP7dxWorldRK25dxWorldProcessIslandsInfodPFvPK30dxStepperProcessingCallContextEPFjjjjE}
[A] 'method void dxtemplateJobListThreadedHandler<dxCondvarWakeup,
dxtemplateJobListContainer<dxtemplateThreadedLull<dxCondvarWakeup,
dxOUAtomicsProvider, false>, dxMutexMutex, dxOUAtomicsProvider>
>::ActivateAnIdleThread()'
{_ZN32dxtemplateJobListThreadedHandlerI15dxCondvarWakeup26dxtemplateJobListContainerI22dxtemplateThreadedLullIS0_19dxOUAtomicsProviderLb0EE12dxMutexMutexS3_EE20ActivateAnIdleThreadEv}
[A] 'method void dxtemplateJobListThreadedHandler<dxCondvarWakeup,
dxtemplateJobListContainer<dxtemplateThreadedLull<dxCondvarWakeup,
dxOUAtomicsProvider, false>, dxMutexMutex, dxOUAtomicsProvider>
>::PerformJobProcessingSession()'
{_ZN32dxtemplateJobListThreadedHandlerI15dxCondvarWakeup26dxtemplateJobListContainerI22dxtemplateThreadedLullIS0_19dxOUAtomicsProviderLb0EE12dxMutexMutexS3_EE27PerformJobProcessingSessionEv}

1 function with some indirect sub-type change:

[C] 'function void addObjectToList(dObject*, dObject**)' at
ode.cpp:52:1 has some indirect sub-type changes:
parameter 1 of type 'dObject*' has sub-type changes:
in pointed to type 'struct dObject' at objects.h:72:1:
type size hasn't changed
no member function changes (3 filtered);
1 data member changes (2 filtered):
type of 'dxWorld* world' changed:
in pointed to type 'struct dxWorld' at objects.h:165:1:
type size changed from 1920 to 1984 (in bits)
no member function changes (4 filtered);
2 data member insertions:
'unsigned int stepping_max_threads', at offset 1216 (in
bits) at objects.h:175:1
'unsigned int solving_max_threads', at offset 1248 (in
bits) at objects.h:176:1
7 data member changes:
type of 'dxBody* firstbody' changed:
in pointed to type 'struct dxBody' at objects.h:135:1:
type size hasn't changed
1 base class change:
'struct dObject' at objects.h:72:1 changed:
details are being reported
'dxStepWorkingMemory* wmem' offset changed from 1216 to
1280 (in bits) (by +64 bits)
'dxQuickStepParameters qs' offset changed from 1280 to
1344 (in bits) (by +64 bits)
'dxContactParameters contactp' offset changed from 1408
to 1472 (in bits) (by +64 bits)
'dxDampingParameters dampingp' offset changed from 1536
to 1600 (in bits) (by +64 bits)
'dReal max_angular_speed' offset changed from 1792 to
1856 (in bits) (by +64 bits)
'void* userdata' offset changed from 1856 to 1920 (in
bits) (by +64 bits)
Reply all
Reply to author
Forward
0 new messages