평범한 템플릿 에러 메시지.
pureexpr.h:187:79: error: could not convert ‘pure::call_helper [with Arg = std::tuple<pure::Lambda<pure::AddExpression<pure::VarExpression<0>, pure::ConstExpression<int> >, 0> >, F = pure::CallExpression<pure::VarExpression<0>, pure::ConstExpression<int> >, int ...NArgs = {0}, int ...S = {0}, typename pure::result_type<typename pure::PromoteToExpression<F>::type, Arg>::type = int](pure::eval(pure::VarExpression<N>, Arg) [with int N = 0, Arg = std::tuple<pure::Lambda<pure::CallExpression<pure::VarExpression<0>, pure::ConstExpression<int> >, 0>, pure::Lambda<pure::AddExpression<pure::VarExpression<0>, pure::ConstExpression<int> >, 0> >, typename std::tuple_element<N, Args>::type = pure::Lambda<pure::CallExpression<pure::VarExpression<0>, pure::ConstExpression<int> >, 0>](arg), pure::compute_call_args(pure::CallExpression<F, CallArgs ...>, Arg) [with F = pure::VarExpression<0>, Arg = std::tuple<pure::Lambda<pure::CallExpression<pure::VarExpression<0>, pure::ConstExpression<int> >, 0>, pure::Lambda<pure::AddExpression<pure::VarExpression<0>, pure::ConstExpression<int> >, 0> >, CallArgs = {pure::VarExpression<1>}, typename pure::result_type<CallArgs, Arg>::type = <type error>](arg), (pure::mpl::count<0, 0>::type(), pure::mpl::count<0, 0>::type()))’ from ‘pure::result_type<pure::CallExpression<pure::VarExpression<0>, pure::ConstExpression<int> >, std::tuple<pure::Lambda<pure::AddExpression<pure::VarExpression<0>, pure::ConstExpression<int> >, 0> > >::type {aka int}’ to ‘pure::result_type<pure::VarExpression<0>, std::tuple<pure::Lambda<pure::AddExpression<pure::VarExpression<0>, pure::ConstExpression<int> >, 0> > >::type {aka pure::Lambda<pure::AddExpression<pure::VarExpression<0>, pure::ConstExpression<int> >, 0>}’

이게 한줄이야...?
by 입큰하마 | 2012/03/26 03:42 | 트랙백 | 덧글(0)
Static Analysis for LUA 작업기 #4
복잡한 함수 말고 간단한 함수를 구현해 보았다.
현재는 심볼릭 이스큐션이란 핑계로 다 실행하고 있기 때문에
재귀호출이 있으면 무한루프를 도는 경향이 있다.

코드 형태가 미묘한건 lua_checker의 파서를 이용하고있어서이다.

하는 김에 에러메시지도 좀더 친절히 만들어 보았다.

정상적인 경우

local a = {};
a['step'] = 1;
factorial = function(k, a)
if k == 1 then
return k;
else
return k * factorial(k - a['step'], a);
end
end;
print(factorial(10, a));


실행결과 - 무식하게 다 실행하니 출력값도 보여줌 (...)

Standard output
3628800
No error or warning found.



return K 에서 대문자 오타

...
if k == 1 then
return K;
else
...


실행 결과

Standard output
UNKNOWN
Line 10:call to factorial(10.0, a)
:Line 7:call to factorial(k-a['step'], a)
:Line 7:call to factorial(k-a['step'], a)
:Line 7:call to factorial(k-a['step'], a)
:Line 7:call to factorial(k-a['step'], a)
:Line 7:call to factorial(k-a['step'], a)
:Line 7:call to factorial(k-a['step'], a)
:Line 7:call to factorial(k-a['step'], a)
:Line 7:call to factorial(k-a['step'], a)
:Line 7:Line 7 ERR : attempt to perform `*` on a non-number value (k, )


a.step 을 a.stpe라고 오타 낸 경우


...
return k * factorial(k - a['stpe'], a);
...


실행 결과 (무한 루프를 돌면서 계속 아래 에러를 보여준다)

Line 10:call to factorial(10.0, a)
:Line 7 ERR : attempt to perform `-` on a non-number value (k, a['stpe'])
Line 10:call to factorial(10.0, a)
:Line 7:call to factorial(k-a['stpe'], a)
:Line 7 ERR : attempt to perform `-` on a non-number value (k, a['stpe'])
Line 10:call to factorial(10.0, a)
:Line 7:call to factorial(k-a['stpe'], a)
:Line 7:call to factorial(k-a['stpe'], a)
:Line 7 ERR : attempt to perform `-` on a non-number value (k, a['stpe'])
...


흠 ...

아직은 돈다는게 신기하군!에 가치를 둬야 하나.
by 입큰하마 | 2011/03/08 23:01 | 프로그래밍 | 트랙백 | 덧글(1)
Static Analysis for LUA 작업기 #3
GDC 들으면서 간간히 계속 작업하고 있는데, if 나 while 등을 3AC로 표현했었던 걸 (break를 구현하려다 보니 점프 없는 3AC론 한계가 있어서) CFG형태로 표현하는 방식으로 새로 구현중이다.

에지 형태로 점프를 표현 해서 그래프에서의 실행을 추적하는 방식이다 (현재는 코드도 에지에 있다). if와 while 까진 동일하게 동작하게 구현 완료.

