[serialization] array problems and patch (cont'd)

...and I'm seeing the following array-related problems: testing.capture-output ..\..\..\bin.v2\libs\serialization\test\test_exported_array_binary_archive.test\msvc-7.1\debug\test_exported_array_binary_archive.run ====== BEGIN OUTPUT ====== Assertion failed: NULL != bpos_ptr, file ..\..\..\boost/archive/detail/oserializer.hpp, line 419 testing.capture-output ..\..\..\bin.v2\libs\serialization\test\test_exported_array_binary_archive_dll.test\msvc-7.1\debug\test_exported_array_binary_archive_dll.run ====== BEGIN OUTPUT ====== Assertion failed: NULL != bpos_ptr, file ..\..\..\boost/archive/detail/oserializer.hpp, line 419 Not to mention quite a few vc6-bug-specific problems (just about every test fails with this error): test_exported.cpp ..\..\..\boost/serialization/array.hpp(69) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal These problems are making it hard for me to know that I haven't broken anything. -- Dave Abrahams Boost Consulting www.boost-consulting.com

You might check with Mattias. He's been checking in his upgrades for array serialization into the HEAD. (I havn't checked in anything there in months). I perused CVS and gave a cursory examination to the changes and didn't see anything obviously out of whack. I also presume that you're using the version of test_exported on the branch which fails due to the header ordering issue you're working on. That is, this version is designed to expose the bug you're currently fixing. So maybe its not suppose to work. Note that the errors below usually (I think) indicate failed code instantiation which occurs when export header order requirement isn't respected. So try using the test_exported on the main trunk and make sure things work. Then try the one on the branch - it should fail. Robert Ramey David Abrahams wrote:
...and I'm seeing the following array-related problems:
testing.capture-output
..\..\..\bin.v2\libs\serialization\test\test_exported_array_binary_archive.test\msvc-7.1\debug\test_exported_array_binary_archive.run ====== BEGIN OUTPUT ====== Assertion failed: NULL != bpos_ptr, file ..\..\..\boost/archive/detail/oserializer.hpp, line 419
testing.capture-output
..\..\..\bin.v2\libs\serialization\test\test_exported_array_binary_archive_dll.test\msvc-7.1\debug\test_exported_array_binary_archive_dll.run ====== BEGIN OUTPUT ====== Assertion failed: NULL != bpos_ptr, file ..\..\..\boost/archive/detail/oserializer.hpp, line 419
Not to mention quite a few vc6-bug-specific problems (just about every test fails with this error):
test_exported.cpp ..\..\..\boost/serialization/array.hpp(69) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
These problems are making it hard for me to know that I haven't broken anything.

"Robert Ramey" <ramey@rrsd.com> writes:
You might check with Mattias. He's been checking in his upgrades for array serialization into the HEAD. (I havn't checked in anything there in months). I perused CVS and gave a cursory examination to the changes and didn't see anything obviously out of whack.
No, his code's fine.
I also presume that you're using the version of test_exported on the branch which fails due to the header ordering issue you're working on.
Yep.
That is, this version is designed to expose the bug you're currently fixing. So maybe its not suppose to work.
Note that the errors below usually (I think) indicate failed code instantiation which occurs when export header order requirement isn't respected.
Yeah, it works about 80% of the time, but vc-8 seems to have some very strange bug w.r.t. instantiating function signatures during overload resolution, and sometimes it just misses a few... uh, nope, I forgot to register one of the archives. It all works now. Thanks for listening. -- Dave Abrahams Boost Consulting www.boost-consulting.com

David Abrahams <dave@boost-consulting.com> writes:
Not to mention quite a few vc6-bug-specific problems (just about every test fails with this error):
test_exported.cpp ..\..\..\boost/serialization/array.hpp(69) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
This one *was* there before I came to the code, AFAICT, though. vc6 gives the same error for this: template <class T, int N> void f(T (&)[N]) { } Please confirm that this stuff never worked with vc6. -- Dave Abrahams Boost Consulting www.boost-consulting.com

