http://www.boost.org/users/history/version_1_60_0.html

 

 

Windows 사용자에 대한 주석

이 릴리스에서 Boost는 컴파일러가 최신 Windows SDK를 지원 하고 있고 Windows XP 이외인 경우에 Windows Vista/Windows Server 2008을 기본 컴파일러로 한다. 오래된 버전의 Windows에서는 기본 옵션으로 컴파일 된 바이너리를 실행할 수 없다.

 

Windows API의 버전 번호를 BOOST_USE_WINAPI_VERSION 매크로를 정의함으로써 대상 Windows 버전을 명시적으로 지정할 수도 있다. 예를 들어 Windows XP 용으로 Boost를 컴파일 하려면 다음 명령을 사용한다

b2 release define=BOOST_USE_WINAPI_VERSION=0x0501

Windows API의 버전 번호 일람은 다음 페이지에서 확인할 수 있다:

https://msdn.microsoft.com/en-us/library/6sehtctf.aspx

 

이 변경은 Boost Windows API에 대한 추상 계층을 사용하고 있는 라이브러리에만 영향을 미친다. 현재는 아래의 라이브러리가 대상이다

:Boost.Chrono, Boost.Dll, Boost.Log, Boost.UUID.

이들 라이브러리에 의존하는 라이브러리도 대상이 된다.

 

 

새 라이브러리

VMD http://www.boost.org/doc/libs/release/libs/vmd/

가변 인수 매크로 데이터 라이브러리(Variadic Macro Data Library)

개발자: Edward Diener

 

 

갱신 라이브러리

Log

전체적인 변경

Windows 환경에서 구성 매크로 BOOST_LOG_USE_WINNT6_API는 사용되지 않는다. 목표 환경을 설정하는 매크로 BOOST_USE_WINAPI_VERSION를 정의하여 Windows 버전을 설정할 필요가 있다.

 

 

 

출처: http://boostjp.github.io/document/version/1_60_0.html

 

저작자 표시
신고
by 흥배 2016.01.11 09:00

http://www.boost.org/users/history/version_1_59_0.html

 

 

새 라이브러리

Convert

확장성 있는 형 변환 프레임워크

Vladimir Batov

 

Coroutine2

C++14에서 기술된 코루틴 라이브러리

역주: 이미 존재하는 Boost.Coroutine deprecated로 관리만 한다고 Oliver가 선언

Oliver Kowalke

 

 

갱신 라이브러리

Context

BOOST_USE_WINFIBERS define 하면 execution_context 내부에서 Windows Fiber를 사용하도록 했다

 

 

Multi-index

- ranked indices를 추가

- 관리상의 수정

 

 

출처: http://boostjp.github.io/document/version/1_59_0.html

 

 

저작자 표시
신고
by 흥배 2016.01.08 15:14

http://www.boost.org/users/history/version_1_58_0.html

 

새 라이브러리

Endian

프로세서의 엔디언에 관계 없이 적절한 바이트 순서로 변환하는 형과 함수.

 

Sort

일반적인 상황에서 O(n*log(n))보다 고속인 하이브리드 기수 정렬 스프레드 소트(spreadsort)를 포함한다.

 

 

갱신 라이브러리

Asio

- #10744 WindowsConnextEx 함수에 의해서 생성되는 에러 값을 다른 환경에서도 쓸 수 있도록 매핑 했다

- 새로운 매크로 BOOST_ASIO_DISABLE_CONNECTEX를 추가했다. 이를 사용함으로써ConnectEx를 명시적으로 무효화 한다.

- #10624  windows::object_handle 경쟁 상태를 수정. 이것은 파기에 대한 조작 대기에서 일어나고 있었다.

- 최신 Windows SDK에서 동작하도록 Windows Runtime의 검출 방법을 갱신

 

 

Container

- 실험적으로 small_vector 클래스를 추가

- 작은 요소 수에 최적화된 vector. 템플릿 파라미터로 지정된 요소 수의 영역을 사전에 확보함으로써 그 요소 수를 넘지 않는 insert()push_back()로 메모리 할당을 하지 않는다.

- static_vector과 달리 프리 스토어에서 메모리를 확보하고 능력을 넘어선 영역의 확장이 가능.

- LLVM SmallVector 클래스을 참조

 

