제가 Boost 라이브러리를 2002년인가 2003년쯤부터 공부했는데 그 당시에도 라이브러리가 충실했는데 지금도 계속 라이브러리를 확장해 가고 있습니다. 다시 한번 Boost 공부를 해야 할 것 같네요.

Boost를 처음 알게 될 때 Boost의 라이브러리가 새로운 C++ 표준에 들어갈 것이라고 했는데 시간이 지난 현재의 C++0x를 보면 틀린 말이 아니었습니다.

( 아래에서 소개하는 라이브러리는 저도 아직 보지 못한 라이브러리라서 번역 수준이 발 번역입니다. ^^;;; )



 

BoostML - Review Wizard report for December 2009


【뉴스】

Polygon라이브러리를 채택

Boost 1.40.0 릴리스

  신규 라이브러리 : 없음

  변경 라이브러리 : Accumulators, Asio, Circular Buffer, Filesystem, Foreach, Function, Fusion, Hash, Interprocess, Intrusive, MPL, Program Options, Proto, Python, Serialization, Unordered, Xpressive

Geometry라이브러리를 채택

Boost 1.41.0 릴리스

  신규 라이브러리 : Property Tree

  갱신 라이브러리 : DateTime, Filesystem, Iostreams, Math, Multi-index Containers, Proto, Python, Regex, Spirit, System, Thread, Unordered, Utility, Wave, Xpressive

MSM라이브러리의 리뷰가 진행 중

Constrained Value리뷰 - 리뷰 결과는 미결



 

【이전부터의 문제점】

2007/08에 채택된 시계열(Time Series)라이브러리는 아직 제출되고 있지 않음.

•부동 소수점 유틸리티 라이브러리는 아직 제출되고 있지 않음.

 Boost.Math라이브러리에 통합될 예정.

2008/01에 가 채택되었던 Switch라이브러리는 완전한 채택을 위한 제출은 아직 되고 있지 않음.

2008/09에 가 채택되었던 Phoenix라이브러리는 완전한 채택을 위한 제출은 아직 되고 있지 않음.

 

 

 

【일반적인 발표】

경험 많은 리뷰 매니저가 필요로 하며 리뷰어의 수가 작다고 합니다.

 

 

리뷰 큐

Lexer

Shifted Pointer

Logging

Log

Join

PImpl

Task

Endian

Conversion

Sorting

GIL.IO

AutoBuffer

String Convert

Move

Containers

Interval Containers

Type Traits Extensions

Interthreads

Bitfield

Lockfree

 

 

Lexer

작자 : Ben Hanson

리뷰 매니저 : Eric Neibler

다운로드 : http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost.lexer.zip&directory=Strings%20-%20Text%20Processing

 

설명 :

flex에 의해서 인스파이어 되었던 프로그래머블 어휘분석기(lexical analyser) 제네레이터.

flex와 같이 정규 표현에 의해서 프로그램 되어 압축을 위한 동치류(equivalence class)를 이용. 많은 DFA로서 스테이트 머신을 출력.

 

 

Shifted Pointer

작자 : Phil Bouchard

리뷰 매니저 : 필요로 하고 있음

다운로드 : http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=Memory


설명 :

스마트 포인터는 유저가 최대한으로 활용하는 특정의 자원(메모리 사용량, CPU사이클, 취급하기 쉬움…)을 위해서 최적화됩니다. 이 스마트 포인터의 목적은 참조 카운트(혹은 소유권) 및 오브젝트 그 자신을 동시에 할당하는 것으로 동적 메모리 관리가 가속되어 메모리 맵 보다 싼 상태로 단순화 하는 것입니다.

 

 

Logging

작자 : John Torjo

리뷰 매니저 : Gennadiy Rozental

다운로드 : http://torjo.com/log2/


설명 :

적절히 사용되는 Logging은 매우 강력한 툴입니다. 디버그/테스트의 지원에 더해 한층 더 당신의 애플리케이션이 어떻게 동작하는지 당신에게 알려줍니다.

Boost Logging Library는 많은 시나리오를 지원하며 매우 단순한 것으로부터(하나의 목적지로 모두 덤프 한다) 매우 복잡한 것(복수의 로그, 일부를 유효/일부를 무효, 레벨, etc...)까지 가능하게 합니다. 이것은 매우 심플하고 유연한 인터페이스, 메세지의 효율적인 필터링, 스레드 안전성, 포맷 및 목적지, 로그의 용이한 조작을 특징으로 하며 당신의 애플리케이션의 요구에 근거한 최선의 Logger/필터 클래스를 찾아내어 당신 자신의 매크로 보다 많은 것을 정의할 수 있습니다!

 

 

