[shmem] New Shmem snapshot available in boost vault

Hi to all! After some busy weeks, I've been working again on Shmem library. This is what you get in the new snapshot I've just placed in Boost Vault: Documentation: -> Ported all documentation to QuickBook. Very little has changed and the real Documentation work starts now. But Quickbook allows direct source file inclusion for examples, syntax highlighting and some other nice features. Suggestions are welcome. -> Apart from the documentation zip in boost.vault, I've put the documentation online in this address (there are banners, but nothing is free...): http://ice.prohosting.com/newfunk/boost/libs/shmem/index.html Bugfixes: -> shmem set-map family iterator bugfix in operator->() -> shmem vector fix in size() -> Added some missing typedefs in STL-like containers New features: -> shmem assoc_vector has died, long live to flat_set/flat_multiset/flat_map/flat_multimap! Based in an ordered vector, the flat associative ordered container family is born as an extension of Loki's AssocVector. shmem_assoc_vector.hpp is provided for backwards compatibility. If you don't like flat_* name, suggestions are welcome for this new classes. Any comment, suggestion or help is welcome. Regards, /Ion

Hi Ion, I tried to compile the new version of shmem and having been getting the following error message. I tried to build the example that you have provided process_a_example.cpp. I am building it using g++ $ g++ --version g++ (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The error message that is being generated is as following: g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../util/include -I../../portable -I../../architecture/include -g -O2 -c -o process_a_example.o `test -f 'process_a_example.cpp' || echo './'`process_a_example.cpp In file included from ../../portable/boost/shmem/containers/shmem_flat_tree.hpp:72, from ../../portable/boost/shmem/containers/shmem_flat_map.hpp:54, from ../../portable/boost/shmem/detail/shmem_flat_map_index.hpp:6, from ../../portable/boost/shmem/detail/shmem_named_object_algo.hpp:27, from ../../portable/boost/shmem/shmem_node_allocator.hpp:24, from ../../portable/boost/shmem/detail/shmem_named_object_impl.hpp:22, from ../../portable/boost/shmem/shmem_named_shared_object.hpp:18, from process_a_example.cpp:14: ../../portable/boost/shmem/containers/shmem_vector.hpp:489: cannot declare parameter `position' to be of type `boost::shmem::vector<T, A>::iterator' ../../portable/boost/shmem/containers/shmem_vector.hpp:489: because the following virtual functions are abstract: ../../portable/boost/shmem/containers/shmem_vector.hpp:252: boost::shmem::vector<T, A>::iterator boost::shmem::operator+(A::difference_type, const boost::shmem::vector<T, A>::iterator&) ../../portable/boost/shmem/containers/shmem_vector.hpp:498: cannot declare parameter `pos' to be of type `boost::shmem::vector<T, A>::iterator' .... I am trying to figure out why this is causing a problem. But, just thought of letting you know about this. Thank you, Nitin On 5/7/05, Ion Gaztañaga <ion_g_m@terra.es> wrote:
Hi to all!
After some busy weeks, I've been working again on Shmem library. This is what you get in the new snapshot I've just placed in Boost Vault:
Documentation:
-> Ported all documentation to QuickBook. Very little has changed and the real Documentation work starts now. But Quickbook allows direct source file inclusion for examples, syntax highlighting and some other nice features. Suggestions are welcome.
-> Apart from the documentation zip in boost.vault, I've put the documentation online in this address (there are banners, but nothing is free...): http://ice.prohosting.com/newfunk/boost/libs/shmem/index.html
Bugfixes:
-> shmem set-map family iterator bugfix in operator->() -> shmem vector fix in size() -> Added some missing typedefs in STL-like containers
New features:
-> shmem assoc_vector has died, long live to flat_set/flat_multiset/flat_map/flat_multimap! Based in an ordered vector, the flat associative ordered container family is born as an extension of Loki's AssocVector. shmem_assoc_vector.hpp is provided for backwards compatibility. If you don't like flat_* name, suggestions are welcome for this new classes.
Any comment, suggestion or help is welcome. Regards,
/Ion
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Nitin Motgi

Hi Nitin, This error is very strange since Shmem has no single virtual function call. I tested Shmem with Visual 7.1, Suse 9.2/gcc-3.4.3 and Suse 9.2/gcc-3.3.4 with no errors. I have no clue on what's going on. Previous Shmem snapshots compiled fine in your system? If you guess what's going wrong, please tell me. Thanks and regards, /Ion ----- Original Message ----- From: "nitin motgi" <nitin.motgi@gmail.com> To: <boost@lists.boost.org> Sent: Sunday, May 08, 2005 2:14 AM Subject: Re: [boost] [shmem] New Shmem snapshot available in boost vault
Hi Ion,
I tried to compile the new version of shmem and having been getting the following error message.
I tried to build the example that you have provided process_a_example.cpp. I am building it using g++
$ g++ --version g++ (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The error message that is being generated is as following:
g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../util/include -I../../portable -I../../architecture/include -g -O2 -c -o process_a_example.o `test -f 'process_a_example.cpp' || echo './'`process_a_example.cpp In file included from ../../portable/boost/shmem/containers/shmem_flat_tree.hpp:72, from ../../portable/boost/shmem/containers/shmem_flat_map.hpp:54, from ../../portable/boost/shmem/detail/shmem_flat_map_index.hpp:6, from ../../portable/boost/shmem/detail/shmem_named_object_algo.hpp:27, from ../../portable/boost/shmem/shmem_node_allocator.hpp:24, from ../../portable/boost/shmem/detail/shmem_named_object_impl.hpp:22, from ../../portable/boost/shmem/shmem_named_shared_object.hpp:18, from process_a_example.cpp:14: ../../portable/boost/shmem/containers/shmem_vector.hpp:489: cannot declare parameter `position' to be of type `boost::shmem::vector<T, A>::iterator' ../../portable/boost/shmem/containers/shmem_vector.hpp:489: because the following virtual functions are abstract: ../../portable/boost/shmem/containers/shmem_vector.hpp:252: boost::shmem::vector<T, A>::iterator boost::shmem::operator+(A::difference_type, const boost::shmem::vector<T, A>::iterator&) ../../portable/boost/shmem/containers/shmem_vector.hpp:498: cannot declare parameter `pos' to be of type `boost::shmem::vector<T, A>::iterator' ....
I am trying to figure out why this is causing a problem. But, just thought of letting you know about this.
Thank you, Nitin
On 5/7/05, Ion Gaztañaga <ion_g_m@terra.es> wrote:
Hi to all!
After some busy weeks, I've been working again on Shmem library. This is what you get in the new snapshot I've just placed in Boost Vault:
Documentation:
-> Ported all documentation to QuickBook. Very little has changed and the real Documentation work starts now. But Quickbook allows direct source file inclusion for examples, syntax highlighting and some other nice features. Suggestions are welcome.
-> Apart from the documentation zip in boost.vault, I've put the documentation online in this address (there are banners, but nothing is free...): http://ice.prohosting.com/newfunk/boost/libs/shmem/index.html
Bugfixes:
-> shmem set-map family iterator bugfix in operator->() -> shmem vector fix in size() -> Added some missing typedefs in STL-like containers
New features:
-> shmem assoc_vector has died, long live to flat_set/flat_multiset/flat_map/flat_multimap! Based in an ordered vector, the flat associative ordered container family is born as an extension of Loki's AssocVector. shmem_assoc_vector.hpp is provided for backwards compatibility. If you don't like flat_* name, suggestions are welcome for this new classes.
Any comment, suggestion or help is welcome. Regards,
/Ion
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Nitin Motgi

Hi Ion, The zip file shmem.2005-04-11.zip in vault had compiled without errors. I don't see any virtual function calls either. I will let you know. My first guess has been that it is referring iterator other than that you have defined. Thank you, Nitin On 5/8/05, Ion Gaztañaga <ion_g_m@terra.es> wrote:
Hi Nitin,
This error is very strange since Shmem has no single virtual function call. I tested Shmem with Visual 7.1, Suse 9.2/gcc-3.4.3 and Suse 9.2/gcc-3.3.4 with no errors. I have no clue on what's going on. Previous Shmem snapshots compiled fine in your system?
If you guess what's going wrong, please tell me. Thanks and regards,
/Ion
----- Original Message ----- From: "nitin motgi" <nitin.motgi@gmail.com> To: <boost@lists.boost.org> Sent: Sunday, May 08, 2005 2:14 AM Subject: Re: [boost] [shmem] New Shmem snapshot available in boost vault
Hi Ion,
I tried to compile the new version of shmem and having been getting the following error message.
I tried to build the example that you have provided process_a_example.cpp. I am building it using g++
$ g++ --version g++ (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The error message that is being generated is as following:
g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../util/include -I../../portable -I../../architecture/include -g -O2 -c -o process_a_example.o `test -f 'process_a_example.cpp' || echo './'`process_a_example.cpp In file included from ../../portable/boost/shmem/containers/shmem_flat_tree.hpp:72, from ../../portable/boost/shmem/containers/shmem_flat_map.hpp:54, from ../../portable/boost/shmem/detail/shmem_flat_map_index.hpp:6, from ../../portable/boost/shmem/detail/shmem_named_object_algo.hpp:27, from ../../portable/boost/shmem/shmem_node_allocator.hpp:24, from ../../portable/boost/shmem/detail/shmem_named_object_impl.hpp:22, from ../../portable/boost/shmem/shmem_named_shared_object.hpp:18, from process_a_example.cpp:14: ../../portable/boost/shmem/containers/shmem_vector.hpp:489: cannot declare parameter `position' to be of type `boost::shmem::vector<T, A>::iterator' ../../portable/boost/shmem/containers/shmem_vector.hpp:489: because the following virtual functions are abstract: ../../portable/boost/shmem/containers/shmem_vector.hpp:252: boost::shmem::vector<T, A>::iterator boost::shmem::operator+(A::difference_type, const boost::shmem::vector<T, A>::iterator&) ../../portable/boost/shmem/containers/shmem_vector.hpp:498: cannot declare parameter `pos' to be of type `boost::shmem::vector<T, A>::iterator' ....
I am trying to figure out why this is causing a problem. But, just thought of letting you know about this.
Thank you, Nitin
On 5/7/05, Ion Gaztañaga <ion_g_m@terra.es> wrote:
Hi to all!
After some busy weeks, I've been working again on Shmem library. This is what you get in the new snapshot I've just placed in Boost Vault:
Documentation:
-> Ported all documentation to QuickBook. Very little has changed and the real Documentation work starts now. But Quickbook allows direct source file inclusion for examples, syntax highlighting and some other nice features. Suggestions are welcome.
-> Apart from the documentation zip in boost.vault, I've put the documentation online in this address (there are banners, but nothing is free...): http://ice.prohosting.com/newfunk/boost/libs/shmem/index.html
Bugfixes:
-> shmem set-map family iterator bugfix in operator->() -> shmem vector fix in size() -> Added some missing typedefs in STL-like containers
New features:
-> shmem assoc_vector has died, long live to flat_set/flat_multiset/flat_map/flat_multimap! Based in an ordered vector, the flat associative ordered container family is born as an extension of Loki's AssocVector. shmem_assoc_vector.hpp is provided for backwards compatibility. If you don't like flat_* name, suggestions are welcome for this new classes.
Any comment, suggestion or help is welcome. Regards,
/Ion
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Nitin Motgi
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Nitin Motgi

Ion, I've just started playing with this library. Very nice work, and the documentation is very complete and well written. A couple of things for the next release: * Some parts depend on unordered-snapshot.tar.gz in the vault * Some compiler warnings from g++ 3.3.4 on Linux. The fixes are as suggested by the compiler: g++ -pthread -g -I/home/ietdev/tools/linux-i686/boost-1.32.0 -I../../../.. -I/home/nbde52d/src/unordered -D_REENTRANT -L/home/ietdev/tools/linux-i686/boost-1.32.0/lib -Wl,-rpath,/home/ietdev/tools/linux-i686/boost-1.32.0/lib -o ../../bin/linux/test_shmem_tree_test.out ../../test/shmem_tree_test.cpp -lboost_thread-gcc-mt In file included from ../../../../boost/shmem/containers/shmem_set.hpp:53, from ../../test/shmem_tree_test.cpp:20: ../../../../boost/shmem/containers/shmem_tree.hpp:496: warning: lookup of ` reference' finds `typedef typename boost::shmem::detail::rb_tree_base<Value, Alloc>::value_ref_t boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::reference' ../../../../boost/shmem/containers/shmem_tree.hpp:496: warning: instead of ` boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::const_iterator::reference' from dependent base class ../../../../boost/shmem/containers/shmem_tree.hpp:496: warning: (use `typename const_iterator::reference' if that's what you meant) ../../../../boost/shmem/containers/shmem_tree.hpp:499: warning: lookup of ` pointer' finds `typedef typename boost::shmem::detail::rb_tree_base<Value, Alloc>::value_ptr_t boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::pointer' ../../../../boost/shmem/containers/shmem_tree.hpp:499: warning: instead of ` boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::const_iterator::pointer' from dependent base class ../../../../boost/shmem/containers/shmem_tree.hpp:499: warning: (use `typename const_iterator::pointer' if that's what you meant) ../../../../boost/shmem/containers/shmem_tree.hpp: In member function `typename boost::shmem::detail::rb_tree_base<Value, Alloc>::value_ptr_t boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::const_iterator::operator->() const': ../../../../boost/shmem/containers/shmem_tree.hpp:500: warning: lookup of ` pointer' finds `typedef typename boost::shmem::detail::rb_tree_base<Value, Alloc>::value_ptr_t boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::pointer' ../../../../boost/shmem/containers/shmem_tree.hpp:500: warning: instead of ` boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::const_iterator::pointer' from dependent base class ../../../../boost/shmem/containers/shmem_tree.hpp:500: warning: (use `typename const_iterator::pointer' if that's what you meant) -- Caleb Epstein caleb dot epstein at gmail dot com

Thanks for the props! I will try to use gcc 3.3 in linux to detect this type of warnings. It is just that I always rely (wrongly) on typedef inheritance when using templates, so I will have a look. For the next snapshot I plan better documentation and shmem::deque. However, my main concern is to have a portable shared memory management between posix (shm_open, shm_ulink, shm_close) and Win32. For the moment I have no solution to this, and I have looked into several open source libraries to take ideas, but apart from using memory mapped files, I don't see any solution. Does anyone know a portable shared memory implementation that behaves equally (I mean, when creating and destroying) in Win32 and Unix? Regards, Ion ----- Original Message ----- From: "Caleb Epstein" <caleb.epstein@gmail.com> To: <boost@lists.boost.org> Sent: Tuesday, May 31, 2005 8:44 PM Subject: Re: [boost] [shmem] New Shmem snapshot available in boost vault
Ion,
I've just started playing with this library. Very nice work, and the documentation is very complete and well written. A couple of things for the next release:
* Some parts depend on unordered-snapshot.tar.gz in the vault * Some compiler warnings from g++ 3.3.4 on Linux. The fixes are as suggested by the compiler:
g++ -pthread -g -I/home/ietdev/tools/linux-i686/boost-1.32.0 -I../../../.. -I/home/nbde52d/src/unordered -D_REENTRANT -L/home/ietdev/tools/linux-i686/boost-1.32.0/lib -Wl,-rpath,/home/ietdev/tools/linux-i686/boost-1.32.0/lib -o ../../bin/linux/test_shmem_tree_test.out ../../test/shmem_tree_test.cpp -lboost_thread-gcc-mt In file included from ../../../../boost/shmem/containers/shmem_set.hpp:53, from ../../test/shmem_tree_test.cpp:20: ../../../../boost/shmem/containers/shmem_tree.hpp:496: warning: lookup of ` reference' finds `typedef typename boost::shmem::detail::rb_tree_base<Value, Alloc>::value_ref_t boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::reference' ../../../../boost/shmem/containers/shmem_tree.hpp:496: warning: instead of ` boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::const_iterator::reference' from dependent base class ../../../../boost/shmem/containers/shmem_tree.hpp:496: warning: (use `typename const_iterator::reference' if that's what you meant) ../../../../boost/shmem/containers/shmem_tree.hpp:499: warning: lookup of ` pointer' finds `typedef typename boost::shmem::detail::rb_tree_base<Value, Alloc>::value_ptr_t boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::pointer' ../../../../boost/shmem/containers/shmem_tree.hpp:499: warning: instead of ` boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::const_iterator::pointer' from dependent base class ../../../../boost/shmem/containers/shmem_tree.hpp:499: warning: (use `typename const_iterator::pointer' if that's what you meant) ../../../../boost/shmem/containers/shmem_tree.hpp: In member function `typename boost::shmem::detail::rb_tree_base<Value, Alloc>::value_ptr_t boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::const_iterator::operator->() const': ../../../../boost/shmem/containers/shmem_tree.hpp:500: warning: lookup of ` pointer' finds `typedef typename boost::shmem::detail::rb_tree_base<Value, Alloc>::value_ptr_t boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::pointer' ../../../../boost/shmem/containers/shmem_tree.hpp:500: warning: instead of ` boost::shmem::detail::rb_tree<Key, Value, KeyOfValue, Compare, Alloc>::const_iterator::pointer' from dependent base class ../../../../boost/shmem/containers/shmem_tree.hpp:500: warning: (use `typename const_iterator::pointer' if that's what you meant)
-- Caleb Epstein caleb dot epstein at gmail dot com
participants (3)
-
Caleb Epstein
-
Ion Gaztañaga
-
nitin motgi