- 랜덤 접근 반복자를 가진 컨테이너(basic_string 이외)nth()index_of() 멤버 함수를 추가.

 

 

Context

ARM/iOS(32비트 + 64비트)를 지원

C++14 전용으로 execution_context 클래스를 추가

 

 

출처: http://boostjp.github.io/document/version/1_58_0.html

 

저작자 표시
신고
by 흥배 2016.01.06 10:00

http://www.boost.org/users/history/version_1_57_0.html

 

갱신 라이브러리

Asio

- FreeBSD에서 동작하는 kqueue 리액터를 수정.#10606

- Mac OS 상에서 시리얼 포트를 읽으면 kqueue 리액터가 비지 루프에 빠지는 것을 수정.#10496

- 읽기 전용 파일 서술자를 사용한 경우 kqueue 리액터의 문제를 수정.#10367

- /dev/poll 리액터를 사용한 경우 컴파일 오류를 수정.#10572

- Windows 백엔드에서 비 추천 WSASocketAWSASocketW로 변경.#10534

- WinRT 환경에서의 바이트 오더 변환 함수의 정수형을 수정.#10539

- asio::strand는 비 추천. 대신 asio::io_service::strand를 사용할 것.

 

 

출처: http://boostjp.github.io/document/version/1_57_0.html

 

 

 

저작자 표시
신고
by 흥배 2016.01.04 10:00

https://github.com/boostorg/website/blob/master/feed/history/boost_1_56_0.qbk

 

모듈화

Boost 버전 관리를 Subversion에서 Git의 서브 모듈을 사용하는 시스템으로 이행했다. 디렉토리 구성이 이전과 조금 다르다.

저장소: https://github.com/boostorg/

 

새 모듈

이하의 모듈은 기존 코드에서 추출된 것. 헤더의 패스는 지금까지와 마찬가지.

Assert

Core

Lexical_Cast

Throw_Exception

WinApi

 

 

새 라이브러리

Align

Glen Fernandes씨의 메모리 얼라인먼트의 함수, 메모리 할당기, 어댑터.

 

Type_Index

Antony Polukhin씨의 실행 시와 컴파일 시 모두에서 사용할 수 있는 복제 가능한 type info.

 

 

갱신 라이브러리

Asio

- 접속 지향 IP 소켓을 위해서 Windows I/O 완료 포트 백엔드에 사용 가능하다면ConnectEx() 함수를 사용하도록 했다.

- Windows(및 비 IOCP Windows) 환경에서 io_service 인스턴스 하나에 하나의 조건 변수를 사용하도록 변경했다. 이로써 run_one()이 여러 스레드에서 호출 될 때의 잠재적 경쟁 상태를 해결했다.