Log

작자 : Andrey Semashev

리뷰 매니저 : 필요로 하고 있음

다운로드 : http://tinyurl.com/cm9lum


설명 :

이 라이브러리는 애플리케이션에 로깅 기능을 더하기 위한 지원을 목적으로 하고 있습니다.

syslog 서버 혹은 Windows 이벤트 로그에 로그를 보내는 포맷과 속성에 근거하여 필터링 하던가 혹은 단지 파일에 로그를 저장하는 등 폭 넓게 이용하며

성능을 상식을 넘어서 지원합니다. 한층 더 설정  파일로부터의 라이브러리 초기화를 실시하는 기초적인 지원도 실시합니다. 이 라이브러리는 애플리케이션 이벤트에 관해서 광범위의 태스크와 수단을 모아 처리의 통계 정보나 유저로의 통지에 사용할 수 있습니다.

 

 

Join

작자 : Yigong Liu

리뷰 매니저 : 필요로 하고 있음.

다운로드 : http://channel.sourceforge.net/

 

설명 :

Join은 비동기의 join산법(join calculus)에 근거한 메세지 베이스의 C++ 병렬성 라이브러리입니다.

멀티 스레드 애플리케이션, 비동기의 조직화, 이벤트 베이스 애플리케이션에

적용 가능합니다. Comega의 설계와 Boost facilities에 의한 구현과 구조에 따릅니다.

이것은 비동기 메소드, 동기 메소드 그리고 동기비동기성과 병렬성을 정의하는 「join 패턴」을 일치시키는 것으로 고수준의 병렬성 API를 제공합니다.

 

 

PImpl

작자 : Vladimir Batov

리뷰 매니저 : 필요로 하고 있음

다운로드 : http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=Pimpl.zip&directory=&

http://www.ddj.com/cpp/205918714 (문서)

 

설명 :

Pimpl 관용어는 인터페이스와 구현의 분리 및 구현을 숨기는 것으로 결합을 최소화하는 심플하지만 강건한 기술입니다.

이 라이브러리는 PImpl 관용어에 편리하고 유연한 제네릭 배치 테크닉을 제공합니다.

범용성이 높음에도 불구하고 작고 단순하고 사용하는 것이 즐겁다.

 

 

Task

작자 : Oliver Kowalke

리뷰 매니저 : 필요로 하고 있음

다운로드 : http://www.boostpro.com/vault/index.php?action=downloadfile&filename=boost-threadpool.2.tar.gz&directory=Concurrent%20Programming

 

설명 :

이 라이브러리는 아래의 것을 지원합니다:

o         스레드 생성 policy:워커 스레드의 관리를 결정한다

       pool 안의 스레드의 고정 셋

       요구에 따라(문맥에 의존해) 워커 스레드를 작성한다

       일정한 Idle 시간 후에 워커 스레드를 타임 아웃시킨다

o         채널 policy:큐에 놓여진 태스크로의 접근을 관리한다:

       대기 상태 태스크를 위한 고/저수준에 의한 제한이 있는 채널

       큐에 놓여진 태스크의 무제한의 수에 의한 무제한의 채널

       rendezvousproducerconsumer 스레드 사이에 동기를 건네준다

o         policy:태스크가 채널로부터 어떻게 제거될까를 결정한다

       FIFO

       LIFO

       우선 순위 큐(태스크에 속성을 할당한다)

       스마트한 삽입과 추출(예를 들어 가장 새로운 속성을 가진 가장 오래된 태스크를 없앤다)

o         태스크는 체인으로 할 수 있으며 또 Lazy 태스크의 제출(submit)도 지원됩니다(Braddocks의 장래의 라이브러리 덕분)

o         submit 함수로부터 태스크 오브젝트가 반환된다. 태스크는 그 자신이 cooperative(협력적)이며 중단할 수 있다.(코드 "this_thread::interruption_point()"가 그것이 몇 개의 중단 포인트를 가지고 있는 것을 의미한다)





나머지는 다음 글에서,....


출처 : http://d.hatena.ne.jp/faith_and_brave/20091208/1260252728#tb

저작자 표시
신고
by 흥배 2010.01.19 09:00
| 1 |