그래프에서의 실행 순서를 어떻게 해야할지가 고민. 위상 정렬을 이용한 방식이나 여러가지가 있다니 또 논문을 파봐야.. 일단은 큐형태로 매번 실행해보고 모든 에지에서 메모리 표현 상태가 더이상 변하지 않으면 멈추는 구조.

어서 함수까지 구현해서 돌아가는 모습을 보고싶다.
by 입큰하마 | 2011/03/03 06:24 | 프로그래밍 | 트랙백 | 덧글(2)
Static Analysis for LUA 작업기 #2

s=0;
t={};
i = 1;
while i <= 10 do
    s=s+i;
    t[i] = i*i;
    i=i+1;
end
if s ~= t[8] - t[3] then
    a = '6' + 'f'; -- here
end


실행 결과 :
No error or warning found.

오 신기해 ㅠㅠ 하지만 메모리 문제로 이런 동작은 못하게 되겠지 ...
here 부분의 버그가 안난다고 잡는게 포인트
by 입큰하마 | 2011/02/25 22:35 | 트랙백 | 덧글(4)
오늘의 삽질
if 5>3 then
a='ab';
else
a='6';
end
b=a+7;


실행 결과:

Line 6 ERR : attempt to perform `+` on a non-number value

모호한 조건을 어떻게 만드나 고민 중
by 입큰하마 | 2011/02/22 23:46 | 프로그래밍 | 트랙백 | 덧글(2)
삽질기 #1
비디오 캡쳐 하려면 AVFoundation을 쓰면 되는데, 프레임워크를 추가해야한다.
AVFoundation, CoreMedia, CoreVideo

Frameworks 우클릭 후 Add > Existing Frameworks ...
by 입큰하마 | 2011/01/14 21:06 | 아이폰 프로그래밍 | 트랙백 | 덧글(2)
TAOMP 299쪽 그림 9.26 30번 줄 (오타 아닙니다!)
pred.next.compareAndSet(curr, succ, false, false);
-> if (pred.next.compareAndSet(curr, succ, false, false)) {
원래 코드가 맞습니다.
by 입큰하마 | 2010/08/02 21:48 | 트랙백 | 덧글(0)
#devdev brainstorming
말하는 사람이 드래그하거나 더블 클릭으로 새 쓰레드 생성생성된 쓰레드 보면서 대화가능해당쓰레드 이전글 긁는기능irc접속하는 클라 + 쓰레드 저장 서버쓰레드 나가는 기능  @abc !leave드래그 했는데 이미있으면?닉문제 긴이름이랑 짧은이름 생성태그다는 기능20100610ABD@ABD @20100610ABD 날짜가바뀌면? 살아있는 스레드 관리 필요스레드 합치기? 나누기?최근 스레드 보기 이전 스레드 검색기능내 닉으로 접속 못해? 어떻게 동시에? 걍 전용 서버?그림이랑 url붙여넣기쓰레드 이름 정하기특정 사람 무시기능코드붙여보여주기

by 입큰하마 | 2010/06/11 00:32 | 프로그래밍 | 트랙백 | 덧글(2)
뻔한 이야기
http://scieng.net/zero/view.php?id=adujob&page=1&page_num=20&category=&sn=off&ss=on&sc=on&keyword=IT&prev_no=&select_arrange=headnum&desc=asc&no=4203 에서

大麻王
(2009-04-27 20:26:43)
자신의 적성과 인생의 가치관, 인생 목표를 남이 알려줄 수는 없습니다. 특별히 하고싶은 것도, 잘할 수 있는 일도, 인생의 목표도 없는 사람이 성공하는 경우는 없을 겁니다. 

이미 말씀드렸지만 자신이 무엇을 해야하는가, 인생의 목표를 무엇으로 두어야 하는가에 대한 정답을 찾아가는 노력을 하셔야죠. 그럼 답은 우연한 기회에 찾아오기도 하고 자신이 찾으려고 노력하다가 어느순간에 다가오기도 합니다. 가만히 손놓고 집에서 멍때리고만 있다고 알 수 있는 것은 아니죠. 

뻔한 이야기이지만 다양한 사람 만나보고, 다양한 책도 보고 부모님과 이야기도 해보고...누구나 자기재능 한 두개는 있습니다. 인터넷에서 남이 알려줄 수 없습니다. 자신이 가장 잘할 수 있을 것 같은 일, 가장 하고 싶은 일을 지금이라도 잘 찾아보도록 하세요. 

아무 꿈도 없이 그냥저냥 하루하루 무명인 또는 폐인으로 살다가 일약 스타덤에 오르는 사람, 장사에서 성공하는 사람의 일화는 많습니다. 모두들 끝까지 포기하지 않는다는 점이 있고 똑똑하게 성실하다는 공통점이 있습니다.
by 입큰하마 | 2009/07/09 10:25 | 트랙백 | 덧글(1)
TODO
  1. 성기사 레폿 ~19
  2. 번역 ~6월 말
  3. 졸업논문 ~6월 초
  4. 취직 ...
  5. 파이썬 세미나 준비
  6. 파이썬 세미나 온라인 버젼 만들어보기

by 입큰하마 | 2009/05/17 21:18 | 일기 | 트랙백 | 덧글(2)


< 이전페이지 다음페이지 >