[ANN] вышел Boost 1.36.0
От: jazzer Россия Skype: enerjazzer
Дата: 13.08.08 01:26
Оценка: 69 (9)
еще официально не анонсирован, правда.

качать здесь:
https://sourceforge.net/project/showfiles.php?group_id=7586&release_id=619445&abmode=1

что изменилось, пока можно увидеть здесь:
http://beta.boost.org/users/history/version_1_36_0
(когда обновится основной сайт, будет работать ссылка http://www.boost.org/users/history/version_1_36_0 и появится документация для этой версии)

на всякий случай перепечатываю здесь:

Version 1.36.0


August 12th, 2008 12:00 GMT

New Libraries


Accumulators:

Framework for incremental calculation, and collection of statistical accumulators, from Eric Niebler.

Exception:

A library for transporting of arbitrary data in exception objects, and transporting of exceptions between threads, from Emil Dotchevski.

Units:

Zero-overhead dimensional analysis and unit/quantity manipulation and conversion, from Matthias Schabel and Steven Watanabe

Unordered:

Unordered associative containers, from Daniel James.

Updated Libraries


Asio:

o Added support for serial ports.
o Added support for UNIX domain sockets.
o Added support for raw sockets and ICMP.
o Added wrappers for POSIX stream-oriented file descriptors (excluding regular files).
o Added wrappers for Windows stream-oriented HANDLEs such as named pipes (requires HANDLEs that work with I/O completion ports).
o Added wrappers for Windows random-access HANDLEs such as files (requires HANDLEs that work with I/O completion ports).
o Added support for reactor-style operations (i.e. they report readiness but perform no I/O) using a new null_buffers type.
o Added an iterator type for bytewise traversal of buffer sequences.
o Added new read_until() and async_read_until() overloads that take a user-defined function object for locating message boundaries.
o Added an experimental two-lock queue (enabled by defining BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) that may provide better io_service scalability across many processors.
o Various fixes, performance improvements, and more complete coverage of the custom memory allocation support.

Assign:

list_of() (and its variants) now has overloaded comparison operators. This allows you to write test code such as BOOST_CHECK_EQUAL(my_container,list_of(2)(3)(4)(5));.

Foreach:

BOOST_FOREACH macro for easily iterating over the elements of a sequence, from Eric Niebler.
o New BOOST_REVERSE_FOREACH macro for iterating over a sequence in reverse.

Function:

o Improved allocator support, from Emil Dotchevski.

Hash:

Minor updates and fixes, for more info see the change log.

Interprocess:

o Added anonymous shared memory for UNIX systems.
o Fixed missing move semantics on managed memory classes.
o Added copy_on_write and open_read_only options for shared memory and mapped file managed classes.
o shared_ptr is movable and supports aliasing.

Intrusive:

o Added linear<> and cache_last<> options to singly linked lists.
o Added optimize_multikey<> option to unordered container hooks.
o Optimized unordered containers when store_hash option is used in the hook.
o Implementation changed to avoid explicit use of try-catch blocks and be compilable with exceptions disabled.

Math:

o Added new non-central Chi-Square, Beta, F and T distributions.
o Added Exponential Integral and Zeta special functions.
o Added Rounding, Truncation, and Unit-in-the-last-place functions.
o Added support for compile time powers of a runtime base.
o Added a few SSE2 based optimisations for the Lanczos approximations.

MPI:

o Added support for non-blocking operations in Python, from Andreas Klöckner.
o Added support for graph topologies.

Multi-index Containers:

Minor additions and maintenance fixes. Consult the library release notes for further information.

PtrContainer:

Support for a few more containers, and addition of insert iterators. For details see upgrading details.

Spirit:

Integrated the "Classic" Spirit V1.8.x code base with Spirit V2, "The New Generation". See Change Log.

Thread:

o New generic lock and try_lock functions for locking multiple mutexes at once.
o Rvalue reference support for move semantics where the compilers supports it.
o A few bugs fixed and missing functions added (including the serious win32 condition variable bug).
o scoped_try_lock types are now backwards-compatible with Boost 1.34.0 and previous releases.
o Support for passing function arguments to the thread function by supplying additional arguments to the thread constructor.
o Backwards-compatibility overloads added for timed_lock and timed_wait functions to allow use of xtime for timeouts.

Wave:

o Wave V2.0 is a new major release introducing some breaking API changes, preventing it to be used with Boost versions earlier than V1.36.0. Mainly, the API and hook interface have been streamlined for more consistency.
o Fixed a couple of bugs, improved regression test system to include testing of the preporcessing hooks interface (for details see: Changelog).

Xpressive:

Regular expressions that can be written as strings or as expression templates, and that can refer to each other and themselves recursively with the power of context-free grammars, from Eric Niebler.
o skip() for specifying which parts of the input sequence to ignore when matching it against a regex.
o regex_replace() accepts formatter objects and formatter expressions in addition to format strings.
o Range-based regex_replace() algorithm.
o Fix crash when semantic actions are placed in look-aheads, look-behinds or independent sub-expressions.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
boost 1.36.0 1.36 release download
Re: [ANN] вышел Boost 1.36.0
От: ioni Россия  
Дата: 14.08.08 10:47
Оценка:
Кто нибудь пробовал собирать и использовать под x64?
у меня сборка вроде происходит нормально а вот при линковке говорит что либо под x86
собирал примерно такой комангдной строкой

bjam --with-program_options --build-type=complete --toolset=msvc-8.0_x86_64
или
bjam --with-program_options --build-type=complete --toolset=msvc-amd64

сборка происходила соответсвенно в ...Win64 Command Prompt
предыдущий boost_1_35_0 таких проблем не было
Re[2]: [ANN] вышел Boost 1.36.0
От: Аноним  
Дата: 14.08.08 14:22
Оценка:
Здравствуйте, ioni, Вы писали:

I>Кто нибудь пробовал собирать и использовать под x64?

amd64 environment, toolset msvc, прописан в user-config.jam:
bjam -j%NUMBER_OF_PROCESSORS% --address-model=64 --stagedir=stage64 stage
Re: [ANN] вышел Boost 1.36.0
От: -MyXa- Россия  
Дата: 14.08.08 16:03
Оценка:
Из "doc\html\bbv2\installation.html" битая ссытка на "doc\html\bbv2\tutorial.html" или доки теперь нужно как-то собирать самому?
Если не поможет, будем действовать током... 600 Вольт (C)
Re[3]: [ANN] вышел Boost 1.36.0
От: ioni Россия  
Дата: 14.08.08 17:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, ioni, Вы писали:


I>>Кто нибудь пробовал собирать и использовать под x64?

А>amd64 environment, toolset msvc, прописан в user-config.jam:
А>
А>bjam -j%NUMBER_OF_PROCESSORS% --address-model=64 --stagedir=stage64 stage
А>


Это означает что у вас все в норме?
Re: [ANN] вышел Boost 1.36.0
От: jazzer Россия Skype: enerjazzer
Дата: 15.08.08 06:31
Оценка:
Здравствуйте, jazzer, Вы писали:

Они обновили архив на сорсфорже и официально объявили о выходе новой версии.
Так что скачайте еще раз на всякий случай, возможно, ваши проблемы изчезнут.

да, документация к 1.36 появилась на главном сайте:
http://www.boost.org/doc/libs/1_36_0/

(изменения: http://www.boost.org/users/history/version_1_36_0)
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[3]: [ANN] вышел Boost 1.36.0
От: ioni Россия  
Дата: 15.08.08 07:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, ioni, Вы писали:


I>>Кто нибудь пробовал собирать и использовать под x64?

А>amd64 environment, toolset msvc, прописан в user-config.jam:
А>
А>bjam -j%NUMBER_OF_PROCESSORS% --address-model=64 --stagedir=stage64 stage
А>


добавка помогла
address-model=64

спасибо
Re: Boost 1.36.0 добавление в
От: Alexander G Украина  
Дата: 18.08.08 09:42
Оценка: 31 (4)
Меня заинтересовало одно изменение smart_ptr, не упомянутое видимо потому что мелкое.

Добавлены make_shared/allocate_shared к shared_ptr.
Это позволяет использовать shared_ptr без явного new. Т.е. вместо shared_ptr<MyStruct> p(new MyStruct(p1, p2)); теперь можно shared_ptr<MyStruct> p = make_shared(p1, p2);
Реально это даёт то, что объект размещается в одном блоке памяти со счётчиком ссылок и удалителем, что может снизить использование динамической памяти.
Русский военный корабль идёт ко дну!
boost shared_ptr make_shared
Re[4]: [ANN] вышел Boost 1.36.0
От: Аноним  
Дата: 18.08.08 12:12
Оценка:
Здравствуйте, ioni, Вы писали:

I>добавка помогла

I>
I>address-model=64
I>


Да, точно:
bjam -j%NUMBER_OF_PROCESSORS% address-model=64 --stagedir=stage64 stage
boost bjam x64
Re[2]: Boost 1.36.0 добавление
От: Alexander G Украина  
Дата: 18.08.08 14:24
Оценка:
Ещё туда же — make_shared позволит избежать объявления лишних переменных.

#include <string>
#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>

void f(boost::shared_ptr<std::string> p1, boost::shared_ptr<std::string> p2)
{
  printf("%s %s!\n", p1->c_str(), p2->c_str());
}

int main(int argc, char* argv[])
{
  boost::shared_ptr<std::string> p1(new std::string("hello"));
  boost::shared_ptr<std::string> p2(new std::string("world"));
  f(p1, p2); // Long way.

  f(boost::shared_ptr<std::string>(new std::string("hello")),
    boost::shared_ptr<std::string>(new std::string("world"))); // Wrong way.

  f(boost::make_shared<std::string>("hello"),
    boost::make_shared<std::string>("world")); // Short cut.

  return 0;
}
Русский военный корабль идёт ко дну!
Re: lexical_cast
От: Roman Odaisky Украина  
Дата: 18.08.08 16:26
Оценка:
А оптимизированная версия lexical_cast туда, наконец, вошла?
До последнего не верил в пирамиду Лебедева.
Re[3]: Boost 1.36.0 добавление
От: Аноним  
Дата: 18.08.08 16:26
Оценка:
Здравствуйте, Alexander G, Вы писали:

AG> f(boost::shared_ptr<std::string>(new std::string("hello")),

AG> boost::shared_ptr<std::string>(new std::string("world"))); // Wrong way.

А почему этот вариант — неправильный?
Re[4]: Boost 1.36.0 добавление
От: Roman Odaisky Украина  
Дата: 18.08.08 18:05
Оценка:
Здравствуйте, Аноним, Вы писали:

AG>> f(boost::shared_ptr<std::string>(new std::string("hello")),

AG>> boost::shared_ptr<std::string>(new std::string("world"))); // Wrong way.

А>А почему этот вариант — неправильный?


Стыдно не знать!

Могут быть утечки памяти, если между созданием одного string и его shared_ptr другой string бросит исключение.

За подробностями — к Саттеру: http://www.gotw.ca/gotw/056.htm
До последнего не верил в пирамиду Лебедева.
Re[2]: lexical_cast
От: jazzer Россия Skype: enerjazzer
Дата: 20.08.08 10:44
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>А оптимизированная версия lexical_cast туда, наконец, вошла?


Если ты о BOOST_LEXICAL_CAST_ASSUME_C_LOCALE, то она уже в 1.35 была
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: [ANN] вышел Boost 1.36.0
От: ioni Россия  
Дата: 20.08.08 14:47
Оценка:
Ну сборкой под x64 разобрался...
теперь вопрос как попробовать собрать под wince (vs2005)
в качестве теста выбрал сборку библиотеки thread

командная строка такая
bjam --with-thread --build-type=release --toolsets=msvc-8.0~wm5 architecture=arm

файл user-config.jam таой

# -------------------
# MSVC configuration.
# -------------------
# ....
# Configure specific msvc version (searched for in standard locations and PATH).
# using msvc : 8.0 ;
using msvc : 8.0~wm5 :
    "C:/Program Files/Microsoft Visual Studio 8/VC/bin/cl.exe" :
    <compileflags>-D_CRT_SECURE_NO_WARNINGS
    <compileflags>-D_WIN32_WCE=0x500
    <compileflags>-DUNDER_CE
    <compileflags>-DWINCE
    <compileflags>-DARM
    <compileflags>-D_ARM_
    <compileflags>-D_LITTLE_ENDIAN
    <compileflags>-DUNICODE
    <compileflags>-DARMV4I
    <compileflags>-D_UNICODE
    <compileflags>-D"CalypsoSMDK2413Platform (ARMV4I)"
    <compileflags>-DWINVER=0x0400
    <compileflags>-DRETAIL_TARGET_PLATFORM
    <compileflags>-D_SCL_SECURE_NO_DEPRECATE
    <compileflags>-D_VC80_UPGRADE=0x0600
    <compileflags>-DBOOST_ALL_NO_LIB
    <linkflags>/subsystem:windowsce,5.00
    <linkflags>/NODEFAULTLIB:oldnames.lib
    <linkflags>/STACK:131070,4096
    <linkflags>coredll.lib
    <linkflags>corelibc.lib
    <linkflags>ole32.lib
    <linkflags>oleaut32.lib
    <linkflags>uuid.lib
    <linkflags>commctrl.lib
    ;

но ничего путного не выходит

Building Boost.Regex with the optional Unicode/ICU support disabled.
Please refer to the Boost.Regex documentation for more information
(don't panic: this is a strictly optional feature).
...patience...
...found 714 targets...
...updating 11 targets...
compile-c-c++ bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\thread.obj
compile-c-c++ bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\exceptions.obj
compile-c-c++ bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\tss_dll.obj
compile-c-c++ bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\tss_pe.obj
msvc.link.dll bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\boost_thread-vc80-mt-1_36.dll
'/DLL' is not recognized as an internal or external command,
operable program or batch file.

         /DLL /subsystem:console /out:"bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\boost_thread-vc80-mt-1_36.dll" /IMPLIB:"bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\boost_thread-vc80-mt-1_36.lib"   /subsystem:windowsce,5.00 /NODEFAULTLIB:oldnames.lib /STACK:131070,4096 coredll.lib corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib @"bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\boost_thread-vc80-mt-1_36.dll.rsp"
        if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%
        if exist "bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\boost_thread-vc80-mt-1_36.dll.manifest" (
             -manifest "bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\boost_thread-vc80-mt-1_36.dll.manifest" "-outputresource:bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\boost_thread-vc80-mt-1_36.dll;2"
        )

...failed msvc.link.dll bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\boost_thread-vc80-mt-1_36.dll bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\threading-multi\boost_thread-vc80-mt-1_36.lib...
compile-c-c++ bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\link-static\threading-multi\thread.obj
compile-c-c++ bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\link-static\threading-multi\exceptions.obj
compile-c-c++ bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\link-static\threading-multi\tss_dll.obj
compile-c-c++ bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\link-static\threading-multi\tss_pe.obj
msvc.archive bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\link-static\threading-multi\libboost_thread-vc80-mt-1_36.lib
The filename, directory name, or volume label syntax is incorrect.

        if exist "bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\link-static\threading-multi\libboost_thread-vc80-mt-1_36.lib" DEL "bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\link-static\threading-multi\libboost_thread-vc80-mt-1_36.lib"
          /out:"bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\link-static\threading-multi\libboost_thread-vc80-mt-1_36.lib" @"bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\link-static\threading-multi\libboost_thread-vc80-mt-1_36.lib.rsp"

...failed msvc.archive bin.v2\libs\thread\build\msvc-8.0~wm5\release\architecture-arm\link-static\threading-multi\libboost_thread-vc80-mt-1_36.lib...
...failed updating 3 targets...
...updated 8 targets...


создаются файлы с расширением rsp и которые windows не знает как обрабатывать
кто нибудь может подсказать чего не хватает?
Re[5]: Boost 1.36.0 добавление
От: dip_2000 Россия  
Дата: 20.08.08 14:57
Оценка: 5 (3) +1
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, Аноним, Вы писали:


AG>>> f(boost::shared_ptr<std::string>(new std::string("hello")),

AG>>> boost::shared_ptr<std::string>(new std::string("world"))); // Wrong way.

А>>А почему этот вариант — неправильный?


RO>Стыдно не знать!


Не знать не стыдно! Стыдно не спрашивать если не знаешь. ИМХО.
Re[2]: [ANN] вышел Boost 1.36.0
От: Sergey Россия  
Дата: 20.08.08 15:38
Оценка:
>
> # -------------------
> # MSVC configuration.
> # -------------------
> # ....
> # Configure specific msvc version (searched for in standard locations and PATH).
> # using msvc : 8.0 ;
> using msvc : 8.0~wm5 :
> "C:/Program Files/Microsoft Visual Studio 8/VC/bin/cl.exe" :
> <compileflags>-D_CRT_SECURE_NO_WARNINGS
> <compileflags>-D_WIN32_WCE=0x500
> <compileflags>-DUNDER_CE
> <compileflags>-DWINCE
> <compileflags>-DARM
> <compileflags>-D_ARM_
> <compileflags>-D_LITTLE_ENDIAN
> <compileflags>-DUNICODE
> <compileflags>-DARMV4I
> <compileflags>-D_UNICODE
> <compileflags>-D"CalypsoSMDK2413Platform (ARMV4I)"
> <compileflags>-DWINVER=0x0400
> <compileflags>-DRETAIL_TARGET_PLATFORM
> <compileflags>-D_SCL_SECURE_NO_DEPRECATE
> <compileflags>-D_VC80_UPGRADE=0x0600
> <compileflags>-DBOOST_ALL_NO_LIB
> <linkflags>/subsystem:windowsce,5.00
> <linkflags>/NODEFAULTLIB:oldnames.lib
> <linkflags>/STACK:131070,4096
> <linkflags>coredll.lib
> <linkflags>corelibc.lib
> <linkflags>ole32.lib
> <linkflags>oleaut32.lib
> <linkflags>uuid.lib
> <linkflags>commctrl.lib
> ;  
>

> но ничего путного не выходит

строку "C:/Program Files/Microsoft Visual Studio 8/VC/bin/cl.exe" :
мне кажется надо поменять на : (оставить пустой параметр)
Тогда оно само найдет vcvars32.bat и будет знать не только про компилятор, но и про другие тулзы.
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[6]: Boost 1.36.0 добавление
От: jazzer Россия Skype: enerjazzer
Дата: 21.08.08 02:38
Оценка:
Здравствуйте, dip_2000, Вы писали:

_>Здравствуйте, Roman Odaisky, Вы писали:


RO>>Здравствуйте, Аноним, Вы писали:


AG>>>> f(boost::shared_ptr<std::string>(new std::string("hello")),

AG>>>> boost::shared_ptr<std::string>(new std::string("world"))); // Wrong way.

А>>>А почему этот вариант — неправильный?


RO>>Стыдно не знать!


_>Не знать не стыдно! Стыдно не спрашивать если не знаешь. ИМХО.


Всё так, но я думаю, Роман имел в виду, что стыдно все еще не прочитать Саттера и Майерса (которые были изданы аж 10 дет назад).
Такое простительно студенту, но не профессиональному программисту.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[7]: Boost 1.36.0 добавление
От: dip_2000 Россия  
Дата: 21.08.08 06:32
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Всё так, но я думаю, Роман имел в виду, что стыдно все еще не прочитать Саттера и Майерса (которые были изданы аж 10 дет назад).

J>Такое простительно студенту, но не профессиональному программисту.
Просто согласитесь, нет никаких свидетельств, что этот вопрос задавался человеком с большим опытом Вдруг там вполне нормальный, жаждущий знаний студент ?
Re[3]: [ANN] вышел Boost 1.36.0
От: ioni Россия  
Дата: 21.08.08 06:56
Оценка:
S>строку "C:/Program Files/Microsoft Visual Studio 8/VC/bin/cl.exe" :
S>мне кажется надо поменять на : (оставить пустой параметр)
S>Тогда оно само найдет vcvars32.bat и будет знать не только про компилятор, но и про другие тулзы.

к сожалению не помогло
а сборку я запускал с уже установленными переменными окружения
(из Visual Studio 2005 Command Prompt)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.