- boost::chronostd::chrono의 매크로를 바탕으로 타임 아웃 시간을 계산할 때의 정수 오버 플로를 수정(#9662, #9778)

- kqueue 백엔드의 EV_CLEAR 핸들링에 변경을 가했다.  Mac OS Xclose() 시스템 콜이 hang 하는 경우가 있었기 때문.

- 막대한 수의 소켓을 사용하는 Windows 상에서 select 리액터가 보다 더 효율적으로 동작하도록 했다(#9528)

- 최근 Windows 버전에서 GetQueuedCompletionStatus()의 타임 아웃 워크 어라운드를 무효화 하였다(commit 9d13af4)

 

 

Atomic

- 라이브러리를 재설계했다. 내부적인 리팩터링 외에도 각종 버그의 수정, 기능 테스트 매크로의 부적절한 값 및 오버 플로 핸들리에 관련 된도 포함한다.

- memory_order 열거형 값을 변경했다. 열거형 값은 인터페이스의 일부는 아니지만 사용자 인터페이스로 사용할 경우 ABI가 깨질 수 있다.

- MSVC Windows x64전용으로 128비트의 원자 조작을 구현했다. 타깃 CPU cmpxchg16b 명령이 존재하는 것을 상정하고 있다. 초기의 몇몇 AMD CPU는 이 명령을 지원하지 않고 있다. 그런 타깃을 위해서는 BOOST_ATOMIC_NO_CMPXCHG16B 매크로를 정의한다.

- 실험적으로 MSVC Windows ARM 타깃 지원을 구현했다.

- 실험적으로 GCC DEC Alpha 타깃 지원을 구현했다.

- GCC ARMv6와 이후의 지원을 개선했다. 모든 원자 조작을 CAS 베이스의 루프 대신 어셈블러 블록을 탑재. ARMv7에서 64비트 조작을 지원.

 

 

Container

신기능

-DLMalloc 기준의 확장 메모리 할당기를 추가

boost::container::allocator<T, 2>를 사용함으로써(2는 버전) vector 내부 구현에 realloc() 상당의 기능이 사용되게 된다.

boost::container::node_allocator를 추가. 이는 단순한 분리 스토리지의 할당기. 명시적으로 요구하지 않는 한 시스템에 메모리를 돌려주지 않는 Boost.Pool과 같은 접근을 취하고 있다.

boost::container::adaptive_pool를 추가. 이는node_allocator가 저비용으로 시스템에 메모리를 돌려주도록 하기 위한 것.

이들 기능을 사용하려면 Boost.Container의 빌드가 필요.

 

트리 기반의 정렬된 연상 컨테이너의 커스터마이즈성을 개선했다.

(multi)map (multi)set 구현에 AVL tree, Scapegoat tree, Splay tree를 사용하도록 했다.

 

 

Fusion

Fusion GPU에서 사용 할 수 있게 했다.

 

 

출처: http://boostjp.github.io/document/version/1_56_0.html

 

 

저작자 표시
신고
by 흥배 2015.12.30 10:00

http://www.boost.org/users/history/version_1_55_0.html

 

새 라이브러리

Predef

개발자는 Rene Rivera.

C, C++, Objective C, Objective C++에서 제공하고 있는 매크로나 그것에 의존하는 헤더 내에 정의된 매크로를 모은 정보를 바탕으로 컴파일러나 아키텍처, OS, 라이브러리, 그 외 버전 번호가 대충 정의되어 있다.

 

 

갱신 라이브러리

Multi-Index Container

- Boost.MultiIndex C++11 표준 준수도 향상

- multi_index_container를 효율적으로 move 할 수 있게 됐다

- Initializer list 지원

- emplace계통 함수 지원

- 복사 불가 요소(std::unique_ptr )을 지원. 또 요소와 호환성 있는 형의 반복자 대해서 쓸데 없는 복사를 하지 않고[first, last) 형식으로 범위 삽입 할 수 있게 됐다

- 랜덤 억세스 인덱스에 대한 shrink_to_fit() 구현

 

C++11 이전의 컴파일러에 제한은 compiler specifics 참조

아래의 클래스는 비 추천 되었다.

member_offset

const_mem_fun_explicit

mem_fun_explicit

composite_key_result_equal_to

composite_key_result_less

composite_key_result_greater

composite_key_result_hash

 

기타 수정

 

 

 

출처: http://boostjp.github.io/document/version/1_55_0.html

저작자 표시
신고
by 흥배 2015.12.28 10:00

1.53

https://svn.boost.org/svn/boost/website/public_html/live/feed/history/boost_1_53_0.qbk

 

새 라이브러리

Atomic

Helge Bahmann에 의한 C++11 스타일의 atomic라이브러리. Tim Blechmann에 의해서 관리한다.

 

Coroutine

Oliver Kowalke에 의한 코루틴 라이브러리

 

Lockfree

Tim Blechmann에 의한 잠금 프리 데이터 구조

 

Multiprecision

John Maddock Christopher Kormanyos에 의한 확장 정밀도의 산술형 연산(부동 소수 점형, 정수형, 유리수형).

 

Odeint

Karsten Ahnert Mario Mulansky에 의한 상미분 방정식 라이브러리

 

 

 

갱신 라이브러리

Asio

기본 메모리 할당 행동을 개선하기 위해서 작은 블록 재이용을 하는 최적화를 추가

 

 

출처: http://boostjp.github.io/document/version/1_53_0.html

 

 

 

 

1.54

https://svn.boost.org/svn/boost/website/public_html/live/feed/history/boost_1_54_0.qbk

 

새 라이브러리

Log

Andrey Semashev에 의한 로깅 라이브러리

 

TTI

Edward Diener에 의한 형 특성의 내성 라이브러리(Type Traits Introspection)

 

Type Erasure

Steven Watanabe에 의한 컨셉에 근거한 실행 시 다상성의 라이브러리

 

 

 

갱신 라이브러리

Asio

- asio::spawn()함수를 추가. 이는 Boost::Coroutine 기반의 스택 풀 코루틴 의한 높은 레벨 래퍼이다. spawn() 함수를 사용함으로써 동기 로직처럼 비동기 로직을 쓸 수 있다.

:size_t n=my_socket.async_read(my_buffer, yield);

- 특수한 값 asio::use_future를 추가. 이것을 개시 함수에 지정함으로써 C++11 환경에서 비동기 개시 함수가 std::future를 반환 할 수 있다.

: future=my_socket.async_read(my_buffer, asio(use_future);

- 4개의 범용적인 프로토콜 클래스를 추가. generic::datagram_protocolgeneric::raw_protocolgeneric::seq_packet_protocolgeneric::stream_protocol. 이들은Protocol 요건에 의거하여 장착하고 있지만 주소 패밀리(예를 들어 AF_INET)과 프로토콜 종류(예를 들어 IPPROTO_TCP)는 실행 시에 유저가 지정할 수 있다.

- C++11의 무브 생성자를 추가. 이로써 socket(acceptor)에서 복제한 형태로의 변환이 가능하게 된다. 가령 ip::tcp::socket에서 generic::stream_protocol::socket에 대한 무브 구축이 가능하다.

- basic_socket_acceptor<> 클래스의 accept()async_accept()를 확장. 새로운 커넥션으로 socket을 제너릭한 형에 직접 accept 가능하게 된다. 가령ip::tcp::acceptorgeneric::stream_protocol::socket 객체에 accept 가능하다.

- 기존의 샘플을 C++03용 디렉토리로 이동하고 C++11용 디렉토리를 새로 만들었다. C++03의 한정적인 서브셋에서 C++11에 등가로 변환 가능하다.

- Linux에서 데이터 경합 가능성이 있었던 epoll() 구현을 수정

 

 

출처: http://boostjp.github.io/document/version/1_54_0.html

 

 

 

저작자 표시
신고
by 흥배 2015.12.23 10:00

http://www.boost.org/users/history/version_1_52_0.html

 

갱신 라이브러리

Thread

신기능

C++11준수: 부족한 async()를 추가(#4710)

C++11준수: notify_all_at_thread_exit를 추가(#7283)

C++11준수: recursive mutextry_locknoexcept를 추가(#7345)

 

 

Unordered

- 요소 추가 시 기존의 노드를 다시 이용할 수 있을 때는 재이용하도록 했다

 

 

 

출처: http://boostjp.github.io/document/version/1_52_0.html

 

 

저작자 표시
신고
by 흥배 2015.12.21 10:00

http://www.boost.org/users/history/version_1_51_0.html

 

새 라이브러리

Context

- 문맥 전환 라이브러리

개발자: Oliver Kowalke

 

 

갱신 라이브러리

Asio

- ip::tcp::iostream C++11에서의 비 호환성을 수정(#7162)

- GCC의 속성 이름과의 상호 작용을 막기 위해서 사용자 정의 매크로를 언더스코어로 장식(#6415)

- #include 가 빠진 것을 추가. MinGW에서 필요.

- GCC ARM CPU용 임베디드 atomic 기능이 이용 가능한 경우에는 그것을 사용하도록 했다(#7140)

- strand의 소멸 시에 아무것도 하지 않는다(no-op). 이 수정에 의해서 strand 개체가 연결되어 있는 io_service 객체가 파기된 후에도 파기 가능하다

- 새로운 버전의 glibc의 경우 epoll_create1() 함수를 제공하도록 했다. 다만 어떤 함수는 항상ENOSYS에서 실패한다(#7012)

- SSL 초기화에 실패한 경우에 예외를 던지도록 했다(#6303)

- buffered_write_stream 회귀 버그를 수정(#6310)

- Linux x86, x86-64 플랫폼에서 다양한 작은 퍼포먼스 향상을 구현

 

 

Hash

- C++11 표준 스마트 포인터를 지원

- 암시형 변환을 회피하기 위해서 hash_value() 함수를 SFINAE를 사용하도록 수정

- 새 설정 매크로를 사용

 

 

Lexical cast

- 퍼포먼스 개선, boost::array<character_type, N>std::array<character_type, N>의 메모리 사용량의 삭감

- volatile 수식된 입력 값에 대한 실행 시 assertion 수정(#7157)

 

 

 

출처: http://boostjp.github.io/document/version/1_51_0.html

 

 

저작자 표시
신고
by 흥배 2015.12.18 10:00

Array

- Boost.Hash 지원 추가(#6791)

 

 

Asio

- EPOLL_OUT 이벤트를 위해 epoll_reactor 백 엔드를 지연 등록하도록 변경.

- epoll_reactor 대역 외 데이터가 지난 릴리스에서는 불완전한 수정에 의해서 깨져 있어서 수정했다.

- Boost.Asio SSL 래퍼를 OPENSSL_NO_ENGINE define에 배려하도록 수정(#6432)

- C++11의 무브 세멘틱스를 지원하는 Windows 컴파일러(g++ )를 위해 windows::object_handle 수정.

- strand 재 스케줄링 성능을 향상.

- g++4.7 C++11 모드에서의 컴파일을 지원(#6620)

g++4.7에서 명칭이 변경된s td::chrono(monotonic_clock → std::chrono::steady_clock의 차이에 대응

- io_serviceconcurrency_hint1로 구축한 경우 signal_set이 전달되지 않는 문제를 수정(#6657)

 

 

Iostreams

gzip 지원(#5908)

최신 Boost.Filesystem Boost.Test의 테스트로 갱신

몇 가지 문서의 오류를 수정(#6530)(#6650)

 

 

Thread

신기능

- lock_guard / unique_lock 에 대응하는 unlock_guard의 리퀘스트(#1850)

- shared_mutextimed_locktimed_lock_shared 멤버를 리퀘스트(#2637)

- 포터블 및 포터블 하지 않은 스레드 속성의 대응 제안(#2741)

- shared_lock_guard의 리퀘스트(#3567)

- Boost.Move기반의 무브세멘틱스 대한 변경(#6194)

- 시간 관계의 인터페이스를 Boost.Chrono로 구현(#6195)(C++11표준에 대한 추종)

- Howard Hinnant가 제안한 인터페이스에 shared_mutex를 확장(#6217)

- noexcept를 컴파일러가 지원하고 있는 경우 noexcept를 지정(#6224)(C++11표준에 대한 추종)

- locks를 명시적인 bool 형태로의 변환을 추가(#6226)(C++11표준에 대한 추종)

- promise에 메모리 할당기를 지정 가능한 생성자를 추가(#6228)(C++11표준에 대한 추종)

- C++11 표준으로 정해진 예외 통지 방법으로 변경(#6230)(C++11표준에 대한 추종)

- thread의 소멸자는 joinabletrue를 돌려줄 경우에 terminate를 부르도록 변경(#6266)(C++11표준에 대한 추종(파괴적 변경) → 기본적으로 예전처럼 detach 행동. BOOST_THREAD_PROVIDES_THREAD_DESTRUCTOR_CALLS_TERMINATE_IF_JOINABLEdefine하면 새로운 동작으로 전환할 수 있다.

- thread는 무브 대입 시에 joinabletrue를 돌려줄 경우에 terminate를 부르도록 변경(#6269)(C++11표준에 대한 추종(파괴적 변경)→ 기본적으로 지금까지처럼 동작. BOOST_THREAD_PROVIDES_THREAD_MOVE_ASSIGN_CALLS_TERMINATE_IF_JOINABLEdefine하면 새로운 동작으로 전환할 수 있다.

- thread::idhash 특수화를 준비(#6272)(C++11표준에 대한 추종)

- 조건 변수 wait계통 함수용 cv_status 열거형을 추가(#6273)(C++11표준에 대한 추종)

- 문서에 BasicLockagle 요건에 관한 기술을 추가(#6231)(C++11표준에 대한 추종)

- C++11 표준용으로 once_flag를 수정(#6342)

- upgrade_lockmutexrelease 멤버가 부족했던 것을 수정(#6671)

- upgrade_lock에 시간을 멤버로 취하는 생성자가 부족했던 것을 수정(#6672)

- upgrade_lock용의 프리 함수판 swap이 없었던 것을 수정(#6675)

- packaged_taskresult_type와 메모리 할당기를 취하는 생성자가 부족한 것을 수정

- packaged_task::reset()를 추가

 

 

 

출처: http://boostjp.github.io/document/version/1_50_0.html

 

 

 

저작자 표시
신고
by 흥배 2015.12.16 10:00
| 1 2 3 4 ··· 7 |

티스토리 툴바