David Abrahams wrote:
David Abrahams <dave@boost-consulting.com> writes:
Not to mention quite a few vc6-bug-specific problems (just about every test fails with this error):
test_exported.cpp ..\..\..\boost/serialization/array.hpp(69) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
This one *was* there before I came to the code, AFAICT, though.
vc6 gives the same error for this:
template <class T, int N> void f(T (&)[N]) { }
Please confirm that this stuff never worked with vc6.
http://engineering.meta-comm.com/boost-regression/CVS-RC_1_34_0/developer/se... shows both test_exported and test_array passing for all archive types. http://boost.cvs.sourceforge.net/boost/boost/boost/serialization/array.hpp?v... ..\..\..\boost/serialization/array.hpp is a new header. Its was checked in only three weeks ago - I don't know if its been tested on VC 6.5 Robert Ramey

David Abrahams ha escrito:
David Abrahams <dave@boost-consulting.com> writes:
Not to mention quite a few vc6-bug-specific problems (just about every test fails with this error):
test_exported.cpp ..\..\..\boost/serialization/array.hpp(69) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
This one *was* there before I came to the code, AFAICT, though.
vc6 gives the same error for this:
template <class T, int N> void f(T (&)[N]) { }
Please confirm that this stuff never worked with vc6.
This problem first appeared when Mattias Troyer merged his work on the branch fast_array_serialization to the trunk, on Apr 30th, and it's causing every (or nearly every) file which includes some of Boost.Serialization to crash under MSVC 6.5. I guess the solution is to #ifdef the stuff out for this compiler, but I don't know if this could have unforeseen implications (my hunch is it won't, though, but Mattias us surely in a better position to assess this.) Joaquín M López Muñoz Telefónica, Investigación y Desarrollo

On May 22, 2006, at 8:17 AM, Joaquín Mª López Muñoz wrote:
David Abrahams ha escrito:
David Abrahams <dave@boost-consulting.com> writes:
Not to mention quite a few vc6-bug-specific problems (just about every test fails with this error):
test_exported.cpp ..\..\..\boost/serialization/array.hpp(69) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
This one *was* there before I came to the code, AFAICT, though.
vc6 gives the same error for this:
template <class T, int N> void f(T (&)[N]) { }
Please confirm that this stuff never worked with vc6.
This problem first appeared when Mattias Troyer merged his work on the branch fast_array_serialization to the trunk, on Apr 30th, and it's causing every (or nearly every) file which includes some of Boost.Serialization to crash under MSVC 6.5. I guess the solution is to #ifdef the stuff out for this compiler, but I don't know if this could have unforeseen implications (my hunch is it won't, though, but Mattias us surely in a better position to assess this.)
I know a workaround and will implement it tomorrow. Matthias

On May 22, 2006, at 4:51 PM, Matthias Troyer wrote:
On May 22, 2006, at 8:17 AM, Joaquín Mª López Muñoz wrote:
David Abrahams ha escrito:
David Abrahams <dave@boost-consulting.com> writes:
Not to mention quite a few vc6-bug-specific problems (just about every test fails with this error):
test_exported.cpp ..\..\..\boost/serialization/array.hpp(69) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
This one *was* there before I came to the code, AFAICT, though.
vc6 gives the same error for this:
template <class T, int N> void f(T (&)[N]) { }
Please confirm that this stuff never worked with vc6.
This problem first appeared when Mattias Troyer merged his work on the branch fast_array_serialization to the trunk, on Apr 30th, and it's causing every (or nearly every) file which includes some of Boost.Serialization to crash under MSVC 6.5. I guess the solution is to #ifdef the stuff out for this compiler, but I don't know if this could have unforeseen implications (my hunch is it won't, though, but Mattias us surely in a better position to assess this.)
I know a workaround and will implement it tomorrow.
Matthias
The workaround is now applied. The new version makes use of the array- serialization dispatch used in 1.34, but uses array wrappers. Can someone please test this with MSVC? Matthias

Matthias Troyer ha escrito:
On May 22, 2006, at 4:51 PM, Matthias Troyer wrote:
On May 22, 2006, at 8:17 AM, Joaquín Mª López Muñoz wrote:
[...]
This problem first appeared when Mattias Troyer merged his work on the branch fast_array_serialization to the trunk, on Apr 30th, and it's causing every (or nearly every) file which includes some of Boost.Serialization to crash under MSVC 6.5. I guess the solution is to #ifdef the stuff out for this compiler, but I don't know if this could have unforeseen implications (my hunch is it won't, though, but Mattias us surely in a better position to assess this.)
I know a workaround and will implement it tomorrow.
Matthias
The workaround is now applied. The new version makes use of the array- serialization dispatch used in 1.34, but uses array wrappers. Can someone please test this with MSVC?
Hello Matthias, I can confirm that your applied patch makes some serialization-based code that used to work do work again under MSVC 6.5, no "zero-sized array" errors anymore. Is there any specific test case you want me to try focusing on array-specific issues? Thank you, Joaquín M López Muñoz Telefónica, Investigación y Desarrollo

On May 23, 2006, at 5:36 PM, Joaquín Mª López Muñoz wrote:
Matthias Troyer ha escrito:
On May 22, 2006, at 4:51 PM, Matthias Troyer wrote:
On May 22, 2006, at 8:17 AM, Joaquín Mª López Muñoz wrote:
[...]
This problem first appeared when Mattias Troyer merged his work on the branch fast_array_serialization to the trunk, on Apr 30th, and it's causing every (or nearly every) file which includes some of Boost.Serialization to crash under MSVC 6.5. I guess the solution is to #ifdef the stuff out for this compiler, but I don't know if this could have unforeseen implications (my hunch is it won't, though, but Mattias us surely in a better position to assess this.)
I know a workaround and will implement it tomorrow.
Matthias
The workaround is now applied. The new version makes use of the array- serialization dispatch used in 1.34, but uses array wrappers. Can someone please test this with MSVC?
Hello Matthias,
I can confirm that your applied patch makes some serialization- based code that used to work do work again under MSVC 6.5, no "zero-sized array" errors anymore. Is there any specific test case you want me to try focusing on array-specific issues?
It's good that the zero-sized array problem is now solved. As long as Robert wants to support MSVC 6.5 I want to make sure that my changes do not break anything that worked before. Since the regression tests still run on RC_1_34_0 I can't see what other things might be broken. I would appreciate if you inform me in case that see anything that is broken for MSVC due to my changes. Matthias

Matthias Troyer ha escrito:
On May 23, 2006, at 5:36 PM, Joaquín Mª López Muñoz wrote:
Matthias Troyer ha escrito:
The workaround is now applied. The new version makes use of the array- serialization dispatch used in 1.34, but uses array wrappers. Can someone please test this with MSVC?
Hello Matthias,
I can confirm that your applied patch makes some serialization- based code that used to work do work again under MSVC 6.5, no "zero-sized array" errors anymore. Is there any specific test case you want me to try focusing on array-specific issues?
It's good that the zero-sized array problem is now solved. As long as Robert wants to support MSVC 6.5 I want to make sure that my changes do not break anything that worked before. Since the regression tests still run on RC_1_34_0 I can't see what other things might be broken. I would appreciate if you inform me in case that see anything that is broken for MSVC due to my changes.
I'll certainly do. Thank you for your quick response. Best regards, Joaquín M López Muñoz Telefónica, Investigación y Desarrollo

On May 22, 2006, at 12:45 AM, David Abrahams wrote:
...and I'm seeing the following array-related problems:
testing.capture-output ..\..\..\bin.v2\libs\serialization\test \test_exported_array_binary_archive.test\msvc-7.1\debug \test_exported_array_binary_archive.run ====== BEGIN OUTPUT ====== Assertion failed: NULL != bpos_ptr, file ..\..\..\boost/archive/detail/oserializer.hpp, line 419
testing.capture-output ..\..\..\bin.v2\libs\serialization\test \test_exported_array_binary_archive_dll.test\msvc-7.1\debug \test_exported_array_binary_archive_dll.run ====== BEGIN OUTPUT ====== Assertion failed: NULL != bpos_ptr, file ..\..\..\boost/archive/detail/oserializer.hpp, line 419
In my experience these are typical header ordering problems
Not to mention quite a few vc6-bug-specific problems (just about every test fails with this error):
test_exported.cpp ..\..\..\boost/serialization/array.hpp(69) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
This should be fixed now.
These problems are making it hard for me to know that I haven't broken anything.
participants (5)
-
David Abrahams
-
Joaquín Mª López Muñoz
-
Matthias Troyer
-
Matthias Troyer
-
Robert Ramey