2019의 게시물 표시

Rust Procedural Macros By Example

이미지
안녕하세요. 제가 최근에 Rust 공부를 시작했는데요~
그래서 오늘은 Rust 1.29.0 부터 stable 이 된 Procedural Macros 에 대해서 포스팅해보도록 하겠습니다.
포스팅은 구구절절한 설명보다는 예제 코드 위주가 될 예정입니다!
Rust 의 매크로 시스템 Rust 의 매크로 시스템은 매우 강력한데요. 크게 다음과 같이 분류 할 수 있습니다.
Declarative MacrosProcedural Macros Function-like macrosDerive mode macrosAttribute macros 첫 번째는 Declarative Macros 는 일반적으로 개발자들이 흔히 알고 있는 “선언적” 형태의 매크로 방식인데요. C/C++ 등의 타언어들과의 차이점은 문자열 전처리기 방식이 아니라 Abstract Syntax Tree 를 직접 건드리는 방식이라는 점입니다.
// 출처 : https://doc.rust-lang.org/rust-by-example/macros/dsl.htmlmacro_rules! calculate {(eval $e:expr)=>{{{let val: usize = $e;// Force types to be integersprintln!("{} = {}",stringify!{$e}, val);}}};}fnmain(){calculate!{ eval 1+2// hehehe `eval` is _not_ a Rust keyword!}calculate!{eval(1+2)*(3/4)}} Declarative Macros 는 이번 포스팅의 주제가 아니므로, 더 이상 언급하진 않겠습니다.
두 번째는 이번 포스팅의 주제인 Procedural Macros 인데요. 함수의 실행 으로서 매크로를 정의하는 방식입니다.
일단 큰 틀에서 쉽게 얘기하자면 아래와 같습니다.
원래의 AST --input--> "함수" --output--> 수정된 AST “함수” 는 인풋으로 원래 소스코드…

C++ Boost 라이브러리를 Windows XP 에서 동작하도록 빌드하기

이미지
안녕하세요~ 반갑습니다!
C++ 개발자 여러분~ boost 많이 쓰시죠?? 저도 boost 참 좋아합니다 ㅎㅎ
이렇게 좋은 boost 를 Windows XP/2003 환경에서 사용할 때는 그냥 일반적인 방법으로는 사용이 불가능한데요. 그래서 오늘은 Windows XP 환경에서 동작하도록 boost 를 빌드하는 방법에 대해서 알아보도록 하겠습니다!
참고로 제가 설명할 방법은 100% 완벽하게 검증된 방법은 아니며, 제가 조사/연구를 통해 알아낸 방법입니다. 따라서 문제가 있을 수도 있으므로 참고자료정도로만 사용해주시면 감사하겠습니다. 그리고 이 포스팅에서는 Visual C++ 2015 Update 3 를 사용한다고 가정하고 설명하겠습니다. 또한, 이 포스팅에서 말하는 Windows XP 는 정확히 말하면 XP Service Pack 3 를 뜻합니다.
1단계) 사용하려는 라이브러리가 XP 를 지원하는 지 확인한다. 일단 첫 번째 단계는 사용하려는 라이브러리가 Windows XP 를 지원하는 지 확인하는 과정입니다. 다행히도 Boost 의 대부분 라이브러리는 XP 환경에서 잘 돌아갈텐데, 경우에 따라서 XP에서는 기능이 제한되거나 오동작을 일으킬 수 도 있으니, 라이브러리가 XP 를 지원하는 지 여부를 검토할 필요성이 있습니다.
근데 아쉽게도 라이브러리들이 XP 를 지원하는 지 여부가 명백하게 정리된 글같은 건 없어 보입니다 ㅜㅜ 그리고, 각 라이브러리의 레퍼런스를 봐도 잘 안나오는 경우가 많죠. 결국, 부스트 커뮤니티 혹은 스택오버플로우의 글들을 뒤지거나 직접 질문을 해서 도움을 얻어야 합니다. 그리고 직접 라이브러리 내부 소스코드를 까서 XP 지원 여부를 파악해야 할 수도 있습니다. 그리고, 무엇보다 실제로 라이브러리를 사용하는 프로그램을 XP에서 동작시켜서 잘 동작하는지 직접 확인하는 과정도 꼭 필요합니다.
이 글은 2015년도에 부스트 커뮤니티에 올라왔던 Windows XP 지원 관련 설문인데 한번 읽어보셔도 좋을 것 같습니다.
XP 호환 여부를 파악할 때 …

일본 삿포로 여행 (1/2 ~ 1/6)

이미지
2019년이 시작되자마자, 1/2 (수) ~ 1/6 (일) 4박 5일 간 일본 삿포로 지역으로 여행을 갔다왔다.

삿포로가는 비행기 안, 구름이 예쁘다~
삿포로 신치토세 공항에 도착해서 먹은 부타동~ 사진보니 군침나오네..
여긴 삿포로역! 예쁘다!
숙소에 짐을 풀고 간 곳은, 스프카레 집! 이거 먹으려고 줄 진짜 오래 기다렸다,,
하지만, 줄 선 보람이 있어.. 너무 맛있다! 감동 ㅠㅠ
밤에는 숙소에서 닌텐도 저스트 댄스와 함께 광란의 댄스파티 ㅋㅋㅋ
이틀 째에는 지하철을 타고 오타루로 갔다~

지하철 안에서 보이는 바깥 풍경
오타루에 도착하니 눈이 이렇게 많이 쌓여있다
길가에 오르골 소리가 은은하게 울려퍼져서 너무 좋았다~
늦은 점심을 먹으러 초밥집에 들어왔다. 녹차가 따뜻해서 몸이 풀린다
이름이 뭐였드라... 아무튼 고오급 회 도시락이였다
여긴 오타루 운하~
다섯명이서 토끼모자쓰고 돌아다녔다~ 시선강탈 ㅋㅋㅋㅋㅋ